Store/CHANGELOG.md

340 lines
11 KiB
Markdown
Raw Permalink Normal View History

# Changelog
2017-02-28 20:31:13 +00:00
### Thank you to all our wonderful contributors and users
## [5.0.0] (2023-09-14 )
### Stable release of Store 5, major additions since Store 4 (no breaking changes)
* MutableStore
* Validator
* Fallback Mechanism
* KMP support
* Conflict Resolution for store writes
* Removal of experimental duration APIs
* StoreResult.NoNewData
## [5.0.0-beta03] (2023-08-11)
* Fix validator regression https://github.com/MobileNativeFoundation/Store/pull/573
## [5.0.0-beta02] (2023-07-21)
* Fix breaking changes with Source of
Truth [#560](https://github.com/MobileNativeFoundation/Store/pull/560)
Make it easier to work with lists (#548) * Make it possible to provide memory cache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Format Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Add HybridCache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Fix putList Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Enable memory cache delegation with Guava as default Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Add MutableStoreWithHybridCacheTests Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Support all cache methods Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Rename to multicache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Refactor from list decomposition to collection decomposition Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Remove ReactiveCircus/android-emulator-runner Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Remove MemoryCache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Format Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Prepare for release 5.0.0-beta01 Signed-off-by: Matt Ramotar <mramotar@dropbox.com> --------- Signed-off-by: Matt Ramotar <mramotar@dropbox.com>
2023-05-19 20:41:42 +00:00
## [5.0.0-beta01] (2023-05-19)
* Delegate memory cache implementation and provide a hybrid cache with automatic list decomposition
as a separate
Make it easier to work with lists (#548) * Make it possible to provide memory cache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Format Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Add HybridCache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Fix putList Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Enable memory cache delegation with Guava as default Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Add MutableStoreWithHybridCacheTests Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Support all cache methods Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Rename to multicache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Refactor from list decomposition to collection decomposition Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Remove ReactiveCircus/android-emulator-runner Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Remove MemoryCache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Format Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Prepare for release 5.0.0-beta01 Signed-off-by: Matt Ramotar <mramotar@dropbox.com> --------- Signed-off-by: Matt Ramotar <mramotar@dropbox.com>
2023-05-19 20:41:42 +00:00
artifact [#548](https://github.com/MobileNativeFoundation/Store/pull/548)
## [5.0.0-alpha06] (2023-05-08)
* Separate MutableStoreBuilder from
StoreBuilder [#542](https://github.com/MobileNativeFoundation/Store/commit/e050a15afc21c22ffea10a6a7d5f1b436ee34a6a)
* Support
Rx2 [#531](https://github.com/MobileNativeFoundation/Store/commit/7d73f08cc07294d00b176325af792b51874dfeff)
* Introduce Fallback
Mechanisms [#545](https://github.com/MobileNativeFoundation/Store/commit/d1e46a9d02703c798738bc5fb645344fefb90dd4)
## [5.0.0-alpha05] (2023-03-15)
* Target iOS Simulator
* Target Linux
* Make Bookkeeper optional
## [5.0.0-alpha04] (2023-02-24)
* Introduce MutableStore
* Implement RealMutableStore with Store delegate
* Extract Store and MutableStore methods to use cases
## [5.0.0-alpha03] (2022-12-18)
2017-02-28 20:31:13 +00:00
This release adds support for Store on iOS, JVM, and JS. Concepts and usage are unchanged from
Store4. In a future release we will reintroduce support for local and remote writes with conflict
resolution based on Google's offline first guidance.
* Target Android, iOS, JVM, JS
* Remove concept of Market
* Remove support for local and remote writes (temporary)
## [5.0.0-alpha02] (2022-12-04)
* Target iOS and JS
* Rename packages
## [5.0.0-alpha1] (2022-12-04)
* Introduce Market
* Support local and remote writes with conflict resolution based on Google's offline-first guidance
* Target Android and JVM
## [4.0.5] (2021-03-30)
* Update to Kotlin 1.6.10
* Store `4.0.4-KT15` is the last version supporting Kotlin 1.5
* Store `4.0.1` is the last version supporting Kotlin 1.4
## [4.0.4-KT15] (2021-12-08)
* Bug fixes and documentation updates
2021-12-08 18:59:41 +00:00
## [4.0.3-KT15] (2021-11-18)
* Update to Kotlin 1.5.31 and Coroutines 1.5.2
* Bug fixes and documentation updates
## [4.0.2-KT15] (2021-05-06)
2021-11-18 18:13:20 +00:00
**Kotlin 1.5 introduced breaking changes in the experimental Duration apis we used**
**4.0.2-KT15 is a duplicate of 4.0.1 but compiled for kotlin 1.5**
**Version 4.0.1 is the last version compatible with Kotlin 1.4**
* Fire off kotlin 1.5 compatible snapshot (#273)
## [4.0.1] (2021-05-06)
* Fix issues when upgrading to kotlin 1.5 (Deprecated duration api)
2021-05-06 17:06:13 +00:00
* Add piggyback to all stores
## [4.0.0] (2020-11-30)
* Update coroutines to 1.4.0, kotlin to 1.4.10 [#242](https://github.com/dropbox/Store/pull/242)
## [4.0.0-beta] (2020-09-21)
**API change**
* Remove need for generics with `Error` type (#220)
**Bug Fixes and Stability Improvements**
* Revert cache implementation to guava, rather than rolling our own (#200)
* Sample App improvements (#227)
## [4.0.0-alpha07] (2020-08-19)
2020-08-19 17:11:59 +00:00
**New Features**
2020-08-19 17:11:59 +00:00
* Add `StoreResult.NoNewData` to represent when a fetcher didn't return data. (#194)
* Move `Fetcher`-factories into `Companion` of `Fetcher` interface (#168)
**Bug Fixes and Stability Improvements**
2020-08-19 17:11:59 +00:00
* Fix a leak of non-global coroutine contexts. (#199)
* Update to Kotlin 1.4.0 and Coroutines 1.3.9 (#195)
* Update to Coroutines 1.3.5 and remove `@FlowPreview` and `@ExperimentalCoroutinesApi`
annotations. (#166)
## [4.0.0-alpha06] (2020-04-29)
2020-08-19 17:11:59 +00:00
2020-04-29 17:47:15 +00:00
**Major API change!** (#123)
This release introduces a major change to `StoreBuilder`'s API. This should be the LAST major API
change to store before
we'll move to beta.
2020-04-29 17:47:15 +00:00
* The typealias `Fetcher` was added to standardize the input type for a `StoreBuilder`
* `SourceOfTruth` in now a top level interface and part of `Store`'s public API
* `StoreBuilder` can now only be created using a `Fetcher` and optionally a `SourceOfTruth`
* All the overloads for creating a `StoreBuilder` were moved to `Fetcher` and `SourceOfTruth` as
appropriate.
2020-04-29 17:47:15 +00:00
* Rx artifacts were updated accordingly to match main artifacts.
## [4.0.0-alpha05] (2020-04-03)
**Bug Fixes and Stability Improvements**
* Contain @ExperimentalStdlibApi within relevant scope. (#154)
* Use AtomicFu to replace Java's AtomicBoolean and ReentrantLock (#147)
* migrate Multicast to Kotlin Test (#146)
* Remove Collections.unmodifiableMap (#145)
* Update AGP version (#143)
* Remove some unneeded java.util packages (#141)
## [4.0.0-alpha04] (2020-04-03)
2020-04-03 17:54:59 +00:00
**New Features**
2020-04-03 17:54:59 +00:00
* Add `asMap` function to Cache for backward compat (#136)
* Migrate filesystem library to use kotlin.time APIs (#133)
* Rx get fresh bindings (#130)
* Migrate cache library to use kotlin.time APIs (#129)
* Update sample app (#117)
**Bug Fixes and Stability Improvements**
2020-04-03 17:54:59 +00:00
* Use Kotlin version of ArrayDeque in ChannelManager (#134)
* Kotlin 1.3.70 and other dependencies updates (#125)
* Make SharedFlowProducer APIs safe (#121)
* Ensure network starts after disk is established (#115)
* Update to Gradle 6.2 (#111)
## [4.0.0-alpha03] (2020-02-13)
2020-02-13 19:40:22 +00:00
**New Features**
2020-02-13 19:40:22 +00:00
* Added Rx bindings, available as store-rx2 artifact (#93)
* Bug fixes (#90)
* Add ability to delete all entries in the store (#79)
## [4.0.0-alpha02] (2020-01-29)
2020-01-29 15:07:33 +00:00
**New Features**
2020-01-29 15:07:33 +00:00
* Introduce piggyback only downstreams to multicaster and fix #59 (#75)
* Change flow collection util to drain the flow (#64)
* Readme improvements (#70, #72)
* Avoid illegal cast in RealStore.stream (#69)
* Added docs to MemoryPolicy.setMemorySize (#67) (#68)
## [4.0.0-alpha01] (2020-01-08)
**New Features**
* Store has been rewritten using Kotlin Coroutines instead of RxJava
2018-06-07 17:43:16 +00:00
## [3.1.0] (2018-06-07)
2018-06-07 17:43:16 +00:00
**New Features**
* (#319) Store can now be used in Java (non-Android) projects
* (#338) Room integration for Store
**Bug Fixes and Stability Improvements**
* (#315) Add missing reading of expire-after-policy when creating a NoopPersister
* (#311) Update Kotlin & AGP versions
* (#328) Fix memory policy default size
* (#329) Adding docs to README for setting 1.8 compatibility
* (#273) Adds comments to the sample app
* (#336) Fixes errors in README
## [3.0.1] (2018-03-20)
2018-03-20 17:40:54 +00:00
**Bug Fixes and Stability Improvements**
* (#311) Update Kotlin & AGP versions
* (#314) Fix issues occured from RxJava1 dependency
## [3.0.0] (2018-02-01)
2018-02-01 18:45:53 +00:00
**New Features**
* (#275) Add ParsingFetcher that wraps Raw type Parser and Fetcher
**Bug Fixes and Stability Improvements**
* (#267) Kotlin 1.1.4 for store-kotlin
2018-02-01 18:45:53 +00:00
* (#290) Remove @Experimental from store-kotlin API
* (#283) Update build tools to 26.0.2
* (#259, #261, #272, #289, #303) README + documentation updates
* (#310) Sample app fixes
## [3.0.0-beta] (2017-07-26)
2017-07-26 15:31:30 +00:00
**New Features**
* (#229) Add store-kotlin module
* (#254) Add readAll / clearAll operations for a particular BarCode type
* (#250) Return object with meta data
* Create Code of Conduct
**Bug Fixes and Stability Improvements**
* (#239) Fix NoClassDefFoundError for StandardCharsets GsonBufferedSourceAdapter
* (#243) Update README for Rx2
* (#247) Remove intermediate streams
* (#246) Update to Moshi 1.5.0
* (#252) Fix stream for a single barcode
## [3.0.0-alpha] (2017-05-23)
2017-02-13 16:37:12 +00:00
2017-05-23 22:15:13 +00:00
This is a first alpha release of Store ported to RxJava 2.
2017-02-13 16:37:12 +00:00
**New Features**
2017-01-30 16:57:42 +00:00
2017-05-23 22:15:13 +00:00
* (#155) Port to RxJava 2
* (#220) Packages have been renamed to store3 to allow use of this artifact alongside the original
Store
2017-05-23 22:15:13 +00:00
* (#185) Return Single/Maybe where appropriate
* (#189) Add lambdas to Store and Filesystem modules
* (#214) expireAfterAccess added to MemoryPolicy
* (#214) Deprecate setExpireAfter and getExpireAfter -- use new expireAfterWrite or
expireAfterAccess, see #199 for
MemoryPolicy changes
2017-05-23 22:15:13 +00:00
* (#214) Add Raw to BufferedSource transformer
2017-01-30 16:57:42 +00:00
2017-05-23 22:15:13 +00:00
**Bug Fixes and Stability Improvements**
2017-01-10 14:51:38 +00:00
2017-05-23 22:15:13 +00:00
* (#214) Fix networkBeforeStale on cold start with no connectivity
* (#214) Add a missing source.close() call
* (#164) FileSystemPersister.persisterIsStale() should return false if record is missing or policy
is unspecified
2017-05-23 22:15:13 +00:00
* (#166) Remove apt dependency and use annotationProcessor instead
* (#214) Standardize store.stream() to emit only new items
* (#214) Fix typos
* (#214) Close source after write to filesystem
## [1.x]
* The change log for Store version 1.x can be
found [here](https://github.com/NYTimes/Store/blob/develop/CHANGELOG.md).
[Unreleased]: https://github.com/MobileNativeFoundation/Store/compare/v5.0.0-beta02...HEAD
[5.0.0-beta02]: https://github.com/MobileNativeFoundation/Store/releases/tag/5.0.0-beta02
Make it easier to work with lists (#548) * Make it possible to provide memory cache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Format Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Add HybridCache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Fix putList Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Enable memory cache delegation with Guava as default Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Add MutableStoreWithHybridCacheTests Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Support all cache methods Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Rename to multicache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Refactor from list decomposition to collection decomposition Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Remove ReactiveCircus/android-emulator-runner Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Remove MemoryCache Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Update .ci_test_and_publish.yml Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Format Signed-off-by: Matt Ramotar <mramotar@dropbox.com> * Prepare for release 5.0.0-beta01 Signed-off-by: Matt Ramotar <mramotar@dropbox.com> --------- Signed-off-by: Matt Ramotar <mramotar@dropbox.com>
2023-05-19 20:41:42 +00:00
[5.0.0-beta01]: https://github.com/MobileNativeFoundation/Store/releases/tag/5.0.0-beta01
[5.0.0-alpha06]: https://github.com/MobileNativeFoundation/Store/releases/tag/5.0.0-alpha06
[5.0.0-alpha05]: https://github.com/MobileNativeFoundation/Store/releases/tag/5.0.0-alpha05
[5.0.0-alpha04]: https://github.com/MobileNativeFoundation/Store/releases/tag/5.0.0-alpha04
[5.0.0-alpha03]: https://github.com/MobileNativeFoundation/Store/releases/tag/5.0.0-alpha03
[5.0.0-alpha02]: https://github.com/MobileNativeFoundation/Store/releases/tag/5.0.0-alpha02
[5.0.0-alpha1]: https://github.com/MobileNativeFoundation/Store/releases/tag/5.0.0-alpha1
[4.0.5]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.5
[4.0.4-KT15]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.4-KT15
[4.0.3-KT15]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.3-KT15
[4.0.2-KT15]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.2-KT15
[4.0.1]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.1
[4.0.0]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.0
[4.0.0-beta]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.0-beta
[4.0.0-alpha07]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.0-alpha07
[4.0.0-alpha06]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.0-alpha06
[4.0.0-alpha05]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.0-alpha05
[4.0.0-alpha04]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.0-alpha04
[4.0.0-alpha03]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.0-alpha03
[4.0.0-alpha02]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.0-alpha02
[4.0.0-alpha01]: https://github.com/MobileNativeFoundation/Store/releases/tag/4.0.0-alpha01
[3.1.0]: https://github.com/MobileNativeFoundation/Store/releases/tag/3.1.0
[3.0.1]: https://github.com/MobileNativeFoundation/Store/releases/tag/3.0.1
[3.0.0]: https://github.com/MobileNativeFoundation/Store/releases/tag/3.0.0
[3.0.0-beta]: https://github.com/MobileNativeFoundation/Store/releases/tag/3.0.0-beta
[3.0.0-alpha]: https://github.com/MobileNativeFoundation/Store/releases/tag/3.0.0-alpha
[1.x]: https://github.com/NYTimes/Store/blob/develop/CHANGELOG.md