diff --git a/Cargo.toml b/Cargo.toml index f75fc519c..f2bcbeb91 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,10 +32,10 @@ opt-level = 'z' [workspace.dependencies] ic0 = { path = "ic0", version = "1.0.1" } -ic-cdk = { path = "ic-cdk", version = "0.19.0-beta.3" } +ic-cdk = { path = "ic-cdk", version = "0.19.0" } ic-cdk-bindgen = { path = "ic-cdk-bindgen", version = "0.2.0-alpha.2" } -ic-cdk-timers = { path = "ic-cdk-timers", version = "1.0.0-beta.1" } -ic-cdk-executor = { path = "ic-cdk-executor", version = "2.0.0-beta.1" } +ic-cdk-timers = { path = "ic-cdk-timers", version = "1.0.0" } +ic-cdk-executor = { path = "ic-cdk-executor", version = "2.0.0" } ic-management-canister-types = { path = "ic-management-canister-types", version = "0.4.1" } candid = "0.10.18" # sync with the doc comment in ic-cdk/README.md diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 7caef7c42..ebeca9d99 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -17,10 +17,10 @@ Only one package in the dependency graph may specify the same links value. This failed to select a version for `ic-cdk-executor` which could resolve this conflict ``` -You have two incompatible versions of `ic-cdk` in your dependency tree. There are two common reasons for this. +You have two incompatible versions of `ic-cdk` (or `ic-cdk-timers`) in your dependency tree. There are two common reasons for this. -First, a dependency may be using an older (or newer) version of the CDK. Many versions are compatible with each other, but versions 0.17 and earlier are incompatible with version 0.18, and 0.18 is incompatible with 0.19 or later. You will have to wait for those dependencies to update, or patch them yourself. +First, a dependency may be using an older (or newer) version of the CDK. Many versions of `ic-cdk` are compatible with each other, but versions 0.17 and earlier are incompatible with version 0.18, and 0.18 is incompatible with 0.19 or later. `ic-cdk-timers` does not have non-semver compatibility and any two versions are incompatible. In either case you will have to wait for those dependencies to update, or patch them yourself. -Second, a dependency may be using a nominally compatible version of the CDK, but you are using a GitHub prerelease of the CDK with `ic-cdk = { git =`. Git dependencies are automatically incompatible with everything, even if nothing changed. You will need to create a [patch table](https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html) that replaces `ic-cdk` with a Git dependency at the same commit (you may also need to replace `ic-cdk-executor`). +Second, a dependency may be using a nominally compatible version of the CDK, but you are using a GitHub prerelease of the CDK with `ic-cdk = { git =`. Git dependencies are automatically incompatible with everything, even if nothing changed. You will need to create a [patch table](https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html) that replaces all CDK dependencies with a Git dependency at the same commit. You can find the dependencies responsible with the command `cargo tree -i ic-cdk`. diff --git a/ic-cdk-executor/CHANGELOG.md b/ic-cdk-executor/CHANGELOG.md index 663ced2db..a52a8417e 100644 --- a/ic-cdk-executor/CHANGELOG.md +++ b/ic-cdk-executor/CHANGELOG.md @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased -## [2.0.0-beta.1] - 2025-10-09 +## [2.0.0] - 2025-10-16 ### Changed diff --git a/ic-cdk-executor/Cargo.toml b/ic-cdk-executor/Cargo.toml index 23b77d31e..f5421f031 100644 --- a/ic-cdk-executor/Cargo.toml +++ b/ic-cdk-executor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ic-cdk-executor" -version = "2.0.0-beta.1" +version = "2.0.0" authors.workspace = true edition.workspace = true repository.workspace = true diff --git a/ic-cdk-macros/Cargo.toml b/ic-cdk-macros/Cargo.toml index 72e439124..e689d521c 100644 --- a/ic-cdk-macros/Cargo.toml +++ b/ic-cdk-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ic-cdk-macros" -version = "0.19.0-beta.3" # sync with ic-cdk +version = "0.19.0" # sync with ic-cdk authors.workspace = true edition.workspace = true license.workspace = true diff --git a/ic-cdk-timers/CHANGELOG.md b/ic-cdk-timers/CHANGELOG.md index fcc890a77..de71564f3 100644 --- a/ic-cdk-timers/CHANGELOG.md +++ b/ic-cdk-timers/CHANGELOG.md @@ -6,7 +6,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [unreleased] -## [1.0.0-beta.1] - 2025-10-09 +## [1.0.0] - 2025-10-16 - `ic-cdk-timers` no longer has a dependency on `ic-cdk` and no longer needs to be upgraded when `ic-cdk` is upgraded. - Breaking: Timer bodies have been changed from `FnOnce`/`FnMut` to `Future`/`AsyncFnMut`, so `spawn` is no longer required to enter an async context from a timer. For `set_timer`, `|| {}` should be changed to `async {}`, and for `set_timer_interval`, `|| {}` should be changed to `async || {}`. diff --git a/ic-cdk-timers/Cargo.toml b/ic-cdk-timers/Cargo.toml index 7566155fc..78b5704c9 100644 --- a/ic-cdk-timers/Cargo.toml +++ b/ic-cdk-timers/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ic-cdk-timers" -version = "1.0.0-beta.1" +version = "1.0.0" authors.workspace = true edition.workspace = true license.workspace = true @@ -13,6 +13,9 @@ readme = "README.md" categories = ["api-bindings", "data-structures", "no-std", "development-tools::ffi"] keywords = ["internet-computer", "dfinity", "canister", "cdk"] include = ["src", "Cargo.toml", "LICENSE", "README.md"] +# DO NOT change this field, not even to update the link, unless you are updating every existing version of the package. +# Update the link by updating the links-pin tag. +links = "ic-cdk-timers (canister_global_timer), see https://github.com/dfinity/cdk-rs/blob/links-pin/TROUBLESHOOTING.md" [dependencies] ic0.workspace = true diff --git a/ic-cdk-timers/build.rs b/ic-cdk-timers/build.rs new file mode 100644 index 000000000..884ac9476 --- /dev/null +++ b/ic-cdk-timers/build.rs @@ -0,0 +1,3 @@ +fn main() { + // dummy build script, required by `package.links` +} diff --git a/ic-cdk/CHANGELOG.md b/ic-cdk/CHANGELOG.md index 2b00425e3..62e5ceaa7 100644 --- a/ic-cdk/CHANGELOG.md +++ b/ic-cdk/CHANGELOG.md @@ -6,7 +6,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [unreleased] -## [0.19.0-beta.3] - 2025-10-09 +## [0.19.0] - 2025-10-16 ### Added diff --git a/ic-cdk/Cargo.toml b/ic-cdk/Cargo.toml index 2a1f60966..aebac132a 100644 --- a/ic-cdk/Cargo.toml +++ b/ic-cdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ic-cdk" -version = "0.19.0-beta.3" # sync with ic-cdk-macros and the doc comment in README.md +version = "0.19.0" # sync with ic-cdk-macros and the doc comment in README.md authors.workspace = true edition.workspace = true license.workspace = true @@ -23,7 +23,7 @@ ic-cdk-executor.workspace = true # Dependents won't accidentaly upgrading ic-cdk-macros only but not ic-cdk. # ic-cdk-macros is a hidden dependency, re-exported by ic-cdk. # It should not be included by users direcly. -ic-cdk-macros = { path = "../ic-cdk-macros", version = "=0.19.0-beta.3" } +ic-cdk-macros = { path = "../ic-cdk-macros", version = "=0.19.0" } ic-error-types = "0.2.0" ic-management-canister-types.workspace = true pin-project-lite = "0.2.16"