Store/CHANGELOG.md
Mike Nakhimovich 219a2513ff
Prepare for release 5.0.0 (#576)
Signed-off-by: digitalbuddha <mnakhimovich@gmail.com>
2023-09-14 12:33:26 -04:00

11 KiB

Changelog

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)

5.0.0-beta02 (2023-07-21)

  • Fix breaking changes with Source of Truth #560

5.0.0-beta01 (2023-05-19)

  • Delegate memory cache implementation and provide a hybrid cache with automatic list decomposition as a separate artifact #548

5.0.0-alpha06 (2023-05-08)

  • Separate MutableStoreBuilder from StoreBuilder #542
  • Support Rx2 #531
  • Introduce Fallback Mechanisms #545

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)

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

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)

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)
  • Add piggyback to all stores

4.0.0 (2020-11-30)

  • Update coroutines to 1.4.0, kotlin to 1.4.10 #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)

New Features

  • 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

  • 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)

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.

  • 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.
  • 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)

New Features

  • 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

  • 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)

New Features

  • 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)

New Features

  • 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

3.1.0 (2018-06-07)

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)

Bug Fixes and Stability Improvements

  • (#311) Update Kotlin & AGP versions
  • (#314) Fix issues occured from RxJava1 dependency

3.0.0 (2018-02-01)

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
  • (#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)

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)

This is a first alpha release of Store ported to RxJava 2.

New Features

  • (#155) Port to RxJava 2
  • (#220) Packages have been renamed to store3 to allow use of this artifact alongside the original Store
  • (#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
  • (#214) Add Raw to BufferedSource transformer

Bug Fixes and Stability Improvements

  • (#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
  • (#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.