Tags give the ability to mark specific points in history as being important
-
3.2.0
protectedRelease: 3.2.0 • 32-bit enum sets and weak map improvements29b17168 · ·32-bit enum sets and weak map improvements ### EnumSet - Added `BitSet32.of()` which accepts an iterable (!205) - Added `.toSet()` and `.toMutableSet()` (!205) - Added `enumSetOf()` and `.toEnumSet()` (#170, !206) - Optimized `enumSetOf(Foo.entries)` (!206) - Optimized 32-bit `EnumSet` (#170, !206) ### Weak - Added `WeakRef.isEmpty()` and `WeakRef.isNotEmpty()` (!207) - Added `WeakValueHashMap` (#178, !225) - Added `toString()`, `equals()` and `hashCode()` on `FakeWeakRef` (!225) - Documented the thread safety of `WeakRef` and `WeakMap` (#180, !225) - Added a wrapper for the JVM `WeakHashMap` (#179, !226) - Added a wrapper for the JS `WeakMap` (#179, !226) ### Dependencies - Kotlin 2.2.21
-
3.1.1
protectedRelease: 3.1.1 • Fixed documentation website deployment584cd111 · ·Fixed documentation website deployment ### Documentation - Fixed deployment to the new documentation website (!202)
-
3.1.0
protectedRelease: 3.1.0 • WasmJS weak references and the new documentation websiteb9b3769e · ·WasmJS weak references and the new documentation website ### Weak - Added support for `wasmJs()` (#155, !200) ### Documentation - Moved the documentation website to https://pedestal.opensavvy.dev (!199) ### Dependencies - Kotlin 2.2.0 - KotlinJS 2025.7.6
-
3.0.0
protectedRelease: 3.0.013c02d79 · ·Support for more platforms ### Breaking changes - Removed Spine (was deprecated, moved to other coordinates, !163) - Stripped down Logger (was deprecated, !179) - Removed State Arrow (all functionality has been moved into State, !163) - Removed deprecated methods (!163) ### Weak Weak is a new module containing weak references and related algorithms. ### EnumSet EnumSet is a new experimental module with memory-efficient bitfields and enum sets.
-
3.0.0-rc.1
protectedRelease: 3.0.0-rc.1 • Stable weak references, stripped-down logger93bab566 · ·Stable weak references, stripped down logger ### Progress - Support for more Kotlin platforms (469dcb51, !179) ### State - Support for more Kotlin platforms (20046cb0, !179) ### Cache - Support for more Kotlin platforms (5b0ee6ff, !179) ### Backbone - Support for more Kotlin platforms (0fde1531, !179) ### Weak - Stabilized `WeakRef()` and `SoftRef()` (1820e495, !185) - Removed `EmptyWeakRef()` (7fc0774c, !185) ### Logger The `logger` library has been stripped down to a minimal println-based implementation (08ac9d92, !179). It was deprecated for a while and was blocking us from supporting more platforms. In the future, [Sentier](https://gitlab.com/opensavvy/groundwork/sentier) will take its place. ### Dependencies - KotlinJS 2025.5.8 - KotlinX.Datetime 0.6.2 - KotlinX.Coroutines 1.10.2 - Lincheck 2.39 - Arrow 2.1.2 - Slf4J 2.0.17
-
3.0.0-alpha.2
protectedRelease: 3.0.0-alpha.2 • BitSet32, documentation improvement and more Kotlin Native platforms1bd03863 · ·BitSet32, documentation improvement and more Kotlin Native platforms ### EnumSet `:enumset` is a new module which will implement performant Set implementations for small integer sets and for enums. It is not yet complete as of this release. - Implement `BitSet32` (#168, !174) - Implement `MutableBitSet32` (#169, !176) ### Weak - Support more Kotlin Native platforms (#163, ad11a243, !177) ### Documentation - Mention the Weak module in the main README (!170) - Fix links in the main README (#160, !170) - Add copyright headers in all files (!173) ### Dependencies - Kotlin 2.1.10 (143f6dd3) - KotlinX.Coroutines 1.10.1 (9e53816c) - KotlinJS Wrappers 2025.1.4 (5e855377) - Prepared 2.0.0-alpha.2 (ae0a1c8d) - Slf4J 2.0.16 (81c6f352)
-
3.0.0-alpha.1
protectedRelease: 3.0.0-alpha.1 • Removal of deprecated code and testing improvementsf751e917 · ·Removal of deprecated code and testing improvements ### Breaking changes - Removed the deprecated Spine modules (#158, 17c3ec57, !163) - Removed the unused tester module (!163) - Removed the unused state-arrow module (!163) - Removed deprecated cache and state methods (!163) ### Testing - Better cache tests using Lincheck (#80, !133) - Rewrite all tests to use Prepared instead of kotlin-test (#136, #137, !120, !139, !163) ### Documentation - Link to versioned documentation in module headers (!160) ### Dependencies - Kotlin 2.0.20 - KotlinX.Datetime 0.6.1 - KotlinX.Coroutines 1.9.0
-
2.3.0
protectedRelease: 2.3.0 • Experimental Progressive holder and the new Weak modulea4aee9ca · ·Experimental Progressive holder and the new Weak module ### Progress - Experimental Progressive holder class (#144, !136) - Experimental helpers to capture progress into a Flow (!136) - Increased test coverage (!142) ### State - Experimental conversions from Progressive, Outcome and ProgressiveOutcome (!136) - Increased test coverage (!142) ### Weak Pedestal Weak is a new module to use weak reference and associated data structures from common Kotlin code! - Experimental WeakRef and SoftRef (#152, !147) - Experimental WeakMap (#153, !147) - Experimental pure Kotlin implementation of WeakKeyMap (!147) - Helpers to test weak data structures (!147) ### Dependencies - KotlinX.Datetime 0.6.0 (!143) - KotlinX.Coroutines 1.8.1 (!143) - KotlinX.Serialization 1.7.1 (!143) - Prepared 1.3.0 (!143)
-
2.2.2
protectedRelease: 2.2.2 • Bug fixes, Kotlin 2.0.0f567aabe · ·Bug fixes, Kotlin 2.0.0 ### Build and deployment - Fixed JVM tests not running (ec557993, !129) - Enable code coverage for all modules (#142, !129) - Migrate Progress tests to Prepared (778387b1, !129) - Stop publishing the `tester` module (89f4d925, !119) ### Dependencies - Kotlin 2.0.0 (55a01666, !70) - Slf4J 2.0.13 (00733016, !132) - Arrow 1.2.4 (3884e8a6, !132) - Logback Classic 1.5.6 (983d8f98, !132) - KotlinX.Datetime 0.5.0 (03dbf236, !132) - KotlinX.Coroutines 1.8.0 (03dbf236, !132)
-
2.2.1
protectedRelease: 2.2.1 • Improved testing, Kotlin 2.0.0-RC10914107a · ·Improved testing, Kotlin 2.0.0-RC1 ### Testing - Fixed JVM tests not running (ec557993, !129) - Set a minimal code coverage for all active modules (#142, !129) ### Spine (deprecated) - Unify the string representation of floating-point numbers on all platforms (99f5d234) ### Dependencies - Kotlin 2.0.0-RC1 (66672126)
-
2.2.0
protectedRelease: 2.2.0 • Documentation improvements, Arrow built into State, experimental progressive DSL50c581c9 · ·Documentation improvements, Arrow built into State, experimental progressive DSL ### Backbone - Documentation improvements and example modernization (#133, !118) ### State - Merge :state-arrow into :state (1ddf5e18, !123) - Documentation improvements for State (!123) - Experimental DSL for ProgressiveOutcome (!124) ### Documentation - Remove the link to Logger from the main README (7186f217, !122) - Fix links after move to OpenSavvy Groundwork (c4fcbd7a, !122)
-
2.1.1
protectedRelease: 2.1.1 • Experimental LocalStorage cache163cfa05 · ·Experimental LocalStorage cache ### Cache - Created the experimental LocalStorage/SessionStorage cache implementation (#2, !114) ### Spine - Mention that Spine is being rewritten (24c862d6, 110) ### Build and deployment - Fixed incorrect documentation URL in MavenCentral metadata (#127, !101) ### Dependencies - Kotlin 1.9.22 (128dfe13)
-
2.1.0
protectedRelease: 2.1.0 • Helpers to combine incomplete results823b1e1a · ·Helpers to combine completed results ### State - Helpers to accumulate incomplete results with the previous complete result (#125, !96) ### Documentation - Mark each module's stability (#119, !95) - Fixed a broken link in State Arrow (f1e814d9) - Document how each logger implementation works (154377bd)
-
2.0.0
protectedRelease: 2.0.0 • Typesafe failures, independent progress and API surface cleanup4738f165 · ·Stable 2.0.0 release Here are the highlights of this range of updates. To learn more, see the pre-release changelogs: ### Progress Previously a part of Pedestal State, the progress management is now its own independent library (#58, !54). ### State - State was previously based on Arrow. We have decided to make State independent of Arrow. We have completely rewritten the failure management (#59, #70, !58). - Introduced a compatibility module for use with Arrow. - Introduced a compatibility module for use with Coroutines. ### Cache - Reworked the module so implementations are private, and only instantiation methods are public. This will make it much easier to make changes to implementations in the future (#86, !81). - Introduced contextual cache algorithms, which understand authentication or paging (#85, !66). - Introduced blocking algorithms for Java interoperability (#109, !83). ### Backbone - Reworked the Backbone pattern to entirely hide the Cache as an implementation detail, making future changes much easier (#73, !59). ### Build and deployment - The project is now published as 'dev.opensavvy.pedestal:<module>:<version>' instead of 'opensavvy:<module>:<version>' (#69, !68) - Major documentation improvements. - Support for LinuxX64 (#115, !86) - The project is now published on MavenCentral! - The project is now based on the OpenSavvy Playground (#114, !87)
-
2.0.0-rc.10
protectedRelease: 2.0.0-rc.10 • Last release candidate before 2.0.04fdb35df · ·Log bug and better documentation ### Documentation - Avoid single-letter type parameters (#112, !88) - Mention the LinuxX64 support in the README (#118, !90) ### Build and deployment - The project is now based on the OpenSavvy Playground, which should make build configuration easier (#114, !87) - Fixed the CI not running on the GitLab Shared Runners for MacOS (!82, !92) ### Cache - Fixed the lock bug on Kotlin/JS (#101, !91) ### Dependencies - Kotlin 1.9.0 - Arrow 1.2.0 - Dokka 1.9.0 - Logback 1.4.8 - Slf4j 2.0.7 - Ktor 2.3.2 - KotlinX.Coroutines 1.7.2 - KotlinX.Serialization 1.5.1 ### Contributions Thanks @darbyfrey (from the GitLab team) for helping us figure out how to use the MacOS Shared Runners.
-
2.0.0-rc.9
protectedRelease: 2.0.0-rc.9 • LinuxX64 supported58443d · ·LinuxX64 support ### Build and deployment - Support for the LinuxX64 platform (#115, !86) ### Cache - Explicitly specify which clock to use when using ExpirationCache (#111, !85)
-
2.0.0-rc.8
protectedRelease: 2.0.0-rc.8 • Fix MavenCentral publicationae02a744 · ·Fix MavenCentral publication