ci: release didc via cargo-dist; split candid_ui into its own workflow#745
Draft
lwshang wants to merge 2 commits into
Draft
ci: release didc via cargo-dist; split candid_ui into its own workflow#745lwshang wants to merge 2 commits into
lwshang wants to merge 2 commits into
Conversation
Replace the hand-written release.yml with a two-track release setup: - didc binaries are now built and published by cargo-dist (dist 0.31.0, matching ic-wasm) on `didc-vX.Y.Z` SemVer tags. Targets: linux x86_64, linux x86_64-musl, linux arm64, macOS x86_64, macOS arm64. arm32 is dropped as it is not a cargo-dist-supported target. Config lives in dist-workspace.toml; the workflow (didc-release.yml) is generated via `dist generate`. Third-party actions are SHA-pinned. - candid_ui.wasm keeps the repo's date-based tag (YYYY-MM-DD) trigger in the new candid-ui.yml, preserving the asset name that icp-cli pins. Add the package metadata cargo-dist needs to tools/didc/Cargo.toml and a [profile.dist] to the workspace, and document the new release process. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
There was a problem hiding this comment.
Pull request overview
This PR modernizes the repository’s release automation by migrating didc binary releases to cargo-dist while splitting the candid_ui.wasm release into its own dedicated workflow, keeping the existing date-tag release behavior for the wasm artifact.
Changes:
- Replace the monolithic tag-triggered
release.ymlwith a cargo-dist generateddidc-release.ymldriven bydidc-vX.Y.Ztags anddist-workspace.toml. - Add a standalone
candid-ui.ymlworkflow that continues releasingcandid_ui.wasmon date-based tags (YYYY-MM-DD). - Update crate metadata and documentation to reflect the new two-track release process.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/didc/Cargo.toml | Adds missing crate metadata (description/license/repository) needed for distribution tooling. |
| README.md | Documents the new two-track release process and tag conventions. |
| dist-workspace.toml | Introduces cargo-dist configuration (targets, tag namespace, SHA-pinned actions). |
| Cargo.toml | Adds a profile.dist used by cargo-dist builds. |
| .github/workflows/release.yml | Removes the old combined release workflow. |
| .github/workflows/didc-release.yml | Adds the cargo-dist generated didc release workflow. |
| .github/workflows/candid-ui.yml | Adds a dedicated workflow to publish candid_ui.wasm on date tags. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Click to see raw report |
Addresses Copilot review: the lockfiles are committed, so honor them in the release build (npm ci instead of npm install, cargo --locked). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
adamspofford-dfinity
approved these changes
Jun 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Replaces the hand-written
release.ymlwith a two-track release setup, mirroring the ic-wasm cargo-dist migration.didcbinaries → cargo-dist0.31.0(same version as ic-wasm) ondidc-vX.Y.ZSemVer tags.x86_64-unknown-linux-gnu,x86_64-unknown-linux-musl(static),aarch64-unknown-linux-gnu,x86_64-apple-darwin,aarch64-apple-darwin.dist-workspace.toml; the workflowdidc-release.ymlis generated viadist generate(don't hand-edit — regenerate after config changes).[dist.github-action-commits].candid_ui.wasm→ its own workflowcandid_ui.wasmis pinned downstream by icp-cli at a date-tag URL. So it keeps the repo's date-based tag (YYYY-MM-DD) trigger, now in the newcandid-ui.yml, producing the same asset name.tag-namespace = "didc"scopes the cargo-dist workflow todidc-v*tags, so the two triggers never collide.didcnow releases on a SemVer tag (didc-v0.6.1) instead of the date tag; date tags now release onlycandid_ui.wasm. README updated.didc-<target-triple>.tar.xzarchives +didc-installer.sh+sha256.suminstead of raw binaries nameddidc-linux64/didc-macos/didc-arm32. Confirmed nothing in sdk/icp-cli hardcodes the old names and the README only links to the releases page generically.arm-unknown-linux-gnueabihfis not a cargo-dist-supported target. Can be re-added later as a separate cross-build side-job if needed.Validation
dist planis clean: onlydidc0.6.1, the 5 targets above.cargo metadataparses; both workflows are valid YAML.release.ymlbinary smoke-test is already covered bytools.yml'sbuild-didcjob.Out of scope
npm packaging of
didc(ic-wasm hasrelease-npm.yml+npm/; candid has no equivalent today).🤖 Generated with Claude Code