Changelog for ron-rdt-0.10
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Compatible Versioning.
Unreleased
0.10 - 2019-10-08
Added
RGA.toListRGA.toText
Fixed
- Cabal-file: Diff dependency bounds
0.9 - 2019-09-06
Added
- Function
ORSet.getFieldObject - Export
ORSetRepconstructor - Extend error reporting
ORSet.removeObjectIfORSet.addFieldValueORSet.removeFieldValueORSet.removeFieldValueIf
Changed
- Renamed
getObjecttoreadObject
0.8 - 2019-08-10
Added
- Function
reduceState - Function
reduceObjectStates - Checking type field and correcting object reduce
- Function
stateFromWireChunk - Function
stateToWireChunk
Changed
Reducibledepends onBoundedSemilattice.ReplicatedAsObjectdepends onReplicatedBoundedSemilattice.ReplicatedAsObject:- Removed method
objectOpType - Added associated type alias
Rep-- untyped RON-RDT representation of a typed RDT. - Behavior: referencing
Reptype instead of duplicating type UUID
- Removed method
Optionencoding: for availability, anything exceptsomemeans None. None is encoded as empty payload.- Renamed
ORSet.zoom->zoomItem. - Renamed
LWW.newObject->newStruct. - Event simulation: decreased max event leap from 2³² to 2¹⁶
- Text serialization: changed chunk sort order from (type, id) to just id
- ORSet: keep payload on removal
- LWW
- fields are always optional
viewFieldreturnsMaybereadFieldreturnsMaybeassignFieldtakesMaybe
Fixed
- Causality: an object happens-before its ops (in ORSet, RGA, LWW)
- Tombstone creation in ORSet
Removed
- Function
mkStateChunk. - RON type
Option(instances for Haskell typeMaybe) - Class
ReplicatedBoundedSemilattice - Function
objectRconcat(rconcattook its place)
0.7 - 2019-07-26
Added
newObjectStateObjectState"monad":ObjectStateT,MonadObjectStateevalObjectStateevalObjectState_execObjectStateexecObjectState_newObjectStatenewObjectStateWithrunObjectStaterunObjectState_
ORSet:- Instances
Eq,ShowforORSet. ORSetItemtype.- Methods
findAnyAlive,findAnyAlive',zoom.
- Instances
ORSetMaptype.
Changed
ReplicatedAsObject.newObjectnow has more specific type, and implementation doesn't need to callcollectFrame.- Method
ReplicatedAsObject.newObjectis now a functionnewObjectwith the same type. - Now
ObjectStatekeeps a typed reference to an object with state frame attached, andObjectis just a type UUID -- a typed reference to an object in a state frame passed inMonadObjectStatecontext. Object is now passed as an explicit argument. ORSetnow can contain objects.ORSet.addValuenow accepts objects.- Renamed
LwwPerFieldtoLwwRep. - Renamed
RgaRawtoRgaRep. - Renamed
ORSetRawtoORSetRep.
Removed
ObjectORSetmerged intoORSet.ORSet.addNewRefmerged intoaddValue.
0.6 - 2019-04-25
Added
RON.Data.RGA:getAliveIndicesinsertinsertAfterinsertAtBegininsertTextinsertTextAfterinsertTextAtBeginremove
0.5 - 2019-02-04
Added
RON.UUID.liftNamefunction to create name UUIDs in compile time.RON.Util.ByteStringLtype.RON.Errormodule with unified pretty errors.- Organize
Replicated,ReplicatedAsPayload, andReplicatedAsObjectin class hierarchy. - Add
ORSet.removeValueandremoveRefimplementation. - Op "patterns" and patterns.
Removed
- Type alias
ObjectIdsince objects are identified by UUID.
Changed
- Extracted
ron-storagepackage. - Extracted
ron-schemapackage. - Extracted
ron-rdtpackage. - Switched from
Either String atoMonadError String m => m ain failable procedures. ORSet.addRefnow adds item's frame, too.ORSet.addNewRefnow returns the reference to the freshly created object.- Change
StateFramekey to UUID since objects are identified by UUID. - Renamed
RawOptoClosedOpaccording to the fresh spec.
Fixed
- Error handling in Boole decoder.
0.4 - 2019-01-09
Added
- Schema
enumdeclaration. docIdFromUuid.OnDocumentChangedis 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.editbug with re-adding deleted items (#39).
0.3 - 2018-12-05
Added
- Encode/decode EpochTime.
- EDN-based schema DSL.
Removed
RON.Storage.createVersionfrom public API.NFDatainstances.
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.mkNameto accept any monad. - Renamed
MonadStoragemethodslist...->get... - Renamed
RON.Storage.saveDocument->createDocument
Removed
RON.Storage.uuidToFileNameas it has no sense as an abstractionRON.Storage.IO.runStorageTwithStorageT
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