diff --git a/CHANGELOG.md b/CHANGELOG.md
index 193d49a..57544bc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,19 @@
+## 0.0.4
+
+* Upgrade to automerge rust 0.5.1
+* `Transaction` no longer has a generic parameter and the `HashAndPatches`
+ version is gone. Instead call `Document.startTransaction(PatchLog)` to get
+ patches created during the transaction.
+* Added `Document.startTransactionAt` to start a transaction at a given set of
+ heads rather than the current heads of the document
+* All the `*ForPatches` methods have been removed and replaced with overloads
+ which take a `PatchLog` as an argument. To obtain patches first call these
+ various methods, passing in a `PatchLog` and then use `Document.makePatches`
+ to turn the patch log into a list of patches.
+* Added `Document.diff` to obtain a list of patches representing the difference
+ between two different sets of heads of the document.
+* Make `MapEntry` public
+
## 0.0.3
* Added SyncState.isInSync
diff --git a/README.md b/README.md
index 9e99aef..20e0161 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ Documentation is mostly just [the API docs](https://www.javadoc.io/doc/org.autom
org.automerge
automerge
- 0.0.3
+ 0.0.4
```
@@ -23,14 +23,14 @@ Documentation is mostly just [the API docs](https://www.javadoc.io/doc/org.autom
```kotlin
dependencies {
- implementation group: 'org.automerge', name: 'automerge', version: "0.0.3"
+ implementation group: 'org.automerge', name: 'automerge', version: "0.0.4"
}
```
### Leiningen
```
- :dependencies [[org.automerge/automerge "0.0.3"]]
+ :dependencies [[org.automerge/automerge "0.0.4"]]
```
## A quick example
@@ -49,7 +49,7 @@ public class App {
Document doc = new Document();
ObjectId text;
- try(Transaction tx = doc.startTransaction()) {
+ try(Transaction tx = doc.startTransaction()) {
// Create a text object under the "text" key of the root map
text = tx.set(ObjectId.ROOT, "text", ObjectType.TEXT);
tx.spliceText(text, 0, 0, "Hello world");
@@ -64,13 +64,13 @@ public class App {
System.out.println(doc2.text(text).get().toString()); // Prints "Hello world"
// Modify the doc in doc2
- try(Transaction tx = doc2.startTransaction()) {
+ try(Transaction tx = doc2.startTransaction()) {
tx.spliceText(text, 5, 0, " beautiful");
tx.commit();
}
// Modify the doc in doc1
- try(Transaction tx = doc.startTransaction()) {
+ try(Transaction tx = doc.startTransaction()) {
tx.spliceText(text, 5, 0, " there");
tx.commit();
}
diff --git a/android/build.gradle.kts b/android/build.gradle.kts
index 1c5be1a..23597cb 100644
--- a/android/build.gradle.kts
+++ b/android/build.gradle.kts
@@ -101,7 +101,7 @@ publishing {
register("automerge") {
groupId = "org.automerge"
artifactId = "androidnative"
- version = "0.0.3"
+ version = "0.0.4"
afterEvaluate {
from(components["release"])
}
diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts
index 9502102..5420673 100644
--- a/lib/build.gradle.kts
+++ b/lib/build.gradle.kts
@@ -72,7 +72,7 @@ spotless {
}
}
-project.version = "0.0.3"
+project.version = "0.0.4"
repositories {
mavenCentral()
diff --git a/rust/Cargo.toml b/rust/Cargo.toml
index 8ef0add..9eb8b16 100644
--- a/rust/Cargo.toml
+++ b/rust/Cargo.toml
@@ -2,7 +2,7 @@
[package]
name = "automerge_jni"
-version = "0.1.0"
+version = "0.2.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html