Skip to content

Latest commit

 

History

History
236 lines (175 loc) · 9.51 KB

CHANGELOG.md

File metadata and controls

236 lines (175 loc) · 9.51 KB

Changelog

Automerge adheres to Semantic Versioning for assigning version numbers.

All notable changes to Automerge will be documented in this file, which is based on Keep a Changelog.

0.9.0 — 2018-09-18

Added

  • #112: Added Automerge.undo() and Automerge.redo() (@ept)
  • #118: Introduced new Frontend and Backend APIs, and refactored existing APIs to use them; this allows some of the work to be moved to a background thread, and provides better modularisation (@ept)

Removed

  • Removed the experimental Immutable.js-compatible API (Automerge.initImmutable()), a casualty of the refactoring in #118 (@ept)

0.8.0 — 2018-08-02

Added

  • #106: New doc._get(UUID) method allows looking up an object by its _objectId inside an Automerge.change() callback (@mattkrick)
  • #109: Export OpSet.getMissingChanges on the Automerge object (@mattkrick)
  • #111: New Automerge.emptyChange() allows a "change" record to be created without actually changing the document (@ept)

Changed

  • #110: Require that the change message in Automerge.change() must be a string (@ept)
  • #111: If Automerge.change() does not modify the document, the function now returns the original document object untouched (@ept)

0.7.11 — 2018-06-26

Fixed

  • #97: delete operator no longer throws an exception if the property doesn't exist (@salzhrani, @EthanRBrown)
  • #104: Fix an error when loading the webpack-packaged version of Automerge in Node.js (@ept)

0.7.10 — 2018-06-12

Added

  • #93: Allow the UUID implementation to be replaced for testing purposes (@kpruden)
  • #74: Automerge.diff() now includes the path from the root to the modified object (@ept)

0.7.9 — 2018-05-25

Fixed

0.7.8 — 2018-05-15

Fixed

  • #91: Improve performance of changes that modify many list or map elements (@ept)

0.7.7 — 2018-04-24

0.7.4, 0.7.5, 0.7.6 — 2018-04-19

  • Version bump to fix a build tooling issue

0.7.3 — 2018-04-19

  • #85: Publish Babel-transpiled code to npm to improve compatibility (@EthanRBrown)

0.7.2 — 2018-04-17

Changed

  • #83: Changed _objectId property on Automerge map objects to be non-enumerable (@EthanRBrown, @ept)
  • #84: Changed _conflicts, _state, and _actorId to be non-enumerable properties (@ept)

Fixed

  • #77: Fixed exception when a list element is inserted and updated in the same change callback (@mmcgrana, @ept)
  • #78: Better error message when trying to use an unsupported datatype (@ept)

0.7.1 — 2018-02-26

Fixed

  • #69: Automerge.load generates random actorId if none specified (@saranrapjs)
  • #64: Automerge.applyChanges() allows changes to be applied out-of-order (@jimpick, @ept)

0.7.0 — 2018-01-15

Added

  • #62: Initial support for Immutable.js API compatibility (read-only for now) (@ept, @jeffpeterson)
  • #45: Added experimental APIs Automerge.getMissingDeps, Automerge.getChangesForActor, and Automerge.WatchableDoc to support integration with dat hypercore (@pvh, @ept)
  • #46: Automerge list objects now also have a _conflicts property that records concurrent assignments to the same list index, just like map objects have had all along (@ept)

Changed

Fixed

  • #57: Tests now work on operating systems with case-sensitive filesystems (@mmmm1998)

0.6.0 — 2017-12-13

Added

  • #44: New APIs Automerge.getChanges and Automerge.applyChanges to provide more flexibility for network protocol layer (@ept)
  • #41: New Automerge.Text datatype, which is more efficient than a list for character-by-character editing of text (@ept)
  • #40: Lists are now backed by a new indexed skip list data structure, which is faster (@ept)

Changed

  • #38: To save memory, Automerge.getHistory now builds snapshots of past states only when requested, rather than remembering them by default (@ept)

0.5.0 — 2017-09-19

Added

  • #37: Added Automerge.diff to find the differences between to Automerge documents (@ept)
  • #37: Added support for incremental cache maintenance, bringing a 20x speedup for a 1,000-element list (@ept)
  • #36: Added Automerge.Connection and Automerge.DocSet classes to support peer-to-peer network protocols (@ept, @pvh)

Changed

  • Renamed Automerge.changeset to Automerge.change (@ept)

0.4.3 — 2017-08-16

Fixed

0.4.2 — 2017-06-29

Added

  • Set up Karma to run tests in web browsers (@ept)
  • Set up Webpack to produce bundled JavaScript file for web browsers (@ept)

0.4.1 — 2017-06-26

Changed

  • Automerge.getHistory API now uses the object cache, which should be faster (@ept)

0.4.0 — 2017-06-23

Changed

  • Automerge documents are now just regular JavaScript objects, and Proxy is used only within Automerge.changeset callbacks. Previously everything used Proxy. (@ept)
  • #30: Made _objectId an enumerable property, so that it is visible by default (@ept)
  • Support all standard JavaScript array methods and iterators on list proxy object (@ept)

0.3.0 — 2017-06-13

  • First public release.