Skip to content

v0.10.0

Latest
Compare
Choose a tag to compare
@fxamacker fxamacker released this 07 Apr 22:07
· 20 commits to main since this release
c53605f

Atree v0.10.0 was refactored to reduce tech debt and it uses the updated features/stream-mode branch of fxamacker/cbor v2.8.

Notable issues resolved:

  • #464 Refactor and reduce technical debt. This helps us add new features, maintain, and optimize (e.g., Lazy Decoding).
  • #539 and flow-go#7221 Update to newer feature/stream-mode branch in fxamacker/cbor from 2.4 to 2.8. This resolves build issue for external projects that depend on fxamacker/cbor 2.5 or newer versions.

Other changes needed by this release are at fxamacker/cbor:

What's Changed

Upgrade to fxamacker/cbor v2.8

  • Bump fxamacker/cbor to latest feature/stream-mode by @fxamacker in #542

We ran extensive tests to check backward compatibility, etc. #539 (comment) before merging the version bump to main branches.

Refactor to reduce tech debt

  • Remove old test files by @fxamacker in #475
  • Rename and export SlabIDLength and related constants by @fxamacker in #478
  • Replace SlabID{...} with NewSlabID() in tests by @fxamacker in #479
  • Use NewDefaultDigesterBuilder() in tests by @fxamacker in #480
  • Export PersistentSlabStorage funcs in export_test.go by @fxamacker in #481
  • Avoid using unexported SlabID fields in tests by @fxamacker in #484
  • Avoid creating ArrayDataSlab directly in tests by @fxamacker in #490
  • Avoid using unexported OrderedMap fields in tests by @fxamacker in #489
  • Avoid using unexported Array fields in tests by @fxamacker in #488
  • Avoid using unexported constants in tests by @fxamacker in #485
  • Avoid creating ArrayMetaDataSlab directly in tests by @fxamacker in #495
  • Avoid using MapDataSlab & MapMetaDataSlab in tests by @fxamacker in #497
  • Rename vars to reduce confusion (sizes vs counts) by @fxamacker in #498
  • Avoid using unexported mutableValueNotifier in tests by @fxamacker in #499
  • Use helper functions to compute array sizes in tests by @fxamacker in #500
  • Use helper funcs to compute map byte sizes in tests by @fxamacker in #501
  • Decouple non-test and test code by @fxamacker in #503
  • Move test util funcs to test_utils package for reuse by smoke tests by @fxamacker in #504
  • Rename cmd/stress to cmd/smoke (it only contains smoke tests) by @fxamacker in #505
  • Refactor smoke test to reduce duplicate code by @fxamacker in #506
  • Split array.go into smaller files and group related functions by @fxamacker in #508
  • Split map.go into smaller files and group related functions by @fxamacker in #509
  • Split storable.go & typeinfo.go into smaller files by @fxamacker in #510
  • Split storage.go into smaller files by @fxamacker in #511
  • Replace panic("not reachable") with panic(NewUnreachableError()) by @turbolent in #512
  • Split array_debug.go and map_debug.go into smaller files by @fxamacker in #513
  • Replace empty interface with any by @fxamacker in #514
  • Refactor array test & validation code to use range loops by @fxamacker in #515
  • Improve consistency of variable names in array tests by @fxamacker in #516
  • Refactor map tests & validation to use range loops by @fxamacker in #519
  • Improve consistency of variable names in map tests by @fxamacker in #520
  • Refactor non-test code to use range loops by @fxamacker in #521
  • Fix some misspelled words in docs/comments by @leopardracer in #529
  • Simplify and lint test code to improve maintainability and fix flakey test by @fxamacker in #522
  • Use go1.21 slices package functions in tests by @fxamacker in #524
  • Refactor to simplify merging child slabs in array by @fxamacker in #525
  • Refactor to simplify rebalancing child slabs in array by @fxamacker in #526
  • Refactor to simplify merging child slabs in map by @fxamacker in #527
  • Refactor to simplify rebalancing child slabs in map by @fxamacker in #528
  • Refactor ArrayMetaDataSlab.SplitChildSlab() to improve readability by @fxamacker in #530
  • Use go1.21 slices package in array by @fxamacker in #531
  • Use go1.21 slices package in map by @fxamacker in #532
  • Use go1.21 clear() instead of loops to clear elements by @fxamacker in #533
  • Simplify slab operations and reduce risks such as memory leaks, etc. by @fxamacker in #534
  • Fix smoke test memory usage by @fxamacker in #536

Other Changes

New Contributors

Full Changelog: v0.9.0...v0.10.0