Release changes live in this repository first. The release preflight checks QUBODrivers metadata that can drift while preparing a package release.
- Update
Project.tomlto the target version. - Move the top
CHANGELOG.mdsection fromUnreleasedtovX.Y.Z - YYYY-MM-DD. - Update
docs/Project.tomlself-compat forQUBODrivers.- For
0.Y.Z, use0.Y. - For
0.0.Z, use0.0.Z. - For
X.Y.ZwithX > 0, useX.
- For
- Run the static release preflight:
julia --project=. scripts/release_check.jl- Run the package and documentation checks:
julia --project=. -e 'import Pkg; Pkg.test()'
julia --project=docs -e 'using Pkg; Pkg.develop(path=pwd()); Pkg.instantiate()'
julia --project=docs docs/make.jl --skip-deploy- Open and merge the release PR after CI is green.
After the release PR is merged, invoke Registrator on the merge commit, not on
the pull request. Use the template in release-notes-template.md.
The release notes for a pre-1.0 minor release should include a
Breaking changes or Changelog section. General may label pre-1.0 minor
releases as BREAKING, and AutoMerge requires one of those words in the
release notes when that label is present.
gh api repos/JuliaQUBO/QUBODrivers.jl/commits/<merge-sha>/comments -f body="$(cat release-notes-template.md)"Watch the General registry PR:
gh pr checks <general-pr-number> --repo JuliaRegistries/General --watch
gh pr view <general-pr-number> --repo JuliaRegistries/General --json state,mergedAt,mergeCommit,urlIf AutoMerge fails because release notes are missing the breaking-change wording, re-invoke Registrator on the same merge commit with corrected release notes.
After the General PR merges, wait for TagBot and verify the tag and release:
gh run list --workflow TagBot.yml --limit 10
git ls-remote --tags origin vX.Y.Z
gh release view vX.Y.ZUse a fresh depot and project so the check does not reuse a local development path:
tmp="$(mktemp -d)"
mkdir -p "$tmp/depot" "$tmp/proj"
JULIA_DEPOT_PATH="$tmp/depot" julia --startup-file=no --project="$tmp/proj" -e 'using Pkg; Pkg.add("QUBODrivers"); deps = Pkg.dependencies(); versions = [(pkg.name, pkg.version) for pkg in values(deps) if pkg.name == "QUBODrivers"]; @show versions'