diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aeb49d..a7cc93f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,56 @@ This project uses [**Break Versioning**](https://www.taoensso.com/break-versioni --- +# `v3.5.0` (2025-04-15) + +- **Dependency**: [on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.5.0) +- **Versioning**: [Break Versioning](https://www.taoensso.com/break-versioning) + +This is a **general maintenance release** focused on updating dependencies and laying groundwork (read support) for new array types coming in Nippy v3.6. + +It **drops support for Clojure v1.9** but should otherwise be a safe update from (at least) all recent versions of Nippy. + +## Since `v3.5.0-RC1` (2024-10-28) + +- **\[mod]** Drop official Clojure v1.9 support \[da57206] +- \[new] Add string array type to default [thaw-serializable-allowlist](https://cljdoc.org/d/com.taoensso/nippy/CURRENT/api/taoensso.nippy#*thaw-serializable-allowlist*) \[bfba594] +- \[new] Use [Truss exceptions](https://cljdoc.org/d/com.taoensso/truss/CURRENT/api/taoensso.truss#ex-info) on errors \[8d62dc2] +- \[new] [#184] Incl. cause on non-native freeze failures \[8d10765] +- \[doc] Clarify `*freeze-fallback*` docstring \[1026ea0] + +## Since `v3.4.2` (2024-05-26) + +- **\[mod]** Drop official Clojure v1.9 support \[da57206] +- \[new] Add string array type to default [thaw-serializable-allowlist](https://cljdoc.org/d/com.taoensso/nippy/CURRENT/api/taoensso.nippy#*thaw-serializable-allowlist*) \[bfba594] +- \[new] Use [Truss exceptions](https://cljdoc.org/d/com.taoensso/truss/CURRENT/api/taoensso.truss#ex-info) on errors \[8d62dc2] +- \[new] [#184] Incl. cause on non-native freeze failures \[8d10765] +- \[new] [#175] Mark [cache](https://cljdoc.org/d/com.taoensso/nippy/CURRENT/api/taoensso.nippy#cache) feature as stable \[b217db5] +- \[doc] Clarify `*freeze-fallback*` docstring \[1026ea0] + +## Migration info + +| Updating from Nippy | Changes to API? | Changes to [byte output](https://github.com/taoensso/nippy/wiki/2-Operational-considerations#stability-of-byte-output)? | Rolling update sequence [1] | +| :------------------------ | :-------------- | :---------------------------------------------------------------------------------------------------------------------- | :-------------------------- | +| `v3.5.0-RC1` (2024-10-28) | - | - | - | +| `v3.4.2` (2024-05-26) | - | - | - | +| `v3.4.1` (2024-05-02) | - | - | - | +| `v3.4.0` (2024-04-30) | - | **Yes** | - | +| `v3.3.0` (2023-10-11) | - | - | - | +| `v3.2.0` (2022-07-18) | - | - | - | +| `v3.1.3` (2022-06-23) | - | - | - | + +> [1] Relevant only when Nippy introduces support for new types **AND** you plan to update Nippy with a **rolling update** (coexisting new and old versions). + +If updating from older versions of Nippy, please see the relevant release notes. + +As always: + +- See [operational considerations](https://github.com/taoensso/nippy/wiki/2-Operational-considerations) for info on: **data compatibility**, **rolling updates**, **rollback support**, etc. +- It's always a good idea to **ensure adequate testing** in your environment before updating against production data! +- **Please report any unexpected problems** 🙏 + +\- [Peter Taoussanis](https://www.taoensso.com) + # `v3.5.0-RC1` (2024-10-28) - **Dependency**: [on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.5.0-RC1) @@ -11,14 +61,14 @@ This is a **non-breaking maintenance release** that updates dependencies and inc It should be safe to update from (at least) all recent versions of Nippy. -| Updating from Nippy | Changes to API? | Changes to [byte output](https://github.com/taoensso/nippy/wiki/2-Operational-considerations#stability-of-byte-output)? | Rolling update sequence [1] -| :-- | :-- | :-- | :-- -| `v3.4.2` (2024-05-26) | - | - | - -| `v3.4.1` (2024-05-02) | - | - | - -| `v3.4.0` (2024-04-30) | - | Yes | - -| `v3.3.0` (2023-10-11) | - | - | - -| `v3.2.0` (2022-07-18) | - | - | - -| `v3.1.3` (2022-06-23) | - | - | - +| Updating from Nippy | Changes to API? | Changes to [byte output](https://github.com/taoensso/nippy/wiki/2-Operational-considerations#stability-of-byte-output)? | Rolling update sequence [1] | +| :-------------------- | :-------------- | :---------------------------------------------------------------------------------------------------------------------- | :-------------------------- | +| `v3.4.2` (2024-05-26) | - | - | - | +| `v3.4.1` (2024-05-02) | - | - | - | +| `v3.4.0` (2024-04-30) | - | Yes | - | +| `v3.3.0` (2023-10-11) | - | - | - | +| `v3.2.0` (2022-07-18) | - | - | - | +| `v3.1.3` (2022-06-23) | - | - | - | > [1] Relevant only when introducing support for new types, and for users that do rolling updates @@ -43,13 +93,13 @@ As always: It should be a **straight-forward and non-breaking update** for almost everyone: -| Updating from Nippy | Changes to API? | Changes to [byte output](https://github.com/taoensso/nippy/wiki/2-Operational-considerations#stability-of-byte-output)? | Rolling update sequence [1] -| :-- | :-- | :-- | :-- -| `v3.4.1` (2024-05-02) | - | - | - -| `v3.4.0` (2024-04-30) | - | Yes | - -| `v3.3.0` (2023-10-11) | - | - | - -| `v3.2.0` (2022-07-18) | - | - | - -| `v3.1.3` (2022-06-23) | - | - | - +| Updating from Nippy | Changes to API? | Changes to [byte output](https://github.com/taoensso/nippy/wiki/2-Operational-considerations#stability-of-byte-output)? | Rolling update sequence [1] | +| :-------------------- | :-------------- | :---------------------------------------------------------------------------------------------------------------------- | :-------------------------- | +| `v3.4.1` (2024-05-02) | - | - | - | +| `v3.4.0` (2024-04-30) | - | Yes | - | +| `v3.3.0` (2023-10-11) | - | - | - | +| `v3.2.0` (2022-07-18) | - | - | - | +| `v3.1.3` (2022-06-23) | - | - | - | > [1] Relevant only when introducing support for new types, and for users that do rolling updates diff --git a/README.md b/README.md index 3c955c2..253cc2b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ Taoensso open source -[**API**][cljdoc docs] | [**Wiki**][GitHub wiki] | [Latest releases](#latest-releases) | [Get support][GitHub issues] +[**API**][cljdoc] | [**Wiki**][GitHub wiki] | [Latest releases](#latest-releases) | [Get support][GitHub issues] # Nippy @@ -13,8 +13,7 @@ It is used at scale by [Carmine](https://www.taoensso.com/carmine), [Faraday](ht ## Latest release/s -- `2024-05-26` `v3.4.2` (stable): [release info](../../releases/tag/v3.4.2) -- `2024-10-28` `v3.5.0-RC1` (dev): [release info](../../releases/tag/v3.5.0-RC1) +- `2025-04-15` `v3.5.0`: [release info](../../releases/tag/v3.5.0) [![Main tests][Main tests SVG]][Main tests URL] [![Graal tests][Graal tests SVG]][Graal tests URL] @@ -96,7 +95,7 @@ PRs welcome to include other alternatives in the [benchmark suite](../../blob/ma ## Documentation - [Wiki][GitHub wiki] (getting started, usage, etc.) -- API reference: [cljdoc][cljdoc docs], [Codox][Codox docs] +- API reference via [cljdoc][cljdoc] ## Funding @@ -104,7 +103,7 @@ You can [help support][sponsor] continued work on this project, thank you!! 🙏 ## License -Copyright © 2012-2024 [Peter Taoussanis][]. +Copyright © 2012-2025 [Peter Taoussanis][]. Licensed under [EPL 1.0](LICENSE.txt) (same as Clojure). @@ -118,8 +117,7 @@ Licensed under [EPL 1.0](LICENSE.txt) (same as Clojure). -[Codox docs]: https://taoensso.github.io/nippy/ -[cljdoc docs]: https://cljdoc.org/d/com.taoensso/nippy/CURRENT/api/taoensso.nippy +[cljdoc]: https://cljdoc.org/d/com.taoensso/nippy/CURRENT/api/taoensso.nippy [Clojars SVG]: https://img.shields.io/clojars/v/com.taoensso/nippy.svg [Clojars URL]: https://clojars.org/com.taoensso/nippy diff --git a/project.clj b/project.clj index 5582ea4..d148602 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject com.taoensso/nippy "3.5.0-RC1" +(defproject com.taoensso/nippy "3.5.0" :author "Peter Taoussanis " :description "The fastest serialization library for Clojure" :url "https://www.taoensso.com/nippy" diff --git a/src/taoensso/nippy.clj b/src/taoensso/nippy.clj index 75fe20c..9ec1ac9 100644 --- a/src/taoensso/nippy.clj +++ b/src/taoensso/nippy.clj @@ -197,13 +197,13 @@ 15 [:byte-array-md [[:elements {:read 2}]]] 2 [:byte-array-lg [[:elements {:read 4}]]] - 109 [:int-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (YYYY-MM-DD) - 108 [:long-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (YYYY-MM-DD) + 109 [:int-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (2025-04-15) + 108 [:long-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (2025-04-15) - 117 [:float-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (YYYY-MM-DD) - 116 [:double-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (YYYY-MM-DD) + 117 [:float-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (2025-04-15) + 116 [:double-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (2025-04-15) - 107 [:string-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (YYYY-MM-DD) + 107 [:string-array-lg [[:elements {:read 4}]]] ; Added v3.5.0 (2025-04-15) 115 [:object-array-lg [[:elements {:read 4}]]] ;; Serializable diff --git a/src/taoensso/nippy/impl.clj b/src/taoensso/nippy/impl.clj index 7593b82..c917893 100644 --- a/src/taoensso/nippy/impl.clj +++ b/src/taoensso/nippy/impl.clj @@ -183,8 +183,8 @@ ;; To help support release targeting, we track new type ids added over time (let [id-history ; { #{type-ids}} - {350 ; v3.5.0 (YYYY-MM-DD), added 5x - ;; #{string-array-lg long-array-lg int-array-lg double-array-lg float-array-lg} + {350 ; v3.5.0 (2025-04-15), added 5x + ;; #{int-array-lg long-array-lg float-array-lg double-array-lg string-array-lg} #{0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80