Skip to content

Commit

Permalink
changelog and versions (#778)
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] authored Mar 31, 2022
1 parent 1e0d196 commit 47581e6
Show file tree
Hide file tree
Showing 13 changed files with 81 additions and 137 deletions.
136 changes: 40 additions & 96 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,124 +1,43 @@
# Changelog

## [v0.5.0-dev.6](https://github.com/iotaledger/identity.rs/tree/v0.5.0-dev.6) (2022-03-25)
## [v0.5.0](https://github.com/iotaledger/identity.rs/tree/v0.5.0) (2022-03-31)

[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.5.0-dev.5...v0.5.0-dev.6)
[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.4.0...v0.5.0)

Note that all features related to diff chain updates are now marked as deprecated. Diff chains are a useful optimisation when publishing many updates to a DID Document. However, their design may be incompatible with upcoming changes to the IOTA network and should be considered unstable. Another major change is the removal of the `MerkleKeyCollection` verification method type, which provided a compact representation for issuing and revoking Verifiable Credentials with multiple cryptographic keys. The `MerkleKeyCollection` suffered from disadvantages which limited scalability when managing more than a few thousand keys. While these disadvantages could be mitigated somewhat, the decision was made to replace it with one or more alternatives not affected by its fundamental limitations, upcoming in the next major release.
This release introduces multiple breaking changes to the structure of IOTA DID Documents and their Tangle messages, rendering any identity created with a prior version incompatible and unresolvable. A versioning system has been introduced so any new identities should hopefully be forward compatible with any future breaking changes to the message structure.

### Changed

