From 4c9edde1cc84ad18b06b62f07e1bc2cec76623d2 Mon Sep 17 00:00:00 2001 From: David Derler Date: Mon, 22 Dec 2025 13:41:22 +0100 Subject: [PATCH 01/26] . --- .github/workflows/publish-bin.yml | 42 +++++++++++++++++++++++++ .github/workflows/publish-macros-rs.yml | 38 ++++++++++++++++++++++ .github/workflows/publish-rs.yml | 42 +++++++++++++++++++++++++ Cargo.lock | 6 ++-- canbench-bin/Cargo.toml | 7 +++-- canbench-rs-macros/Cargo.toml | 2 +- canbench-rs/Cargo.toml | 7 +++-- development-guide.md | 13 +------- 8 files changed, 135 insertions(+), 22 deletions(-) create mode 100644 .github/workflows/publish-bin.yml create mode 100644 .github/workflows/publish-macros-rs.yml create mode 100644 .github/workflows/publish-rs.yml diff --git a/.github/workflows/publish-bin.yml b/.github/workflows/publish-bin.yml new file mode 100644 index 00000000..f11f3a44 --- /dev/null +++ b/.github/workflows/publish-bin.yml @@ -0,0 +1,42 @@ +name: Publish canbench to crates.io + +on: + workflow_run: + workflows: [Publish canbench-rs to crates.io] + types: + - completed + +jobs: + publish-canbench-bin: + runs-on: ubuntu-latest + + if: ${{ github.event.workflow_run.conclusion == 'success' }} + + permissions: + id-token: write # Required for OIDC token exchange + + steps: + - uses: actions/checkout@v5 + + - uses: rust-lang/crates-io-auth-action@v1 + id: auth + + - name: Set Cargo.toml version + shell: bash + env: + RELEASE_TAG: ${{ github.ref }} + run: | + sed -i -e 's/\(^canbench-rs.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-bin/Cargo.toml + sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml + + - run: cargo publish -p canbench + env: + CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} + + - name: Post to a Slack channel + uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 + with: + channel-id: eng-dsm-alerts + slack-message: "New `canbench` crate (version `${{ github.ref_name }}`) has been published to crates.io" + env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_API_TOKEN }} diff --git a/.github/workflows/publish-macros-rs.yml b/.github/workflows/publish-macros-rs.yml new file mode 100644 index 00000000..f82fffc3 --- /dev/null +++ b/.github/workflows/publish-macros-rs.yml @@ -0,0 +1,38 @@ +name: Publish canbench-rs-macros to crates.io + +on: + push: + tags: + - "v*" + +jobs: + publish-canbench-bin: + runs-on: ubuntu-latest + + permissions: + id-token: write # Required for OIDC token exchange + + steps: + - uses: actions/checkout@v5 + + - uses: rust-lang/crates-io-auth-action@v1 + id: auth + + - name: Set Cargo.toml version + shell: bash + env: + RELEASE_TAG: ${{ github.ref }} + run: | + sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml + + - run: cargo publish -p canbench-rs-macros + env: + CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} + + - name: Send Slack message + uses: slackapi/slack-github-action@91efab103c0de0a537f72a35f6b8cda0ee76bf0a + with: + webhook: ${{ secrets.SLACK_WEBHOOK_URL }} + webhook-type: incoming-webhook + payload: | + text: "New `canbench-rs-macros` crate (version `${{ github.ref_name }}`) has been published to crates.io" diff --git a/.github/workflows/publish-rs.yml b/.github/workflows/publish-rs.yml new file mode 100644 index 00000000..30fa1878 --- /dev/null +++ b/.github/workflows/publish-rs.yml @@ -0,0 +1,42 @@ +name: Publish canbench-rs to crates.io + +on: + workflow_run: + workflows: [Publish canbench-rs-macros to crates.io] + types: + - completed + +jobs: + publish-canbench-rs: + runs-on: ubuntu-latest + + if: ${{ github.event.workflow_run.conclusion == 'success' }} + + permissions: + id-token: write # Required for OIDC token exchange + + steps: + - uses: actions/checkout@v5 + + - uses: rust-lang/crates-io-auth-action@v1 + id: auth + + - name: Set Cargo.toml versions + shell: bash + env: + RELEASE_TAG: ${{ github.ref }} + run: | + sed -i -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-rs/Cargo.toml + sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml + + - run: cargo publish -p canbench-rs + env: + CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} + + - name: Send Slack message + uses: slackapi/slack-github-action@91efab103c0de0a537f72a35f6b8cda0ee76bf0a + with: + webhook: ${{ secrets.SLACK_WEBHOOK_URL }} + webhook-type: incoming-webhook + payload: | + text: "New `canbench-rs` crate (version `${{ github.ref_name }}`) has been published to crates.io" diff --git a/Cargo.lock b/Cargo.lock index 07298d27..24da8c24 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -217,7 +217,7 @@ checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "canbench" -version = "0.4.0" +version = "0.0.0-git" dependencies = [ "canbench-rs", "candid", @@ -241,7 +241,7 @@ dependencies = [ [[package]] name = "canbench-rs" -version = "0.4.0" +version = "0.0.0-git" dependencies = [ "canbench-rs-macros", "candid", @@ -251,7 +251,7 @@ dependencies = [ [[package]] name = "canbench-rs-macros" -version = "0.4.0" +version = "0.0.0-git" dependencies = [ "proc-macro2", "quote", diff --git a/canbench-bin/Cargo.toml b/canbench-bin/Cargo.toml index bbcd0cef..000d539a 100644 --- a/canbench-bin/Cargo.toml +++ b/canbench-bin/Cargo.toml @@ -6,15 +6,16 @@ license = "Apache-2.0" name = "canbench" readme = "../README.md" repository = "https://github.com/dfinity/canbench" -# NOTE: Update `canbench-rs` version below when this changes. -version = "0.4.0" +# Version is set by a Github workflow from the git tag +version = "0.0.0-git" [[bin]] name = "canbench" path = "src/main.rs" [dependencies] -canbench-rs = { path = "../canbench-rs", version = "0.4.0" } +# canbench-rs version tag is set by a Github workflow from the git tag +canbench-rs = { path = "../canbench-rs" } candid.workspace = true clap.workspace = true colored.workspace = true diff --git a/canbench-rs-macros/Cargo.toml b/canbench-rs-macros/Cargo.toml index 7a26d7cb..8ceaab7d 100644 --- a/canbench-rs-macros/Cargo.toml +++ b/canbench-rs-macros/Cargo.toml @@ -4,7 +4,7 @@ edition = "2021" license = "Apache-2.0" name = "canbench-rs-macros" repository = "https://github.com/dfinity/canbench" -version = "0.4.0" +version = "0.0.0-git" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/canbench-rs/Cargo.toml b/canbench-rs/Cargo.toml index 635b7427..91af8ea6 100644 --- a/canbench-rs/Cargo.toml +++ b/canbench-rs/Cargo.toml @@ -6,8 +6,8 @@ license = "Apache-2.0" name = "canbench-rs" readme = "../README.md" repository = "https://github.com/dfinity/canbench" -# NOTE: Update `canbench-rs-macros` version below when this changes. -version = "0.4.0" +# Version is set by a Github workflow from the git tag +version = "0.0.0-git" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -15,7 +15,8 @@ version = "0.4.0" path = "src/lib.rs" [dependencies] -canbench-rs-macros = { path = "../canbench-rs-macros", version = "0.4.0" } +# canbench-rs-macros version tag is set by a Github workflow from the git tag +canbench-rs-macros = { path = "../canbench-rs-macros" } candid.workspace = true ic-cdk.workspace = true serde.workspace = true diff --git a/development-guide.md b/development-guide.md index 252b08a5..3a1a5781 100644 --- a/development-guide.md +++ b/development-guide.md @@ -16,15 +16,4 @@ Here's an example PR bumping the versions: https://github.com/dfinity/canbench/p - Set the title to `vX.X.X`. - Choose the previous tag as the last release. - Add release notes. GitHub can generate them by clicking **Generate release notes**, modify as needed. -3. Click **Publish release** when ready. - -## Steps to Publish the Packages to crates.io - -1. Generate an API token to use with crates.io: - Log in to crates.io with your GitHub account, go to **Account Settings**, and generate a new token under **API Tokens**. -2. Run `cargo login` in the terminal and enter your API key when prompted. -3. Check out the repo at the tag created for the release, e.g. `git checkout vX.X.X`. -4. Publish the crates in the following order: - - `cargo publish -p canbench-rs-macros` - - `cargo publish -p canbench-rs` - - `cargo publish -p canbench` +3. Click **Publish release** when ready, which will trigger the workflows to publish to crates.io. \ No newline at end of file From 6928f8ef758fe47ad89a1459e840828ceec665b2 Mon Sep 17 00:00:00 2001 From: David Derler Date: Mon, 22 Dec 2025 14:13:37 +0100 Subject: [PATCH 02/26] . --- .github/workflows/publish-macros-rs.yml | 12 ++++++------ .github/workflows/publish-rs.yml | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish-macros-rs.yml b/.github/workflows/publish-macros-rs.yml index f82fffc3..ebdd3dec 100644 --- a/.github/workflows/publish-macros-rs.yml +++ b/.github/workflows/publish-macros-rs.yml @@ -29,10 +29,10 @@ jobs: env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - name: Send Slack message - uses: slackapi/slack-github-action@91efab103c0de0a537f72a35f6b8cda0ee76bf0a + - name: Post to a Slack channel + uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 with: - webhook: ${{ secrets.SLACK_WEBHOOK_URL }} - webhook-type: incoming-webhook - payload: | - text: "New `canbench-rs-macros` crate (version `${{ github.ref_name }}`) has been published to crates.io" + channel-id: eng-dsm-alerts + slack-message: "New `canbench-rs-macros` crate (version `${{ github.ref_name }}`) has been published to crates.io" + env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_API_TOKEN }} diff --git a/.github/workflows/publish-rs.yml b/.github/workflows/publish-rs.yml index 30fa1878..39fd6e7f 100644 --- a/.github/workflows/publish-rs.yml +++ b/.github/workflows/publish-rs.yml @@ -33,10 +33,10 @@ jobs: env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - name: Send Slack message - uses: slackapi/slack-github-action@91efab103c0de0a537f72a35f6b8cda0ee76bf0a + - name: Post to a Slack channel + uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 with: - webhook: ${{ secrets.SLACK_WEBHOOK_URL }} - webhook-type: incoming-webhook - payload: | - text: "New `canbench-rs` crate (version `${{ github.ref_name }}`) has been published to crates.io" + channel-id: eng-dsm-alerts + slack-message: "New `canbench-rs` crate (version `${{ github.ref_name }}`) has been published to crates.io" + env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_API_TOKEN }} From d1b15fe397053dc27ba79adce0d27aa439a7d705 Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 09:07:49 +0100 Subject: [PATCH 03/26] . --- .github/workflows/publish-macros-rs.yml | 38 ----------------- .github/workflows/publish-rs.yml | 42 ------------------- .../{publish-bin.yml => publish.yml} | 15 ++++++- 3 files changed, 13 insertions(+), 82 deletions(-) delete mode 100644 .github/workflows/publish-macros-rs.yml delete mode 100644 .github/workflows/publish-rs.yml rename .github/workflows/{publish-bin.yml => publish.yml} (61%) diff --git a/.github/workflows/publish-macros-rs.yml b/.github/workflows/publish-macros-rs.yml deleted file mode 100644 index ebdd3dec..00000000 --- a/.github/workflows/publish-macros-rs.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Publish canbench-rs-macros to crates.io - -on: - push: - tags: - - "v*" - -jobs: - publish-canbench-bin: - runs-on: ubuntu-latest - - permissions: - id-token: write # Required for OIDC token exchange - - steps: - - uses: actions/checkout@v5 - - - uses: rust-lang/crates-io-auth-action@v1 - id: auth - - - name: Set Cargo.toml version - shell: bash - env: - RELEASE_TAG: ${{ github.ref }} - run: | - sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml - - - run: cargo publish -p canbench-rs-macros - env: - CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - - name: Post to a Slack channel - uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 - with: - channel-id: eng-dsm-alerts - slack-message: "New `canbench-rs-macros` crate (version `${{ github.ref_name }}`) has been published to crates.io" - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_API_TOKEN }} diff --git a/.github/workflows/publish-rs.yml b/.github/workflows/publish-rs.yml deleted file mode 100644 index 39fd6e7f..00000000 --- a/.github/workflows/publish-rs.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Publish canbench-rs to crates.io - -on: - workflow_run: - workflows: [Publish canbench-rs-macros to crates.io] - types: - - completed - -jobs: - publish-canbench-rs: - runs-on: ubuntu-latest - - if: ${{ github.event.workflow_run.conclusion == 'success' }} - - permissions: - id-token: write # Required for OIDC token exchange - - steps: - - uses: actions/checkout@v5 - - - uses: rust-lang/crates-io-auth-action@v1 - id: auth - - - name: Set Cargo.toml versions - shell: bash - env: - RELEASE_TAG: ${{ github.ref }} - run: | - sed -i -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-rs/Cargo.toml - sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml - - - run: cargo publish -p canbench-rs - env: - CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - - name: Post to a Slack channel - uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 - with: - channel-id: eng-dsm-alerts - slack-message: "New `canbench-rs` crate (version `${{ github.ref_name }}`) has been published to crates.io" - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_API_TOKEN }} diff --git a/.github/workflows/publish-bin.yml b/.github/workflows/publish.yml similarity index 61% rename from .github/workflows/publish-bin.yml rename to .github/workflows/publish.yml index f11f3a44..cf88a587 100644 --- a/.github/workflows/publish-bin.yml +++ b/.github/workflows/publish.yml @@ -1,4 +1,4 @@ -name: Publish canbench to crates.io +name: Publish canbench crates to crates.io on: workflow_run: @@ -26,9 +26,20 @@ jobs: env: RELEASE_TAG: ${{ github.ref }} run: | + sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml + sed -i -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-rs/Cargo.toml + sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml sed -i -e 's/\(^canbench-rs.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-bin/Cargo.toml sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml + - run: cargo publish -p canbench-rs-macros + env: + CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} + + - run: cargo publish -p canbench-rs + env: + CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} + - run: cargo publish -p canbench env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} @@ -37,6 +48,6 @@ jobs: uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 with: channel-id: eng-dsm-alerts - slack-message: "New `canbench` crate (version `${{ github.ref_name }}`) has been published to crates.io" + slack-message: "New `canbench` crates (version `${{ github.ref_name }}`) has been published to crates.io" env: SLACK_BOT_TOKEN: ${{ secrets.SLACK_API_TOKEN }} From 715f64bbb12a3f28cb9169c82672ede261f4225e Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 09:09:19 +0100 Subject: [PATCH 04/26] . --- .github/workflows/publish.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index cf88a587..9313ae73 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,10 +1,9 @@ name: Publish canbench crates to crates.io on: - workflow_run: - workflows: [Publish canbench-rs to crates.io] - types: - - completed + push: + tags: + - "v*" jobs: publish-canbench-bin: From 7c9223fa88a877a5d58a769381192d1e87325ddf Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 09:11:25 +0100 Subject: [PATCH 05/26] . --- .github/workflows/publish.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9313ae73..77049850 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -25,11 +25,11 @@ jobs: env: RELEASE_TAG: ${{ github.ref }} run: | - sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml - sed -i -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-rs/Cargo.toml - sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml - sed -i -e 's/\(^canbench-rs.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-bin/Cargo.toml - sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml + sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml + sed -i '' -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-rs/Cargo.toml + sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml + sed -i '' -e 's/\(^canbench-rs.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-bin/Cargo.toml + sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml - run: cargo publish -p canbench-rs-macros env: From b161e7b8356a592e0762cc9741ee9cca9b7d3e86 Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 09:58:05 +0100 Subject: [PATCH 06/26] . --- tests/measurements_output/canbench_results.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/measurements_output/canbench_results.yml b/tests/measurements_output/canbench_results.yml index 89c385c1..622fbcc3 100644 --- a/tests/measurements_output/canbench_results.yml +++ b/tests/measurements_output/canbench_results.yml @@ -95,4 +95,4 @@ benches: calls: 20 heap_increase: 0 instructions: 20000000 -version: 0.1.15 +version: 0.0.0-git From 5637d02285ed8cde313d8801896eb7ac45b03c53 Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 10:06:25 +0100 Subject: [PATCH 07/26] . --- canbench-bin/tests/tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/canbench-bin/tests/tests.rs b/canbench-bin/tests/tests.rs index 0b062733..7484e873 100644 --- a/canbench-bin/tests/tests.rs +++ b/canbench-bin/tests/tests.rs @@ -285,7 +285,7 @@ fn newer_version() { .run(|output| { assert_err!( output, - "canbench is at version 0.4.0 while the results were generated with version 99.0.0. Please upgrade canbench. + "canbench is at version 0.0.0-git while the results were generated with version 99.0.0. Please upgrade canbench. " ); }); From 72e35f29105fb3c1934102a96eeeae7d6e28f7bd Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 10:08:03 +0100 Subject: [PATCH 08/26] . --- tests/init_arg/canbench_results.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/init_arg/canbench_results.yml b/tests/init_arg/canbench_results.yml index b63361b1..0b90cbf9 100644 --- a/tests/init_arg/canbench_results.yml +++ b/tests/init_arg/canbench_results.yml @@ -6,4 +6,4 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} -version: 0.1.10 +version: 0.0.0-git From a5168493f9f8ee7783585017ad08c94986918ef2 Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 10:21:41 +0100 Subject: [PATCH 09/26] Allow dirty working directory because of sed changes --- .github/workflows/publish.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 77049850..750ad2f4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -31,15 +31,15 @@ jobs: sed -i '' -e 's/\(^canbench-rs.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-bin/Cargo.toml sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml - - run: cargo publish -p canbench-rs-macros + - run: cargo publish -p canbench-rs-macros --allow-dirty env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - run: cargo publish -p canbench-rs + - run: cargo publish -p canbench-rs --allow-dirty env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - run: cargo publish -p canbench + - run: cargo publish -p canbench --allow-dirty env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} From 131d2529d76586df5307f293926fb2874828f36a Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 10:28:44 +0100 Subject: [PATCH 10/26] . --- .github/workflows/publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 750ad2f4..e138cb3b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -26,9 +26,9 @@ jobs: RELEASE_TAG: ${{ github.ref }} run: | sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml - sed -i '' -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-rs/Cargo.toml + sed -i '' -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/' canbench-rs/Cargo.toml sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml - sed -i '' -e 's/\(^canbench-rs.*"\).* }/\1, version="'"${RELEASE_TAG##*\/v}"'" }/' canbench-bin/Cargo.toml + sed -i '' -e 's/\(^canbench-rs.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/' canbench-bin/Cargo.toml sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml - run: cargo publish -p canbench-rs-macros --allow-dirty From f8876cde5d0fb8275486bdabee18db1c75d140b7 Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 10:36:10 +0100 Subject: [PATCH 11/26] . --- examples/btreemap_vs_hashmap/canbench_results.yml | 2 +- examples/fibonacci/canbench_results.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/btreemap_vs_hashmap/canbench_results.yml b/examples/btreemap_vs_hashmap/canbench_results.yml index 715767da..b7ffa731 100644 --- a/examples/btreemap_vs_hashmap/canbench_results.yml +++ b/examples/btreemap_vs_hashmap/canbench_results.yml @@ -30,4 +30,4 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} -version: 0.2.1 +version: 0.0.0-git diff --git a/examples/fibonacci/canbench_results.yml b/examples/fibonacci/canbench_results.yml index 5761f8a0..114fbc30 100644 --- a/examples/fibonacci/canbench_results.yml +++ b/examples/fibonacci/canbench_results.yml @@ -34,4 +34,4 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} -version: 0.2.1 +version: 0.0.0-git From 3948af1a8cef2379be7c14395328bc6b25cda28a Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 11:12:33 +0100 Subject: [PATCH 12/26] Temporarily disable benchmark --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84141364..0b2dcda8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,7 +143,8 @@ jobs: needs: - build - shell-checks - - benchmark + # TODO: re-enable this after merging + # - benchmark runs-on: ubuntu-latest steps: - name: check build result From b07c99f764ade11158e3a8e9a812c6bf87f068fb Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 11:37:20 +0100 Subject: [PATCH 13/26] . --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b2dcda8..84141364 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,8 +143,7 @@ jobs: needs: - build - shell-checks - # TODO: re-enable this after merging - # - benchmark + - benchmark runs-on: ubuntu-latest steps: - name: check build result From 052aec57db9591b260584b4ef52210a6c438a159 Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 11:42:19 +0100 Subject: [PATCH 14/26] . --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84141364..735e9064 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,7 +143,7 @@ jobs: needs: - build - shell-checks - - benchmark + # TODO re-enable benchmark after merging runs-on: ubuntu-latest steps: - name: check build result From fc57c7bfd151f493b48a7b5076e8a02a12dd646c Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 11:52:15 +0100 Subject: [PATCH 15/26] . --- .github/workflows/ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 735e9064..582312bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -143,7 +143,8 @@ jobs: needs: - build - shell-checks - # TODO re-enable benchmark after merging + # TODO re-enable after merging + #- benchmark runs-on: ubuntu-latest steps: - name: check build result @@ -154,6 +155,6 @@ jobs: if: ${{ needs.shell-checks.result != 'success' }} run: exit 1 - - name: check benchmark result - if: ${{ needs.benchmark.result != 'success' }} - run: exit 1 + #- name: check benchmark result + # if: ${{ needs.benchmark.result != 'success' }} + # run: exit 1 From cf3273d6b4ae40acf2356f9a846325bb6aa96890 Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 13:52:08 +0100 Subject: [PATCH 16/26] . --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 582312bb..1243acab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,7 +72,8 @@ jobs: - name: Checkout baseline branch uses: actions/checkout@v4 with: - ref: main + # TODO switch back to main once this is merged + #ref: main path: _canbench_baseline_branch - uses: actions/cache@v3 @@ -143,8 +144,7 @@ jobs: needs: - build - shell-checks - # TODO re-enable after merging - #- benchmark + - benchmark runs-on: ubuntu-latest steps: - name: check build result @@ -155,6 +155,6 @@ jobs: if: ${{ needs.shell-checks.result != 'success' }} run: exit 1 - #- name: check benchmark result - # if: ${{ needs.benchmark.result != 'success' }} - # run: exit 1 + - name: check benchmark result + if: ${{ needs.benchmark.result != 'success' }} + run: exit 1 From c076b4ada66d82bc8be1968a724eea6d1f0ac272 Mon Sep 17 00:00:00 2001 From: David Derler <55094821+derlerd-dfinity@users.noreply.github.com> Date: Tue, 23 Dec 2025 14:45:40 +0100 Subject: [PATCH 17/26] Update .github/workflows/publish.yml --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e138cb3b..ae5ae935 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -6,7 +6,7 @@ on: - "v*" jobs: - publish-canbench-bin: + publish-canbench: runs-on: ubuntu-latest if: ${{ github.event.workflow_run.conclusion == 'success' }} From baf9e952394ca5b74aa3491c7dcef8341ea667a9 Mon Sep 17 00:00:00 2001 From: David Derler <55094821+derlerd-dfinity@users.noreply.github.com> Date: Tue, 23 Dec 2025 14:46:12 +0100 Subject: [PATCH 18/26] Update .github/workflows/publish.yml --- .github/workflows/publish.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ae5ae935..ab4259d9 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -9,8 +9,6 @@ jobs: publish-canbench: runs-on: ubuntu-latest - if: ${{ github.event.workflow_run.conclusion == 'success' }} - permissions: id-token: write # Required for OIDC token exchange From 0277d82a25b4affd337bfbff55764fb12b8a6934 Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 15:19:59 +0100 Subject: [PATCH 19/26] . --- .github/workflows/publish.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ab4259d9..54051e77 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -23,11 +23,11 @@ jobs: env: RELEASE_TAG: ${{ github.ref }} run: | - sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml - sed -i '' -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/' canbench-rs/Cargo.toml - sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml - sed -i '' -e 's/\(^canbench-rs.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/' canbench-bin/Cargo.toml - sed -i '' -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml + sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml + sed -i -e "s/\(^canbench-rs-macros.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/" canbench-rs/Cargo.toml + sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml + sed -i -e "s/\(^canbench-rs.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/" canbench-bin/Cargo.toml + sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml - run: cargo publish -p canbench-rs-macros --allow-dirty env: From 13162ce51ee23b23d6e9df83e7954543c79e0f0a Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 15:26:42 +0100 Subject: [PATCH 20/26] . --- .github/workflows/publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 54051e77..1b6610c3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -24,9 +24,9 @@ jobs: RELEASE_TAG: ${{ github.ref }} run: | sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml - sed -i -e "s/\(^canbench-rs-macros.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/" canbench-rs/Cargo.toml + sed -i -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/' canbench-rs/Cargo.toml sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml - sed -i -e "s/\(^canbench-rs.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/" canbench-bin/Cargo.toml + sed -i -e 's/\(^canbench-rs.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/' canbench-bin/Cargo.toml sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml - run: cargo publish -p canbench-rs-macros --allow-dirty From 823b89850fc8cfdfa4d0f7d744c413c8e0bb7a3a Mon Sep 17 00:00:00 2001 From: David Derler Date: Tue, 23 Dec 2025 15:30:56 +0100 Subject: [PATCH 21/26] . --- .github/workflows/publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1b6610c3..966c9675 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -24,9 +24,9 @@ jobs: RELEASE_TAG: ${{ github.ref }} run: | sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml - sed -i -e 's/\(^canbench-rs-macros.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/' canbench-rs/Cargo.toml + sed -i -e "s/\(^canbench-rs-macros.*\"\).* }/\1, version=\"${RELEASE_TAG##*\/v}\" }/" canbench-rs/Cargo.toml sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml - sed -i -e 's/\(^canbench-rs.*"\).* }/\1, version="'${RELEASE_TAG##*\/v}'" }/' canbench-bin/Cargo.toml + sed -i -e "s/\(^canbench-rs.*\"\).* }/\1, version=\"${RELEASE_TAG##*\/v}\" }/" canbench-bin/Cargo.toml sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml - run: cargo publish -p canbench-rs-macros --allow-dirty From 1f6c085a96d07d847612f10f2f9d3a8893ccc9d9 Mon Sep 17 00:00:00 2001 From: David Derler Date: Mon, 12 Jan 2026 13:09:50 +0100 Subject: [PATCH 22/26] Switch to manual publishing --- .github/workflows/ci.yml | 3 +-- .github/workflows/publish.yml | 21 ++++--------------- Cargo.lock | 6 +++--- canbench-bin/Cargo.toml | 7 +++---- canbench-bin/tests/tests.rs | 2 +- canbench-rs-macros/Cargo.toml | 2 +- canbench-rs/Cargo.toml | 7 +++---- development-guide.md | 13 +++++++++++- .../btreemap_vs_hashmap/canbench_results.yml | 2 +- examples/fibonacci/canbench_results.yml | 2 +- tests/init_arg/canbench_results.yml | 2 +- .../measurements_output/canbench_results.yml | 2 +- 12 files changed, 32 insertions(+), 37 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1243acab..84141364 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,8 +72,7 @@ jobs: - name: Checkout baseline branch uses: actions/checkout@v4 with: - # TODO switch back to main once this is merged - #ref: main + ref: main path: _canbench_baseline_branch - uses: actions/cache@v3 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 966c9675..e260a8d3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,9 +1,7 @@ name: Publish canbench crates to crates.io on: - push: - tags: - - "v*" + workflow_dispatch: jobs: publish-canbench: @@ -18,26 +16,15 @@ jobs: - uses: rust-lang/crates-io-auth-action@v1 id: auth - - name: Set Cargo.toml version - shell: bash - env: - RELEASE_TAG: ${{ github.ref }} - run: | - sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs-macros/Cargo.toml - sed -i -e "s/\(^canbench-rs-macros.*\"\).* }/\1, version=\"${RELEASE_TAG##*\/v}\" }/" canbench-rs/Cargo.toml - sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-rs/Cargo.toml - sed -i -e "s/\(^canbench-rs.*\"\).* }/\1, version=\"${RELEASE_TAG##*\/v}\" }/" canbench-bin/Cargo.toml - sed -i -e "s/0\\.0\\.0-git/${RELEASE_TAG##*\/v}/" canbench-bin/Cargo.toml - - - run: cargo publish -p canbench-rs-macros --allow-dirty + - run: cargo publish -p canbench-rs-macros env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - run: cargo publish -p canbench-rs --allow-dirty + - run: cargo publish -p canbench-rs env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - run: cargo publish -p canbench --allow-dirty + - run: cargo publish -p canbench env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} diff --git a/Cargo.lock b/Cargo.lock index 24da8c24..07298d27 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -217,7 +217,7 @@ checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "canbench" -version = "0.0.0-git" +version = "0.4.0" dependencies = [ "canbench-rs", "candid", @@ -241,7 +241,7 @@ dependencies = [ [[package]] name = "canbench-rs" -version = "0.0.0-git" +version = "0.4.0" dependencies = [ "canbench-rs-macros", "candid", @@ -251,7 +251,7 @@ dependencies = [ [[package]] name = "canbench-rs-macros" -version = "0.0.0-git" +version = "0.4.0" dependencies = [ "proc-macro2", "quote", diff --git a/canbench-bin/Cargo.toml b/canbench-bin/Cargo.toml index 000d539a..bbcd0cef 100644 --- a/canbench-bin/Cargo.toml +++ b/canbench-bin/Cargo.toml @@ -6,16 +6,15 @@ license = "Apache-2.0" name = "canbench" readme = "../README.md" repository = "https://github.com/dfinity/canbench" -# Version is set by a Github workflow from the git tag -version = "0.0.0-git" +# NOTE: Update `canbench-rs` version below when this changes. +version = "0.4.0" [[bin]] name = "canbench" path = "src/main.rs" [dependencies] -# canbench-rs version tag is set by a Github workflow from the git tag -canbench-rs = { path = "../canbench-rs" } +canbench-rs = { path = "../canbench-rs", version = "0.4.0" } candid.workspace = true clap.workspace = true colored.workspace = true diff --git a/canbench-bin/tests/tests.rs b/canbench-bin/tests/tests.rs index 7484e873..0b062733 100644 --- a/canbench-bin/tests/tests.rs +++ b/canbench-bin/tests/tests.rs @@ -285,7 +285,7 @@ fn newer_version() { .run(|output| { assert_err!( output, - "canbench is at version 0.0.0-git while the results were generated with version 99.0.0. Please upgrade canbench. + "canbench is at version 0.4.0 while the results were generated with version 99.0.0. Please upgrade canbench. " ); }); diff --git a/canbench-rs-macros/Cargo.toml b/canbench-rs-macros/Cargo.toml index 8ceaab7d..7a26d7cb 100644 --- a/canbench-rs-macros/Cargo.toml +++ b/canbench-rs-macros/Cargo.toml @@ -4,7 +4,7 @@ edition = "2021" license = "Apache-2.0" name = "canbench-rs-macros" repository = "https://github.com/dfinity/canbench" -version = "0.0.0-git" +version = "0.4.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/canbench-rs/Cargo.toml b/canbench-rs/Cargo.toml index 91af8ea6..635b7427 100644 --- a/canbench-rs/Cargo.toml +++ b/canbench-rs/Cargo.toml @@ -6,8 +6,8 @@ license = "Apache-2.0" name = "canbench-rs" readme = "../README.md" repository = "https://github.com/dfinity/canbench" -# Version is set by a Github workflow from the git tag -version = "0.0.0-git" +# NOTE: Update `canbench-rs-macros` version below when this changes. +version = "0.4.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -15,8 +15,7 @@ version = "0.0.0-git" path = "src/lib.rs" [dependencies] -# canbench-rs-macros version tag is set by a Github workflow from the git tag -canbench-rs-macros = { path = "../canbench-rs-macros" } +canbench-rs-macros = { path = "../canbench-rs-macros", version = "0.4.0" } candid.workspace = true ic-cdk.workspace = true serde.workspace = true diff --git a/development-guide.md b/development-guide.md index 3a1a5781..252b08a5 100644 --- a/development-guide.md +++ b/development-guide.md @@ -16,4 +16,15 @@ Here's an example PR bumping the versions: https://github.com/dfinity/canbench/p - Set the title to `vX.X.X`. - Choose the previous tag as the last release. - Add release notes. GitHub can generate them by clicking **Generate release notes**, modify as needed. -3. Click **Publish release** when ready, which will trigger the workflows to publish to crates.io. \ No newline at end of file +3. Click **Publish release** when ready. + +## Steps to Publish the Packages to crates.io + +1. Generate an API token to use with crates.io: + Log in to crates.io with your GitHub account, go to **Account Settings**, and generate a new token under **API Tokens**. +2. Run `cargo login` in the terminal and enter your API key when prompted. +3. Check out the repo at the tag created for the release, e.g. `git checkout vX.X.X`. +4. Publish the crates in the following order: + - `cargo publish -p canbench-rs-macros` + - `cargo publish -p canbench-rs` + - `cargo publish -p canbench` diff --git a/examples/btreemap_vs_hashmap/canbench_results.yml b/examples/btreemap_vs_hashmap/canbench_results.yml index b7ffa731..715767da 100644 --- a/examples/btreemap_vs_hashmap/canbench_results.yml +++ b/examples/btreemap_vs_hashmap/canbench_results.yml @@ -30,4 +30,4 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} -version: 0.0.0-git +version: 0.2.1 diff --git a/examples/fibonacci/canbench_results.yml b/examples/fibonacci/canbench_results.yml index 114fbc30..5761f8a0 100644 --- a/examples/fibonacci/canbench_results.yml +++ b/examples/fibonacci/canbench_results.yml @@ -34,4 +34,4 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} -version: 0.0.0-git +version: 0.2.1 diff --git a/tests/init_arg/canbench_results.yml b/tests/init_arg/canbench_results.yml index 0b90cbf9..b63361b1 100644 --- a/tests/init_arg/canbench_results.yml +++ b/tests/init_arg/canbench_results.yml @@ -6,4 +6,4 @@ benches: heap_increase: 0 stable_memory_increase: 0 scopes: {} -version: 0.0.0-git +version: 0.1.10 diff --git a/tests/measurements_output/canbench_results.yml b/tests/measurements_output/canbench_results.yml index 622fbcc3..89c385c1 100644 --- a/tests/measurements_output/canbench_results.yml +++ b/tests/measurements_output/canbench_results.yml @@ -95,4 +95,4 @@ benches: calls: 20 heap_increase: 0 instructions: 20000000 -version: 0.0.0-git +version: 0.1.15 From e1784c918e903293746ccfd96ebdd3ec4a19d31a Mon Sep 17 00:00:00 2001 From: David Derler Date: Mon, 12 Jan 2026 13:52:05 +0100 Subject: [PATCH 23/26] . --- development-guide.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/development-guide.md b/development-guide.md index 252b08a5..df3554e1 100644 --- a/development-guide.md +++ b/development-guide.md @@ -20,11 +20,6 @@ Here's an example PR bumping the versions: https://github.com/dfinity/canbench/p ## Steps to Publish the Packages to crates.io -1. Generate an API token to use with crates.io: - Log in to crates.io with your GitHub account, go to **Account Settings**, and generate a new token under **API Tokens**. -2. Run `cargo login` in the terminal and enter your API key when prompted. -3. Check out the repo at the tag created for the release, e.g. `git checkout vX.X.X`. -4. Publish the crates in the following order: - - `cargo publish -p canbench-rs-macros` - - `cargo publish -p canbench-rs` - - `cargo publish -p canbench` +1. On the repository main page, navigate to the `Actions` tab. +2. Click on the workflow to publish to crates.io +3. Click on `run workflow` and select the version tag created above for the workflow to run on. From 7625a4a6b87300f77da8c71d0f8d37524abfdcee Mon Sep 17 00:00:00 2001 From: David Derler Date: Mon, 12 Jan 2026 15:29:24 +0000 Subject: [PATCH 24/26] . --- .github/workflows/publish.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e260a8d3..afa39866 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -2,6 +2,11 @@ name: Publish canbench crates to crates.io on: workflow_dispatch: + inputs: + dryRun: + description: "Run cargo publish with --dry-run" + required: true + type: boolean jobs: publish-canbench: @@ -16,15 +21,15 @@ jobs: - uses: rust-lang/crates-io-auth-action@v1 id: auth - - run: cargo publish -p canbench-rs-macros + - run: cargo publish -p canbench-rs-macros ${{ inputs.dryRun == true && '--dry-run' || '' }} env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - run: cargo publish -p canbench-rs + - run: cargo publish -p canbench-rs ${{ inputs.dryRun == true && '--dry-run' || '' }} env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} - - run: cargo publish -p canbench + - run: cargo publish -p canbench ${{ inputs.dryRun == true && '--dry-run' || '' }} env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} @@ -32,6 +37,6 @@ jobs: uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 # v1.25.0 with: channel-id: eng-dsm-alerts - slack-message: "New `canbench` crates (version `${{ github.ref_name }}`) has been published to crates.io" + slack-message: "${{ inputs.dryRun == true && 'DRY RUN: ' || '' }}New `canbench` crates (version `${{ github.ref_name }}`) has been published to crates.io" env: SLACK_BOT_TOKEN: ${{ secrets.SLACK_API_TOKEN }} From 16f38e38835ba0d46fc6f1b2d49896cc0f634d14 Mon Sep 17 00:00:00 2001 From: David Derler Date: Mon, 12 Jan 2026 15:39:59 +0000 Subject: [PATCH 25/26] Review comments --- .github/workflows/publish.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index afa39866..19daa6f1 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -21,6 +21,8 @@ jobs: - uses: rust-lang/crates-io-auth-action@v1 id: auth + - run: echo "Preparing to cargo publish ${{ github.ref_name }}." + # Crates need to be published in this specific order - run: cargo publish -p canbench-rs-macros ${{ inputs.dryRun == true && '--dry-run' || '' }} env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} From 5deb2314f028ae3cbfe7ee3efdcfa36414e1c2e0 Mon Sep 17 00:00:00 2001 From: David Derler <55094821+derlerd-dfinity@users.noreply.github.com> Date: Tue, 13 Jan 2026 12:49:46 +0100 Subject: [PATCH 26/26] Update .github/workflows/publish.yml --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 19daa6f1..77466bdc 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,7 @@ on: inputs: dryRun: description: "Run cargo publish with --dry-run" - required: true + required: false type: boolean jobs: