Skip to content
Tags give the ability to mark specific points in history as being important
  • 2.2.2 protected Release: 2.2.2 • Bug fixes, Kotlin 2.0.0
    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 protected Release: 2.2.1 • Improved testing, Kotlin 2.0.0-RC1
    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 protected
    50c581c9 · merge: Progressive raise ·
    Release: 2.2.0 • Documentation improvements, Arrow built into State, experimental progressive DSL
    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 protected Release: 2.1.1 • Experimental LocalStorage cache
    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 protected Release: 2.1.0 • Helpers to combine incomplete results
    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 protected Release: 2.0.0 • Typesafe failures, independent progress and API surface cleanup
    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.12 protected
    Fix MavenCentral publishing
    
  • 2.0.0-rc.11 protected
    Fix MavenCentral publication
    
  • 2.0.0-alpha.1 protected
    Fix MavenCentral publication
    
  • 2.0.0-rc.10 protected
    4fdb35df · merge: Fix the lock bug ·
    Release: 2.0.0-rc.10 • Last release candidate before 2.0.0
    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 protected Release: 2.0.0-rc.9 • LinuxX64 support
    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 protected Release: 2.0.0-rc.8 • Fix MavenCentral publication
    Fix MavenCentral publication
    
  • 2.0.0-rc.7 protected Release: 2.0.0-rc.7 • Blocking cache and MavenCentral publication
    Blocking cache and MavenCentral publication
    
    ### Migration steps
    
    The group for Gradle configuration has been renamed from 'opensavvy.pedestal' to 'dev.opensavvy.pedestal'.
    
    ### Cache
    
    - Better documentation (9bf6b475, !81)
    - All implementations are internal, only their factory methods are public (#86, !81)
    - Create blocking wrappers to use the library without coroutines (#109, !83)
    
    ### Build and deployment
    
    - Gitpod support to contribute to the project in a cloud environment (#107, !79)
    - Migrate after changes to the GitLab shared MacOS runners (#102, !78)
    - Pedestal is now published on MavenCentral (#105, !77)
    
  • 2.0.0-rc.6 protected Release: 2.0.0-rc.6 • State documentation and Spine crash
    Documentation and Spine fixes
    
    ### State
    
    - Improved documentation (#98, !74)
    
    ### Spine
    
    - Do not crash when deserializing a malformed SpineFailure
    
  • 2.0.0-rc.5 protected Release: 2.0.0-rc.5 • Type-safe errors for Spine
    Type-safe Spine errors
    
    ### Pedestal
    
    - Completely rewrite of the documentation (#97, !72)
    
    ### Spine
    
    Spine is deprecated and will be removed in the future.
    
    - Type-safe errors (#103, !73)
    
  • 2.0.0-rc.4 protected Release: 2.0.0-rc.4 • Easier error management
    Easier Outcome-based error management
    
    ### Progress
    
    - ProgressReporter.NoOp has been moved to a private class, accessed by the factory 'emptyProgressReporter' (#90, !69)
    
    ### State
    
    - Added Outcome.mapFailure and ProgressiveOutcome.mapFailure (#92, !70)
    
    ### Build and deployment
    
    - Fixed the links in Dokka to the Arrow documentation (#63, !71)
    
  • 2.0.0-rc.3 protected Release: 2.0.0-rc.3 • Failure simplification
    Failure removal
    
    ### State
    
    - Removed the Failure interface (#87, !67)
    - Conversion functions from Either to Outcome (!67)
    - Accessors for Outcome<Nothing, T> and similar (#88, !68)
    
  • 2.0.0-rc.2 protected
    ab31754b · merge: Contextual caches ·
    Release: 2.0.0-rc.2 • Contextual caches
    Contextual caches
    
    ### Cache
    
    - Created contextual cache algorithms (#85, !66)
    
    ### Backbone
    
    - Removed Backbone.request (#84, !64)
    
    ### Build and deployment
    
    - Cleaned up the README (#82, !62)
    - Added the OpenSavvy coding style (#83, !63)
    
  • 2.0.0-rc.1 protected
    b48efd5c · merge: Pedestal 2.0 ·
    Release: 2.0.0-rc.1 • Pedestal 2.0
    Pedestal 2.0 first release candidate
    
    ### Progress
    
    The progress management, originally a part of Pedestal State, has been split into its own Pedestal Progress project.
    To facilitate usage into projects with specific requirements, it is organized as a main project and a compatibility module to use with Kotlin Coroutines.
    
    - Extracted Progress from the State project (#58, !54)
    
    ### State
    
    Completely reworked the failure management. Previously, failure was a single class, whereas it became an interface.
    This allows code to declare its own sealed classes of possible failures, making testing easier.
    
    - Complete failure rework (#59, #70, !58)
    
    ### Backbone
    
    - Hide the cache as an implementation detail instead of exposing it (#71, !61)
    
    ### Spine
    
    - Spine is deprecated, and will be removed in the future (#73, !59)
    
    ### Build and deployment
    
    - Enabled the Gradle Build Cache (#76, !55, !56)
    - Exposed Dokka as a review app (#78, !57)
    - The library is now published as 'opensavvy.pedestal:<module>:<version>' instead of 'opensavvy:<module>:<version>' (#69, !68)
    
  • 1.1.0 protected Release: 1.1.0 • iOS support and Gradle convention plugins
    iOS support & Gradle convention plugins
    
    ### Platform support
    
    Thanks to @LandryNorris for contributing the support for iOS platforms and helping me set up the CI for them.
    
    - Added iOS support for State and Logger (!47)
    - Added iOS support for Cache and Backbone (!50)
    - Configured the CI to run on MacOS virtual machines to test and publish the libraries (#64, !50)
    
    ### State
    
    - Added ProgressiveOutcome.map, Flow<ProgressiveOutcome>.mapSuccess (#56, !45)
    
    ### Build and deployment
    
    - Complete rewrite of the Gradle build using convention plugins (#61, #67, !46, !49)
    - Kotlin 1.8.10 and other dependency updates (#66, !48)