acid-state-0.17.0: CHANGELOG.md
0.17.0
======
_Jeremy Shaw, 2026-10-29_
- `createCheckpointAndClose` no longer writes a checkpoint when this
process has already made one durable and no events have been logged
since, making shutdown fast right after `createCheckpoint` (e.g. via the
remote `CreateCheckpoint` command)
([#181](https://github.com/acid-state/acid-state/pull/181)).
A checkpoint is still written when the state is freshly created, when
events follow the last checkpoint, and when closing a state whose only
checkpoint is the one loaded at open (so SafeCopy migrations are still
saved).
**Breaking changes and changed behaviour**
- `LocalState` has a new field, `localLastCheckpoint`. Code that builds a
`LocalState` with positional arguments will no longer compile. Code that
builds one with record syntax will still compile (with only a
`-Wmissing-fields` warning), but leaves the field undefined: the next
`createCheckpoint` will then kill the log writer thread, and later
updates, checkpoints and closes will hang. Initialise the field with
`newIORef Nothing`.
- `createCheckpointAndClose` no longer always appends a checkpoint. After
`createCheckpoint` followed by `createArchive`, the newest
`checkpoints-*.log` file is left empty and the latest checkpoint is in
the file before it. acid-state itself restores correctly, but backup,
replication or monitoring scripts that copy or check only the newest
checkpoint file must be updated to look at earlier files too.
- Tools that use the checkpoint log's size, modification time or entry
count to confirm a clean shutdown may no longer see a change at close.
0.16.1.4
=========
_Andreas Abel, 2025-08-27_
- Drop support for GHC 7
- Tested with GHC 8.2 - 9.14.1-alpha1
0.16.1.3
========
_Andreas Abel, 2023-08-03_
- Support template-haskell-2.21
([#162](https://github.com/acid-state/acid-state/pull/162))
- Tested with GHC 7.8 - 9.8.1-alpha1
0.16.1.2
========
_Andreas Abel, 2023-04-06_
- Support unix-2.8
- Tested with GHC 7.8 - 9.6.1
0.16.1.1
========
_Andreas Abel, 2022-06-01_
- Adapt to changes in hedgehog-1.1 related to barbies
- Support mtl-2.3
- Tested with GHC 7.8 - 9.2.3
0.16.1
======
_David Fox, 2022-02-18_
- Support GHC-9.0.2, template-haskell 2.18
0.16.0.1
========
_Jeremy Shaw, 2020-05-19_
0.16.0
======
_Jeremy Shaw, 2019-11-14_
- support network-3.x and ghc-8.8.1
- Fix tests
([#131](https://github.com/acid-state/acid-state/pull/131))
- Haddock documentation fixes
- Update build dependency constraints
0.15.2
======
- adds acid-state-repair recovery tool
([#126](https://github.com/acid-state/acid-state/pull/16))
- parameterize the underlying serialization library
([#96](https://github.com/acid-state/acid-state/pull/96))
- support safecopy-0.10, which supports GHC.Generics
([#128](https://github.com/acid-state/acid-state/pull/128))
0.15.0
======
- change text of error messages to include module names
([#116](https://github.com/acid-state/acid-state/pull/116))
- depend on filelock library to avoid locking bug
([#91](https://github.com/acid-state/acid-state/pull/91))
- permit events that are polymorphic in the base monad, with a MonadReader/MonadState constraint
([#94](https://github.com/acid-state/acid-state/pull/94))
- fix a minor memory leak
([#104](https://github.com/acid-state/acid-state/pull/104))
- add a test suite and extend examples
([#98](https://github.com/acid-state/acid-state/pull/98))
- improve benchmarks
([#113](https://github.com/acid-state/acid-state/pull/113))
- expose internal modules (subject to change in the future)
0.14.3
======
- support building on GHC 8.2
- update links from seize.it to github.com
0.14.2
======
- createCheckpoint now cuts a new events file
([#74](https://github.com/acid-state/acid-state/pull/74))
0.14.1
======
- fix bug in archiveLog that resulted in logs being moved prematurely
([#22](https://github.com/acid-state/acid-state/issues/22))
- tweaks for GHC 8.0.x, template-haskell 2.11.x
- fix compilation of benchmarks
0.14.0
======
- fixes for cereal 0.5 while maintaining cereal 0.4
compatibility. IMPORTANT: cereal 0.5 / safecopy 0.9 change the
serialization format of Float/Double. Migration should be performed
automatically on old data. However, you should be aware that once
you upgrade to safecopy 0.9 / cereal 0.5, your data will be
migrated and not readable by older versions of your application
which are compiled against safecopy 0.8 / cereal 0.4.
- additional fixes for TH and kinded type variables
([#56](https://github.com/acid-state/acid-state/pull/56))