-
Create a Release Branch
Create a new branch namedrelease/v*.*.*from `main. Use dlp-api version as the branch name, not the dlp version. -
Update the Crate Versions
Increment the version indlp-api/Cargo.tomlfor the release you are preparing.- Incrementing the version in dlp's
Cargo.tomlis optional, as it will not be published.
- Incrementing the version in dlp's
-
Align the Release Manifests
Runbash ./.github/version_align.sh. This will:- update the versioned
dlp-apientries in the rootCargo.tomlto matchdlp-api/Cargo.toml - keep the
magicblock-delegation-programself dev-dependency path-only so the root crate can publish cleanly
- update the versioned
-
Commit and Push the Release Branch
Commit the version updates and aligned manifest, then push therelease/v*.*.*branch. -
Continuous Integration (CI) Dry Run
The publish workflow runs onrelease/v*pushes in dry-run mode. Ensure the workflow passes before continuing. -
Merge and Publish
Merge the release branch intomain, then create a new GitHub Release. This triggers the real publish flow formagicblock-delegation-program-api.- Note that
magicblock-delegation-programwill not be published.
- Note that
-
Post-Deployment
Verify thatmagicblock-delegation-program-apiis available as expected after the GitHub Release completes.
CRATES_TOKENmust be configured in the repository secrets.- Manual
workflow_dispatchruns default to dry-run. Only setdry_runtofalsewhen you intentionally want a real publish.