- Refactor Storage Signature [\#738](https://github.com/iotaledger/identity.rs/pull/738)
- Add X25519 key and verification method support [\#735](https://github.com/iotaledger/identity.rs/pull/735)
- Combine resolve\_method functions [\#709](https://github.com/iotaledger/identity.rs/pull/709)

### Patch
The main feature of this release is the introduction of WebAssembly (Wasm) bindings for the high-level `Account` API for Javascript/Typescript in both Node.js and the browser. This includes preliminary Stronghold storage bindings but only for Node.js, as it was determined that compiling Stronghold to Wasm for the browser would not be sufficiently secure. Stronghold offers best-effort secure software storage for cryptographic keys, written in Rust. To use the Stronghold storage package install `@iota/identity-stronghold-nodejs` and follow the instructions of the package [README](https://github.com/iotaledger/identity.rs/tree/dev/bindings/stronghold-nodejs).

- Fix panic when parsing an `IotaDID` with more than 2 method id segments [\#758](https://github.com/iotaledger/identity.rs/pull/758)

### Deprecated
Note that all features related to diff chain updates are now marked as deprecated. Diff chains are a useful optimisation when publishing many updates to a DID Document. However, their design may be incompatible with upcoming changes to the IOTA network and should be considered unstable.

- Deprecate diff chain features [\#759](https://github.com/iotaledger/identity.rs/pull/759)

### Removed

- Remove `MerkleKeyCollection` [\#755](https://github.com/iotaledger/identity.rs/pull/755)
- Remove `Storage::set_password` [\#733](https://github.com/iotaledger/identity.rs/pull/733)

## [v0.5.0-dev.5](https://github.com/iotaledger/identity.rs/tree/v0.5.0-dev.5) (2022-03-21)

[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.5.0-dev.4...v0.5.0-dev.5)

This release introduces a breaking change to the proof field of DID Documents created by versions `v0.5.0-dev.1` through `v0.5.0-dev.4`, making all prior documents incompatible. The main feature of this release is the introduction of WebAssembly (Wasm) bindings for the high-level `Account` API for Javascript/Typescript in both Node.js and the browser. This includes Stronghold storage support but only for Node.js, as it was determined that compiling Stronghold to Wasm for private key storage in the browser would not be sufficiently secure.
Another major change is the removal of the `MerkleKeyCollection` verification method type, which provided a compact representation for issuing and revoking Verifiable Credentials with multiple cryptographic keys. The `MerkleKeyCollection` suffered from disadvantages which limited scalability when managing more than a few thousand keys. While these disadvantages could be mitigated somewhat, the decision was made to replace it with one or more alternatives not affected by its fundamental limitations, upcoming in the next major release.

### Changed

- Add Wasm `Proof`, rename `Signature` structs to `Proof` [\#776](https://github.com/iotaledger/identity.rs/pull/776)
- Replace `MethodSecret` with `MethodContent` enum [\#764](https://github.com/iotaledger/identity.rs/pull/764)
- Change document metadata `created`, `updated` to be optional [\#753](https://github.com/iotaledger/identity.rs/pull/753)
- Refactor Storage Signature [\#738](https://github.com/iotaledger/identity.rs/pull/738)
- Add X25519 key and verification method support [\#735](https://github.com/iotaledger/identity.rs/pull/735)
- Refactor `KeyLocation` [\#729](https://github.com/iotaledger/identity.rs/pull/729)
- Move DID Document proof outside metadata [\#728](https://github.com/iotaledger/identity.rs/pull/728)
- Combine resolve\_method functions [\#709](https://github.com/iotaledger/identity.rs/pull/709)
- Add separate `identity-iota-core`, `identity-account-storage` crates [\#693](https://github.com/iotaledger/identity.rs/pull/693)
- Change `IotaDocument::verify_document` from a static function to a method [\#675](https://github.com/iotaledger/identity.rs/pull/675)
- Make Wasm support dependent on `target_arch` rather than feature [\#666](https://github.com/iotaledger/identity.rs/pull/666)
- Refactor `CoreDocument`, `VerificationMethod`, `Service` to use generic DID [\#655](https://github.com/iotaledger/identity.rs/pull/655)
- Overhaul `CredentialValidator`, add `PresentationValidator` [\#599](https://github.com/iotaledger/identity.rs/pull/599)
- Replace `ClientMap` with new `Resolver` [\#594](https://github.com/iotaledger/identity.rs/pull/594)

### Added

- Generify `Account::client` over `Rc`, `Arc` [\#707](https://github.com/iotaledger/identity.rs/pull/707)
- Update Stronghold [\#691](https://github.com/iotaledger/identity.rs/pull/691)
- Add `Duration` for `Timestamp` arithmetic [\#684](https://github.com/iotaledger/identity.rs/pull/684)
- Add `Client` fallback to local PoW option [\#682](https://github.com/iotaledger/identity.rs/pull/682)
- Set `controller`, `alsoKnownAs` fields from Account [\#658](https://github.com/iotaledger/identity.rs/pull/658)

### Patch

- Update iota.rs to include timeout bugfix [\#712](https://github.com/iotaledger/identity.rs/pull/712)

### Removed

- Remove `publicKeyJwk` [\#732](https://github.com/iotaledger/identity.rs/pull/732)
- Remove `DIDLease` account feature [\#664](https://github.com/iotaledger/identity.rs/pull/664)

## [v0.5.0-dev.4](https://github.com/iotaledger/identity.rs/tree/v0.5.0-dev.4) (2022-02-14)

[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.5.0-dev.3...v0.5.0-dev.4)

### Changed

- Remove unused `Account` milestone option [\#645](https://github.com/iotaledger/identity.rs/pull/645)
- Change document controller type to `OneOrSet` [\#638](https://github.com/iotaledger/identity.rs/pull/638)
- Rename `MethodQuery` to `DIDUrlQuery`, move `OrderedSet`, `KeyComparable` [\#634](https://github.com/iotaledger/identity.rs/pull/634)
- Change `also_known_as` type to `OrderedSet` [\#632](https://github.com/iotaledger/identity.rs/pull/632)

### Patch

- Support verification methods with the same fragment [\#623](https://github.com/iotaledger/identity.rs/pull/623)

## [v0.5.0-dev.3](https://github.com/iotaledger/identity.rs/tree/v0.5.0-dev.3) (2022-01-25)

[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.5.0-dev.2...v0.5.0-dev.3)

This release introduces a breaking change for diff updates created by versions `v0.5.0-dev.1` and `v0.5.0-dev.2` (previous diff updates from `<=v0.4.0` are already incompatible due to breaking changes to the document and message structure in `v0.5.0-dev.1`). To migrate, please publish an integration update containing all diff changes to prevent unexpected changes to resolved DID Documents.

### Changed

- Move verification functionality from `DocumentVerifier` to `CoreDocument` [\#606](https://github.com/iotaledger/identity.rs/pull/606)
- Fix dependent diff updates being rejected [\#605](https://github.com/iotaledger/identity.rs/pull/605)
- Change `Account::state` visibility to `pub(crate)` [\#604](https://github.com/iotaledger/identity.rs/pull/604)
- Overhaul `CredentialValidator`, add `PresentationValidator` [\#599](https://github.com/iotaledger/identity.rs/pull/599)
- Remove JSON string escaping in diff messages [\#598](https://github.com/iotaledger/identity.rs/pull/598)

### Added

- Implement `FromIterator` for `OneOrMany` [\#602](https://github.com/iotaledger/identity.rs/pull/602)

### Patch

- Fix diff properties \(de\)serialization [\#611](https://github.com/iotaledger/identity.rs/pull/611)

## [v0.5.0-dev.2](https://github.com/iotaledger/identity.rs/tree/v0.5.0-dev.2) (2022-01-14)

[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.5.0-dev.1...v0.5.0-dev.2)

### Changed

- Replace `ClientMap` with new `Resolver` [\#594](https://github.com/iotaledger/identity.rs/pull/594)
- Replace `ClientMap` with `Client` in `Account` [\#582](https://github.com/iotaledger/identity.rs/pull/582)
- Add signature `created`, `expires`, `challenge`, `domain`, `purpose` [\#548](https://github.com/iotaledger/identity.rs/pull/548)

### Added

- Add account synchronization method [\#544](https://github.com/iotaledger/identity.rs/pull/544)

### Patch

- Enable local proof-of-work fallback [\#579](https://github.com/iotaledger/identity.rs/pull/579)

## [v0.5.0-dev.1](https://github.com/iotaledger/identity.rs/tree/v0.5.0-dev.1) (2021-12-15)

[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.4.0...v0.5.0-dev.1)

This release introduces multiple breaking changes to the structure of IOTA DID Documents and their Tangle messages, rendering any identity created with a prior version incompatible and unresolvable. A versioning system has been introduced so any new identities should hopefully be forward compatible with any future breaking changes to the message structure.

### Changed

- Refactor document metadata [\#540](https://github.com/iotaledger/identity.rs/pull/540)
- Replace `chrono` with `time` [\#529](https://github.com/iotaledger/identity.rs/pull/529)
- Enable access to the low-level API from the `Account` [\#522](https://github.com/iotaledger/identity.rs/pull/522)
Expand All @@ -136,17 +55,42 @@ This release introduces multiple breaking changes to the structure of IOTA DID D

### Added

- Expose Ed25519, X25519 length constants [\#772](https://github.com/iotaledger/identity.rs/pull/772)
- Generify `Account::client` over `Rc`, `Arc` [\#707](https://github.com/iotaledger/identity.rs/pull/707)
- Update Stronghold [\#691](https://github.com/iotaledger/identity.rs/pull/691)
- Add `Duration` for `Timestamp` arithmetic [\#684](https://github.com/iotaledger/identity.rs/pull/684)
- Add `Client` fallback to local PoW option [\#682](https://github.com/iotaledger/identity.rs/pull/682)
- Set `controller`, `alsoKnownAs` fields from Account [\#658](https://github.com/iotaledger/identity.rs/pull/658)
- Implement `FromIterator` for `OneOrMany` [\#602](https://github.com/iotaledger/identity.rs/pull/602)
- Add account synchronization method [\#544](https://github.com/iotaledger/identity.rs/pull/544)
- Filter out DiffMessages updating signing methods [\#519](https://github.com/iotaledger/identity.rs/pull/519)
- Add publish with retry method [\#455](https://github.com/iotaledger/identity.rs/pull/455)

### Patch

- Fix panic when parsing an `IotaDID` with more than 2 method id segments [\#758](https://github.com/iotaledger/identity.rs/pull/758)
- Update iota.rs to include timeout bugfix [\#712](https://github.com/iotaledger/identity.rs/pull/712)
- Support verification methods with the same fragment [\#623](https://github.com/iotaledger/identity.rs/pull/623)
- Fix diff properties \(de\)serialization [\#611](https://github.com/iotaledger/identity.rs/pull/611)
- Enable local proof-of-work fallback [\#579](https://github.com/iotaledger/identity.rs/pull/579)
- Add `identity-diff` derive feature gate [\#516](https://github.com/iotaledger/identity.rs/pull/516)
- Improve client error messages [\#512](https://github.com/iotaledger/identity.rs/pull/512)
- Make `create_signature` and `sign` async for `RemoteEd25519` [\#491](https://github.com/iotaledger/identity.rs/pull/491)
- Fix credential validation failing for documents with diff updates [\#490](https://github.com/iotaledger/identity.rs/pull/490)
- Upgrade to the Rust 2021 edition [\#449](https://github.com/iotaledger/identity.rs/pull/449)

### Deprecated

- Deprecate diff chain features [\#759](https://github.com/iotaledger/identity.rs/pull/759)

### Removed

- Remove `AccountStorage` [\#774](https://github.com/iotaledger/identity.rs/pull/774)
- Remove `MerkleKeyCollection` [\#755](https://github.com/iotaledger/identity.rs/pull/755)
- Remove `Storage::set_password` [\#733](https://github.com/iotaledger/identity.rs/pull/733)
- Remove `publicKeyJwk` [\#732](https://github.com/iotaledger/identity.rs/pull/732)
- Remove `DIDLease` account feature [\#664](https://github.com/iotaledger/identity.rs/pull/664)

## [v0.4.0](https://github.com/iotaledger/identity.rs/tree/v0.4.0) (2021-11-01)

[Full Changelog](https://github.com/iotaledger/identity.rs/compare/v0.3.0...v0.4.0)
Expand Down
6 changes: 3 additions & 3 deletions bindings/stronghold-nodejs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ publish = false
crate-type = ["cdylib"]

[dependencies]
identity-account-storage = { version = "=0.5.0-dev.6", path = "../../identity-account-storage", default-features = false, features = ["stronghold", "send-sync-storage"] }
identity-core = { version = "=0.5.0-dev.6", path = "../../identity-core", default-features = false }
identity-iota-core = { version = "=0.5.0-dev.6", path = "../../identity-iota-core", default-features = false }
identity-account-storage = { version = "=0.5.0", path = "../../identity-account-storage", default-features = false, features = ["stronghold", "send-sync-storage"] }
identity-core = { version = "=0.5.0", path = "../../identity-core", default-features = false }
identity-iota-core = { version = "=0.5.0", path = "../../identity-iota-core", default-features = false }
napi = { version = "2.0.3", default-features = false, features = ["napi4", "tokio_rt", "serde-json"] }
napi-derive = { version = "2.0.7" }
serde = { version = "1.0", default-features = false, features = ["derive"] }
Expand Down
2 changes: 1 addition & 1 deletion bindings/wasm/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ wasm-bindgen = { version = "0.2", features = ["serde-serialize"] }
wasm-bindgen-futures = { version = "0.4", default-features = false }

[dependencies.identity]
version = "=0.5.0-dev.6"
version = "=0.5.0"
path = "../../identity"
default-features = false
features = ["account"]
Expand Down
8 changes: 4 additions & 4 deletions identity-account-storage/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "identity-account-storage"
version = "0.5.0-dev.6"
version = "0.5.0"
authors = ["IOTA Stiftung"]
edition = "2021"
homepage = "https://www.iota.org"
Expand All @@ -15,9 +15,9 @@ actix = { version = "0.12.0", optional = true }
async-trait = { version = "0.1", default-features = false }
futures = { version = "0.3", optional = true }
hashbrown = { version = "0.11", features = ["serde"] }
identity-core = { version = "=0.5.0-dev.6", path = "../identity-core", default-features = false }
identity-did = { version = "=0.5.0-dev.6", path = "../identity-did", default-features = false }
identity-iota-core = { version = "=0.5.0-dev.6", path = "../identity-iota-core", default-features = false }
identity-core = { version = "=0.5.0", path = "../identity-core", default-features = false }
identity-did = { version = "=0.5.0", path = "../identity-did", default-features = false }
identity-iota-core = { version = "=0.5.0", path = "../identity-iota-core", default-features = false }
once_cell = { version = "1.7", default-features = false, features = ["std"], optional = true }
parking_lot = { version = "0.12" }
rand = { version = "0.8", default-features = false, features = ["std", "std_rng"], optional = true }
Expand Down
14 changes: 7 additions & 7 deletions identity-account/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "identity-account"
version = "0.5.0-dev.6"
version = "0.5.0"
authors = ["IOTA Stiftung"]
edition = "2021"
homepage = "https://www.iota.org"
Expand All @@ -11,12 +11,12 @@ repository = "https://github.com/iotaledger/identity.rs"
description = "Secure storage for Decentralized Identifiers and Verifiable Credentials."

[dependencies]
identity-account-storage = { version = "=0.5.0-dev.6", path = "../identity-account-storage", default-features = false }
identity-core = { version = "=0.5.0-dev.6", path = "../identity-core", default-features = false }
identity-credential = { version = "=0.5.0-dev.6", path = "../identity-credential", default-features = false }
identity-did = { version = "=0.5.0-dev.6", path = "../identity-did", default-features = false }
identity-iota = { version = "=0.5.0-dev.6", path = "../identity-iota", default-features = false }
identity-iota-core = { version = "=0.5.0-dev.6", path = "../identity-iota-core", default-features = false }
identity-account-storage = { version = "=0.5.0", path = "../identity-account-storage", default-features = false }
identity-core = { version = "=0.5.0", path = "../identity-core", default-features = false }
identity-credential = { version = "=0.5.0", path = "../identity-credential", default-features = false }
identity-did = { version = "=0.5.0", path = "../identity-did", default-features = false }
identity-iota = { version = "=0.5.0", path = "../identity-iota", default-features = false }
identity-iota-core = { version = "=0.5.0", path = "../identity-iota-core", default-features = false }
log = { version = "0.4", default-features = false }
paste = { version = "1.0" }
rand = { version = "0.8", default-features = false, features = ["std", "std_rng"] }
Expand Down
4 changes: 2 additions & 2 deletions identity-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "identity-core"
version = "0.5.0-dev.6"
version = "0.5.0"
authors = ["IOTA Stiftung"]
edition = "2021"
homepage = "https://www.iota.org"
Expand All @@ -12,7 +12,7 @@ description = "The core traits and types for the identity-rs library."

[dependencies]
bs58 = { version = "0.4", default-features = false, features = ["std"] }
identity-diff = { version = "=0.5.0-dev.6", path = "../identity-diff", default-features = false }
identity-diff = { version = "=0.5.0", path = "../identity-diff", default-features = false }
multibase = { version = "0.9", default-features = false, features = ["std"] }
serde = { version = "1.0", default-features = false, features = ["std", "derive"] }
serde_jcs = { version = "0.1", default-features = false }
Expand Down
6 changes: 3 additions & 3 deletions identity-credential/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "identity-credential"
version = "0.5.0-dev.6"
version = "0.5.0"
authors = ["IOTA Stiftung"]
edition = "2021"
homepage = "https://www.iota.org"
Expand All @@ -11,8 +11,8 @@ repository = "https://github.com/iotaledger/identity.rs"
description = "An implementation of the Verfiable Credentials standard."

[dependencies]
identity-core = { version = "=0.5.0-dev.6", path = "../identity-core" }
identity-did = { version = "=0.5.0-dev.6", path = "../identity-did" }
identity-core = { version = "=0.5.0", path = "../identity-core" }
identity-did = { version = "=0.5.0", path = "../identity-did" }
lazy_static = { version = "1.4", default-features = false }
serde = { version = "1.0", default-features = false, features = ["std", "derive"] }
strum = { version = "0.21", features = ["derive"] }
Expand Down
Loading

0 comments on commit 47581e6

Please sign in to comment.