nippy/CHANGELOG.md

559 lines
26 KiB
Markdown
Raw Permalink Normal View History

2023-08-02 12:47:28 +00:00
This project uses [**Break Versioning**](https://www.taoensso.com/break-versioning).
2014-08-15 09:17:09 +00:00
2023-08-02 12:47:28 +00:00
---
2023-08-02 12:09:20 +00:00
2025-04-14 16:33:54 +00:00
# `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)
2025-04-15 08:00:29 +00:00
---
2024-10-28 10:09:56 +00:00
# `v3.5.0-RC1` (2024-10-28)
2024-10-28 11:06:51 +00:00
- **Dependency**: [on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.5.0-RC1)
2024-10-28 10:09:56 +00:00
- **Versioning**: [Break Versioning](https://www.taoensso.com/break-versioning)
This is a **non-breaking maintenance release** that updates dependencies and includes read support for more native array types to be introduced in a future v3.6 release.
It should be safe to update from (at least) all recent versions of Nippy.
2025-04-14 16:33:54 +00:00
| 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) | - | - | - |
2024-10-28 10:09:56 +00:00
2024-10-28 11:06:51 +00:00
> [1] Relevant only when introducing support for new types, and for users that do rolling updates
2024-10-28 10:09:56 +00:00
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)
---
2024-05-26 11:31:00 +00:00
# `v3.4.2` (2024-05-26)
2024-10-28 11:06:51 +00:00
- **Dependency**: [on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.4.2)
- **Versioning**: [Break Versioning](https://www.taoensso.com/break-versioning)
2024-05-26 11:31:00 +00:00
2024-05-30 07:11:28 +00:00
⚠️ This release addresses a [**security vulnerability**](https://github.com/taoensso/nippy/security/advisories/GHSA-vw78-267v-588h) in Nippy's upstream compression library and is **recommended for all existing users**.
2024-05-26 11:31:00 +00:00
2024-05-30 07:11:28 +00:00
It should be a **straight-forward and non-breaking update** for almost everyone:
2024-05-26 11:31:00 +00:00
2025-04-14 16:33:54 +00:00
| 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) | - | - | - |
2024-10-28 10:09:56 +00:00
2024-10-28 11:06:51 +00:00
> [1] Relevant only when introducing support for new types, and for users that do rolling updates
2024-05-26 11:31:00 +00:00
2024-05-30 07:11:28 +00:00
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** 🙏
2024-05-26 11:31:00 +00:00
\- [Peter Taoussanis](https://www.taoensso.com)
2024-05-26 12:27:51 +00:00
---
2024-05-02 11:42:10 +00:00
# `v3.4.1` (2024-05-02)
> **Dep**: Nippy is [on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.4.1).
> **Versioning**: Nippy uses [Break Versioning](https://www.taoensso.com/break-versioning).
Like [`v3.4.0`](https://github.com/taoensso/nippy/releases/tag/v3.4.0) but introduces an internal mechanism to help make it easier for some users that do **rolling updates** from earlier versions of Nippy.
Still, the usual warning applies: data **frozen by Nippy version X** should ideally be **thawed by version >= X**, otherwise you run the risk of the thaw throwing when unfamiliar types are encountered. Please note that this can affect **rolling updates**, and can limit your ability to **revert a Nippy update**. Please ensure adequate testing in your environment before updating against production data!
\- [Peter Taoussanis](https://www.taoensso.com)
## Changes since `v3.4.0`
* [mod] Due to some internal format changes, Nippy `v3.4.1` may produce **different serialized output** to `v3.4.0` and earlier versions of Nippy. Most users won't care about this, but you could be affected if you depend on specific serialized byte values (for example by comparing serialized output between different versions of Nippy).
---
2024-04-30 09:20:02 +00:00
# `v3.4.0` (2024-04-30)
> **Dep**: Nippy is [on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.4.0).
> **Versioning**: Nippy uses [Break Versioning](https://www.taoensso.com/break-versioning).
This is a non-breaking **feature and maintenance** release and should be a safe update for existing users. But as always, please **test carefully and report any unexpected problems**, thank you! 🙏
**IMPORTANT**: data **frozen by Nippy version X** should always be **thawed by version >= X**, otherwise you run the risk of the thaw throwing when encountering unfamiliar types. Please note that this can affect **rolling updates**, and can limit your ability to **revert a Nippy update**. Please ensure adequate testing in your environment before updating against production data.
2024-04-30 09:20:02 +00:00
\- [Peter Taoussanis](https://www.taoensso.com)
## Changes since `v3.3.0` (2023-10-11)
* 82a050b [mod] Don't attach empty metadata (meta will now be `nil` rather than `{}`)
## Fixes since `v3.3.0` (2023-10-11)
* 92c4a83 [fix] Broken `*final-freeze-fallback*` default val
## New since `v3.3.0` (2023-10-11)
* fb6f75e [new] Smarter, faster, protocol-based `freezable?` util
* 6ad5aeb [new] Add `:zstd` compressor, new compressor backend
* 9db09e1 [new] [#163] Track serialized output in tests
* dcc6b08 [new] [#164] Update benchmarks
* f3ff7ae [new] Add native `MapEntry` freezer
* 37cf415 [new] [#171] Auto strip metadata protocol extensions
* Misc internal improvements
## Everything since `v3.4.0-RC3` (2024-04-10)
* Update dependencies
---
2024-04-10 09:30:45 +00:00
# `v3.4.0-RC3` (2024-04-10)
> 📦 [Available on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.4.0-RC3), this project uses [Break Versioning](https://www.taoensso.com/break-versioning).
This is a non-breaking **feature and maintenance** pre-release.
Please **test carefully and report any unexpected problems**, thank you! 🙏
## New since `v3.3.0`
* fb6f75e [new] Smarter, faster, protocol-based `freezable?` util
* 6ad5aeb [new] Add `:zstd` compressor, new compressor backend
* 9db09e1 [new] [#163] Track serialized output in tests
* dcc6b08 [new] [#164] Update benchmarks
* f3ff7ae [new] Add native `MapEntry` freezer
* 37cf415 [new] [#171] Auto strip metadata protocol extensions
* Misc internal improvements
2024-04-10 17:52:23 +00:00
## Everything since `v3.4.0-RC2`
2024-04-10 09:30:45 +00:00
* 82a050b [mod] Don't attach empty metadata
* 92c4a83 [fix] Broken `*final-freeze-fallback*` default val
* 37cf415 [new] [#171] Auto strip metadata protocol extensions
* Update dependencies
2024-02-26 08:54:17 +00:00
# `v3.4.0-RC2` (2024-02-26)
> 📦 [Available on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.4.0-RC2), this project uses [Break Versioning](https://www.taoensso.com/break-versioning).
This is a non-breaking **feature and maintenance** pre-release.
Please **test carefully and report any unexpected problems**, thank you! 🙏
## New since `v3.3.0`
* fb6f75e [new] Smarter, faster, protocol-based `freezable?` util
* 6ad5aeb [new] Add `:zstd` compressor, new compressor backend
* 9db09e1 [new] [#163] Track serialized output in tests
* dcc6b08 [new] [#164] Update benchmarks
* f3ff7ae [new] Add native `MapEntry` freezer
* Misc internal improvements
2024-04-10 17:52:23 +00:00
## Everything since `v3.4.0-RC1`
2024-02-26 08:54:17 +00:00
* cb5b7cf [fix] [#169] Can't auto-identify `:zstd` compressor when decompressing
* cb0b871 Revert [mod] 578c585 (upstream fix now available)
* Update dependencies
---
2024-02-06 14:00:43 +00:00
# `v3.4.0-RC1` (2024-02-06)
> 📦 [Available on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.4.0-RC1), this project uses [Break Versioning](https://www.taoensso.com/break-versioning).
This is a non-breaking **feature and maintenance** pre-release.
Please **test carefully and report any unexpected problems**, thank you! 🙏
## Changes since `v3.3.0`
* 578c585 [mod] Remove `nippy/snappy-compressor`
## New since `v3.3.0`
* fb6f75e [new] Smarter, faster, protocol-based `freezable?` util
* 6ad5aeb [new] Add `:zstd` compressor, new compressor backend
* 9db09e1 [new] [#163] Track serialized output in tests
* dcc6b08 [new] [#164] Update benchmarks
* f3ff7ae [new] Add native `MapEntry` freezer
* Misc internal improvements
---
2023-10-11 12:07:00 +00:00
# `v3.3.0` (2023-10-11)
> 📦 [Available on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.3.3), this project uses [Break Versioning](https://www.taoensso.com/break-versioning).
Identical to `v3.3.0-RC2`.
This is a non-breaking **feature and maintenance** release.
Please test carefully and report any unexpected problems, thank you! 🙏
2024-01-10 09:55:30 +00:00
## Changes since `v3.2.0`
* [mod] Due to micro-optimizations of some elementary types, Nippy v3.3 may produce **different serialized output** to earlier versions of Nippy. Most users won't care about this, but you could be affected if you depend on specific serialized byte values (for example by comparing serialized output between different versions of Nippy).
2023-10-11 12:07:00 +00:00
## Fixes since `v3.2.0`
* fa1cc66 [fix] [#143] Don't freeze meta info for types that don't support `with-meta`
## New since `v3.2.0`
* 89f98b4 [new] [#153] PoC: transducer support on thaw
* 60bc4e9 [new] [Storage efficiency] PoC: unsigned counts for small core colls
* 0a9d670 [new] [Storage efficiency] PoC: separate signed long types
* 8778fa4 [new] Include `:bindings` in ex-data of thaw failures
* aba153e [new] [#159] Add native impln for `java.sql.Date` (@philomates)
* d8b1825 [new] [#158] Add `java.lang.ClassCastException` to default thaw allow list (@carlosgeos)
* 8b7186a [new] Update [benchmark results](https://github.com/taoensso/nippy#performance)
* 3ac06b6 [new] Refactor tools ns, embed dynamic `*freeze-opts*` in wrappers
* 129ce95 [new] [#151] [#140] Add experimental `public-types-spec`
## Other improvements since `v3.2.0`
* Improved some docstrings
* Improved generative unit tests
* Updated internal dependencies
---
2023-09-26 11:23:14 +00:00
# `v3.4.0-beta1` (2023-09-26)
> 📦 [Available on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.4.0-beta1)
This is a non-breaking **feature** pre-release.
Please **test carefully and report any unexpected problems**, thank you! 🙏
## New since `v3.3.0-RC2`
* 6ad5aeb [new] Add `:zstd` compressor, new (faster) compressor backend, better docstrings
* fb6f75e [new] Smarter, faster, protocol-based `freezable?` util
* f3ff7ae [new] Add native `MapEntry` freezer
* fef079d [new] Add subvec to stress data
* Misc internal improvements
## Other improvements since `v3.3.0-RC2`
* e0cd003 [nop] Update docs
* 99970d5 [nop] Update benchmark results
* bcf7673 [nop] Move benchmarks ns under tests dir
---
2023-09-25 09:34:32 +00:00
# `v3.3.0-RC2` (2023-09-25)
2023-09-26 11:23:14 +00:00
> 📦 [Available on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.3.0-RC2)
2023-09-25 09:34:32 +00:00
Identical to `v3.3.0-RC1` except:
2023-09-26 11:23:14 +00:00
* Improves some docstrings
* Improves generative unit tests
* Updates internal dependencies
2023-09-25 09:34:32 +00:00
If no unexpected problems come up, `v3.3.0` final is planned for release by the end of September.
2023-10-11 12:07:00 +00:00
---
2023-09-25 09:34:32 +00:00
2023-08-02 12:09:20 +00:00
# `v3.3.0-RC1` (2023-08-02)
2023-09-26 11:23:14 +00:00
> 📦 [Available on Clojars](https://clojars.org/com.taoensso/nippy/versions/3.3.0-RC1)
2023-08-02 12:09:20 +00:00
This is a non-breaking **feature and maintenance** pre-release.
2023-09-26 11:23:14 +00:00
Please **test carefully and report any unexpected problems**, thank you! 🙏
2023-08-02 12:09:20 +00:00
## Fixes since `v3.2.0`
* fa1cc66 [fix] [#143] Don't freeze meta info for types that don't support `with-meta`
## New since `v3.2.0`
* 89f98b4 [new] [#153] PoC: transducer support on thaw
* 60bc4e9 [new] [Storage efficiency] PoC: unsigned counts for small core colls
* 0a9d670 [new] [Storage efficiency] PoC: separate signed long types
* 8778fa4 [new] Include `:bindings` in ex-data of thaw failures
* aba153e [new] [#159] Add native impln for `java.sql.Date` (@philomates)
* d8b1825 [new] [#158] Add `java.lang.ClassCastException` to default thaw allow list (@carlosgeos)
* 8b7186a [new] Update [benchmark results](https://github.com/taoensso/nippy#performance)
* 3ac06b6 [new] Refactor tools ns, embed dynamic `*freeze-opts*` in wrappers
* 129ce95 [new] [#151] [#140] Add experimental `public-types-spec`
2023-10-11 12:07:00 +00:00
---
2023-08-02 12:09:20 +00:00
2023-08-02 12:21:56 +00:00
# `v3.2.0` (2022-07-18)
2022-07-18 07:21:55 +00:00
2023-08-02 12:21:56 +00:00
> Identical to `v3.2.0-RC3` (2022 Jun 27)
2022-07-18 07:21:55 +00:00
```clojure
[com.taoensso/nippy "3.2.0"]
```
> This is a non-breaking maintenance release.
2023-08-02 12:47:28 +00:00
> See [here](https://github.com/taoensso/encore#recommended-steps-after-any-significant-dependency-update) for recommended steps when updating any Clojure/Script dependencies.
2022-07-18 07:21:55 +00:00
2023-08-02 12:21:56 +00:00
## New since `v3.1.3`
2022-07-18 07:21:55 +00:00
* [#144] [New] Add `org.joda.time.DateTime` to `default-thaw-serializable-allowlist` (@slipset)
* [#146] [New] Add Graal native configurations (@FieryCod)
2023-08-02 12:21:56 +00:00
## Changes since `v3.1.3`
2022-07-18 07:21:55 +00:00
* Bump dependencies, incl. minimum Encore version
2023-08-02 12:21:56 +00:00
## Fixes since `v3.1.1`
2022-07-18 07:21:55 +00:00
* [#89 #150] [Fix] Boxed Booleans incorrectly freezing to primitive `true` (@RolT)
* [#148] [Fix] `tools/freeze` should use `*freeze-opts*` even for unwrapped vals
* [#145] [Fix] Freezing custom types with munged field names
The boxed Boolean bug has been around since the first version of Nippy and is mostly
2023-08-02 12:47:28 +00:00
relevant to users doing Java interop. For more info see: https://github.com/taoensso/nippy/commit/8909a32bdd654a136da385e0e09c9cc44416f964
2022-07-18 07:21:55 +00:00
2023-10-11 12:07:00 +00:00
---
2022-07-18 07:21:55 +00:00
2023-08-02 12:21:56 +00:00
# `v3.2.0-RC3` (2022-06-27)
2022-06-27 08:50:00 +00:00
```clojure
[com.taoensso/nippy "3.2.0-RC3"]
```
> This is a non-breaking maintenance release.
2023-08-02 12:47:28 +00:00
> See [here](https://github.com/taoensso/encore#recommended-steps-after-any-significant-dependency-update) for recommended steps when updating any Clojure/Script dependencies.
2022-06-27 08:50:00 +00:00
2023-08-02 12:21:56 +00:00
## New since `v3.1.3`
2022-06-27 08:50:00 +00:00
* [#144] [New] Add `org.joda.time.DateTime` to `default-thaw-serializable-allowlist` (@slipset)
* [#146] [New] Add Graal native configurations (@FieryCod)
2023-08-02 12:21:56 +00:00
## Changes since `v3.1.3`
2022-06-27 08:50:00 +00:00
* Bump dependencies, incl. minimum Encore version
2023-08-02 12:21:56 +00:00
## Fixes since `v3.1.1`
2022-06-27 08:50:00 +00:00
* [#89 #150] [Fix] Boxed Booleans incorrectly freezing to primitive `true` (@RolT)
* [#148] [Fix] `tools/freeze` should use `*freeze-opts*` even for unwrapped vals
* [#145] [Fix] Freezing custom types with munged field names
The boxed Boolean bug has been around since the first version of Nippy and is mostly
2023-08-02 12:47:28 +00:00
relevant to users doing Java interop. For more info see: https://github.com/taoensso/nippy/commit/8909a32bdd654a136da385e0e09c9cc44416f964
2022-06-27 08:50:00 +00:00
2023-10-11 12:07:00 +00:00
---
2022-06-27 08:50:00 +00:00
2023-08-02 12:21:56 +00:00
# `v3.2.0-RC2` (2022-06-23)
2022-06-23 10:38:11 +00:00
```clojure
2022-06-23 11:18:10 +00:00
[com.taoensso/nippy "3.2.0-RC2"]
2022-06-23 10:38:11 +00:00
```
> This is a non-breaking maintenance release.
2023-08-02 12:47:28 +00:00
> See [here](https://github.com/taoensso/encore#recommended-steps-after-any-significant-dependency-update) for recommended steps when updating any Clojure/Script dependencies.
2022-06-23 10:38:11 +00:00
2023-08-02 12:21:56 +00:00
## New since `v3.1.3`
2022-06-23 10:38:11 +00:00
* [#144] [New] Add `org.joda.time.DateTime` to `default-thaw-serializable-allowlist` (@slipset)
* [#146] [New] Add Graal native configurations (@FieryCod)
2023-08-02 12:21:56 +00:00
## Changes since `v3.1.3`
2022-06-23 10:38:11 +00:00
* Bump dependencies, incl. minimum Encore version
2023-08-02 12:21:56 +00:00
## Fixes since `v3.1.1`
2022-06-23 10:38:11 +00:00
2022-06-23 11:18:10 +00:00
* [#148] [Fix] `tools/freeze` should use `*freeze-opts*` even for unwrapped vals
2022-06-23 10:38:11 +00:00
* [#89 #150] [Fix] Boxed Booleans incorrectly freezing to primitive `true` (@RolT)
2022-06-23 11:18:10 +00:00
The boxed Boolean bug has been around since the first version of Nippy and is mostly
2023-08-02 12:47:28 +00:00
relevant to users doing Java interop. For more info see: https://github.com/taoensso/nippy/commit/8909a32bdd654a136da385e0e09c9cc44416f964
2022-06-23 10:38:11 +00:00
2023-10-11 12:07:00 +00:00
---
2022-06-23 10:38:11 +00:00
2023-08-02 12:21:56 +00:00
# `v3.1.3` (2022-06-23)
2022-06-23 09:12:35 +00:00
```clojure
2022-06-23 11:18:10 +00:00
[com.taoensso/nippy "3.1.3"]
2022-06-23 09:12:35 +00:00
```
2022-06-23 10:38:11 +00:00
> This is a non-breaking, bugfix release.
2023-08-02 12:47:28 +00:00
> See [here](https://github.com/taoensso/encore#recommended-steps-after-any-significant-dependency-update) for recommended steps when updating any Clojure/Script dependencies.
2022-06-23 10:38:11 +00:00
2023-08-02 12:21:56 +00:00
## Fixes since `v3.1.1`
2022-06-23 09:12:35 +00:00
2022-06-23 11:18:10 +00:00
* [#148] [Fix] `tools/freeze` should use `*freeze-opts*` even for unwrapped vals
2022-06-23 09:12:35 +00:00
* [#89 #150] [Fix] Boxed Booleans incorrectly freezing to primitive `true` (@RolT)
2022-06-23 11:18:10 +00:00
The boxed Boolean bug has been around since the first version of Nippy and is mostly
2023-08-02 12:47:28 +00:00
relevant to users doing Java interop. For more info see: https://github.com/taoensso/nippy/commit/8909a32bdd654a136da385e0e09c9cc44416f964
2022-06-23 09:12:35 +00:00
2023-10-11 12:07:00 +00:00
---
2022-06-23 10:38:11 +00:00
2023-08-02 12:21:56 +00:00
# `v3.1.1` (2020-11-18)
2020-11-18 10:55:36 +00:00
```clojure
[com.taoensso/nippy "3.1.1"]
```
> This is a non-breaking, bugfix release. But please note that large keywords or symbols (with >127 characters) frozen with >=`v3.1.1` will need >=`v3.1.1` to thaw.
2023-08-02 12:21:56 +00:00
## Fixes since `v3.1.0`
2020-11-18 10:55:36 +00:00
* Large keywords and symbols (with >127 characters) can now thaw without throwing (@danmason).
[1] Keywords or symbols with >127 characters in their name
2023-10-11 12:07:00 +00:00
---
# `v3.1.0` (2020-11-06)
2020-11-06 14:45:36 +00:00
```clojure
[com.taoensso/nippy "3.1.0"]
```
> This is a non-breaking, minor feature release.
2023-08-02 12:21:56 +00:00
## New since `v3.0.0`
2020-11-06 14:45:36 +00:00
* [#135 #128] Added native `freeze/thaw` support for `java.time` classes on JVM 8+: `Instant`, `Duration`, `Period`.
* [#137] Add `thaw-from-resource` convenience util.
* Add (DEPRECATED) `swap-serializable-whitelist!` for backwards compatibility.
2023-08-02 12:21:56 +00:00
## Changes since `v3.0.0`
2020-11-06 14:45:36 +00:00
* Add several standard `java.time` classes to default `*thaw-serializable-whitelist*`.
2023-10-11 12:07:00 +00:00
---
2020-11-06 14:45:36 +00:00
2023-10-11 12:07:00 +00:00
# `v3.1.0-RC1` (2020-10-24)
2020-10-24 12:31:37 +00:00
```clojure
[com.taoensso/nippy "3.1.0-RC1"]
```
> This is a non-breaking, minor feature release.
2023-08-02 12:21:56 +00:00
## New since `v3.0.0`
2020-10-24 12:31:37 +00:00
* [#135 #128] Added native `freeze/thaw` support for `java.time.Instant` on JVM 8+ (@cnuernber).
2020-10-24 12:31:37 +00:00
2023-10-11 12:07:00 +00:00
---
2020-10-24 12:31:37 +00:00
2023-08-02 12:21:56 +00:00
# `v3.0.0` (2020-09-20)
2020-09-20 10:08:16 +00:00
```clojure
[com.taoensso/nippy "3.0.0"]
```
> This release is focused on smoothing out rough edges left by `CVE-2020-24164` [#130], and to **ease transition** from versions of Nippy < `v2.15.0 final`.
2023-08-02 12:47:28 +00:00
> See [here](https://github.com/taoensso/encore#recommended-steps-after-any-significant-dependency-update) for recommended steps when updating any Clojure/Script dependencies.
2020-09-20 10:08:16 +00:00
Note that there's **separate details** below for upgrading from `v2.15` vs `v2.14`:
2023-08-02 12:21:56 +00:00
## Upgrading from `v2.15` (usually non-breaking)
2020-09-20 10:08:16 +00:00
Usually a non-breaking drop-in replacement, but there's some changes you might like to take advantage of. See [#130] for **detailed upgrade instructions**.
2023-08-02 12:21:56 +00:00
### Changes
2020-09-20 10:08:16 +00:00
- **[BREAKING]** Bumped minimum Clojure version from `v1.5` to `v1.7`.
- **[BREAKING]** `:nippy/unthawable` responses now have a standardized form: `{:nippy/unthawable {:type _ :cause _ ...}`. Most folks won't care about this change unless they have code specifically to deal with `:nippy/unthawable` responses.
- [Deprecated] `*serializable-whitelist*` has been split into two separate vars: `*freeze-serializable-allowlist*`, `*thaw-serializable-allowlist`*. See [#130] for details.
- By default, `freeze` now **allows** the use of Java's Serializable for **any** class. `thaw` continues to be restrictive by default, and will quarantine any objects not on the class allowlist. See [#130] for details.
2023-08-02 12:21:56 +00:00
### New
2020-09-20 10:08:16 +00:00
- [#122] Option to disable freezing and/or thawing of metadata.
- `freeze` and `thaw` now support opts: `:serializable-allowlist`, `:incl-metadata?`.
2023-08-02 12:47:28 +00:00
- New `read-quarantined-serializable-object-unsafe!` util to read quarantined Serializable objects. See [API docs](http://taoensso.github.io/nippy/taoensso.nippy.html#var-read-quarantined-serializable-object-unsafe.21) and/or [#130] for details.
- Add `allow-and-record-any-serializable-class-unsafe` util. See [API docs](http://taoensso.github.io/nippy/taoensso.nippy.html#var-allow-and-record-any-serializable-class-unsafe) and/or [#130] for details.
2020-09-20 10:08:16 +00:00
2023-08-02 12:21:56 +00:00
## Upgrading from `v2.14` (may be BREAKING)
2020-09-20 10:08:16 +00:00
Likely breaking. Please see [#130] for **detailed upgrade instructions**.
2023-08-02 12:21:56 +00:00
### Changes
2020-09-11 09:35:19 +00:00
- **[BREAKING]** Bumped minimum Clojure version from `v1.5` to `v1.7`.
- **[BREAKING]** [#130] `thaw` will now quarantine Serializable objects whose class is not allowed by `*thaw-serializable-allowlist*`. See [#130] for details.
- **[BREAKING]** `:nippy/unthawable` responses now have a standardized form: `{:nippy/unthawable {:type _ :cause _ ...}`. Most folks won't care about this change unless you have code specifically to deal with `:nippy/unthawable` responses.
- [#101] Switch default encryptor from `AES-CBC` to `AES-GCM` (faster, includes integrity check)
2023-08-02 12:21:56 +00:00
### New
2020-09-11 09:35:19 +00:00
- [#127] Add utils: `freeze-to-string`, `thaw-from-string` (@piotr-yuxuan)
- [#113 #114] Add support for object arrays (@isaksky)
- [#83 #112] Add support for deftype (@isaksky)
- [#83 #113] Add support for URIs (@isaksky)
- [#126] `extend-freeze`: include id collision odds in docstring
2023-08-02 12:21:56 +00:00
### Fixes
2020-09-11 09:35:19 +00:00
- [#120] Update `freezable?` to cover `nil`
2023-08-02 12:47:28 +00:00
---
2023-08-02 12:21:56 +00:00
# Earlier releases
2020-09-11 09:35:19 +00:00
2023-09-26 11:23:14 +00:00
See [here](https://github.com/taoensso/nippy/releases) for earlier releases.