packages feed

ron-0.8: CHANGELOG.md

# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0)
and this project adheres to
[Compatible Versioning](https://github.com/staltz/comver).

## [Unreleased]

## [0.8] - 2019-08-10
### Added
- Associated type `ReplicatedAsObject.Rep`
- Function `correct`

### Changed
- Renamed `ObjectState` to `ObjectFrame`.
- Simplified `Error` type
- Type `StateChunk` is split into two new:
  - `StateChunk` is tagged on Haskell-type-level with its RDT
  - `WireStateChunk` has RDT as a field, isomorphic to the old `StateChunk`

### Removed
- Method `ReplicatedAsObject.objectOpType`

## [0.7] - 2019-07-26
### Added
- Instance `ReplicaClock WriterT`.
- Instance `MonadFail ReplicaSimT`.
- Module `RON.Semilattice`:
  - Class `Semilattice`.
  - Class alias `BoundedSemilattice`.

### Changed
- Now `ObjectState` keeps a typed reference to an object with state frame
  attached,
  and `Object` is just a typed UUID --
  a typed reference to an object in a state frame passed in MonadState context.

### Removed
- `ObjectPart` as not used in RON-RDT 2.1.
- Support of space inside text UUID, as removed in RON 2.1.

## [0.6] - 2019-03-01
### Added
- `RON.Error`:
  - `liftEither`
  - `liftEitherString`

## [0.5] - 2019-02-04
### Added
- `RON.UUID.liftName` function to create name UUIDs in compile time.
- `RON.Util.ByteStringL` type.
- `RON.Error` module with unified pretty errors.
- Organize `Replicated`, `ReplicatedAsPayload`, and `ReplicatedAsObject` in
  class hierarchy.
- Add `ORSet.removeValue` and `removeRef` implementation.
- Op "patterns" and patterns.

### Removed
- Type alias `ObjectId` since objects are identified by UUID.

### Changed
- Extracted `ron-storage` package.
- Extracted `ron-schema` package.
- Extracted `ron-rdt` package.
- Switched from `Either String a` to `MonadError String m => m a` in failable
  procedures.
- `ORSet.addRef` now adds item's frame, too.
- `ORSet.addNewRef` now returns the reference to the freshly created object.
- Change `StateFrame` key to UUID since objects are identified by UUID.
- Renamed `RawOp` to `ClosedOp` according to the fresh spec.

### Fixed
- Error handling in Boole decoder.

## [0.4] - 2019-01-09
### Added
- Schema `enum` declaration.
- `docIdFromUuid`.
- `OnDocumentChanged` is called each time when any document is changed.

### Changed
- Made GHC 8.6 default.

### Removed
- Schema embedded DSL helpers: `atomInteger`, `atomString`, `boole`, `char`,
  `field`, `option`, `orSet`, `rgaString`, `structLww`, `versionVector`.

### Fixed
- `RGA.edit` bug with re-adding deleted items (#39).

## [0.3] - 2018-12-05
### Added
- Encode/decode EpochTime.
- EDN-based schema DSL.

### Removed
- `RON.Storage.createVersion` from public API.
- `NFData` instances.

## [0.2] - 2018-11-20
### Added
- Schema boole type.
- RON.Storage and submodules are moved from ff project.
- RON.Schema is now re-exported via RON.Schema.TH.

### Changed
- Renamed UUID field "schema" to "version", according to changes in the
  specification.
- RGA: sequential UUIDs on initialization.
- Optimized `Base64.isLetter`.
- Extend `UUID.mkName` to accept any monad.
- Renamed `MonadStorage` methods `list...` -> `get...`
- Renamed `RON.Storage.saveDocument` -> `createDocument`

### Removed
- `RON.Storage.uuidToFileName` as it has no sense as an abstraction
- `RON.Storage.IO.runStorageT` with `StorageT`

## [0.1] - 2018-11-08
### Added
- Package `ron`
  - RON-text format
  - RON-binary format
  - RON-RDT:
    - LWW
    - RGA
    - OR-Set
    - VersionVector
  - RON-Schema
  - RON-Schema TemplateHaskell code generator

[Unreleased]: https://github.com/ff-notes/ron/compare/ron-0.8...HEAD
[0.8]: https://github.com/ff-notes/ron/compare/ron-0.7...ron-0.8
[0.7]: https://github.com/ff-notes/ron/compare/ron-0.6...ron-0.7
[0.6]: https://github.com/ff-notes/ron/compare/v0.5...ron-0.6
[0.5]: https://github.com/ff-notes/ron/compare/v0.4...v0.5
[0.4]: https://github.com/ff-notes/ron/compare/v0.3...v0.4
[0.3]: https://github.com/ff-notes/ron/compare/v0.2...v0.3
[0.2]: https://github.com/ff-notes/ron/compare/v0.1...v0.2
[0.1]: https://github.com/ff-notes/ron/tree/v0.1