Closed upbqdn closed 3 weeks ago
Output from cargo update
:
Updating crates.io index
Locking 9 packages to latest compatible versions
Updating hyper-util v0.1.9 -> v0.1.10
Updating insta v1.40.0 -> v1.41.0
Updating libm v0.2.8 -> v0.2.11
Updating quinn-udp v0.5.5 -> v0.5.6
Updating reqwest v0.12.8 -> v0.12.9
Updating rustix v0.38.37 -> v0.38.38
Updating rustls v0.23.15 -> v0.23.16
Updating serde v1.0.213 -> v1.0.214
Updating serde_derive v1.0.213 -> v1.0.214
note: pass `--verbose` to see 125 unchanged dependencies behind latest
us-docker.pkg.dev/zfnd-dev-zebra/zebra/zebrad:pr-8979
us-docker.pkg.dev/zfnd-dev-zebra/zebra/zebrad:pr-8979
digest | sha256:fcc690ac8031c2f8792b2e1b2ce220a7f27d8108fb43be1fc6405e62eb747a86 |
vulnerabilities | |
size | 106 MB |
packages | 114 |
debian:12-slim
also known as |
|
digest | sha256:d83056144b2dd301730d2739635c8cbdeaaae20d6887146434184f8c060f03ce |
vulnerabilities |
us-docker.pkg.dev/zfnd-dev-zebra/zebra/zebrad:pr-8979
Base image is debian:bookworm-slim
Name | bookworm-20241016-slim |
Digest | sha256:d83056144b2dd301730d2739635c8cbdeaaae20d6887146434184f8c060f03ce |
Vulnerabilities | |
Pushed | 1 week ago |
Size | 29 MB |
Packages | 125 |
Flavor | debian |
OS | 12 |
Slim | ✅ |
The base image is also available under the supported tag(s):12-slim
,12.7-slim
,bookworm-20241016-slim
Rebuild the image using a newer base image version. Updating this may result in breaking changes.
✅ This image version is up to date.
Tag | Details | Pushed | Vulnerabilities |
---|---|---|---|
stable-slim Tag is preferred tag Also known as:
|
Benefits:
|
1 week ago | |
stable Image has same number of vulnerabilities Also known as:
|
Benefits:
|
1 week ago | |
bookworm Tag is latest Also known as:
|
Benefits:
|
1 week ago | |
testing-slim Major OS version update Also known as:
|
Benefits:
|
1 week ago | |
sid-slim Major OS version update Also known as:
|
Benefits:
|
1 week ago | |
Image reference | zfnd/zebra:latest |
us-docker.pkg.dev/zfnd-dev-zebra/zebra/zebrad:pr-8979 |
---|---|---|
- digest | 64630802fdcb |
fcc690ac8031 |
- tag | latest |
pr-8979 |
- provenance | https://github.com/ZcashFoundation/zebra/commit/f45f6f282c7b1b3e82594de328a2d4f1849bc99a | https://github.com/ZcashFoundation/zebra/commit/4c5b5590b811ef84ae8985d6334387b44690f06d |
- vulnerabilities | ||
- platform | linux/amd64 | linux/amd64 |
- size | 106 MB | 106 MB (+8.4 kB) |
- packages | 114 | 114 |
Base Image | debian:bookworm-slim also known as: • 12-slim • 12.7-slim • bookworm-20241016-slim |
debian:bookworm-slim also known as: • 12-slim • 12.7-slim • bookworm-20241016-slim |
- vulnerabilities |
The test_grpc_response_data
test seemed to hang here:
https://github.com/ZcashFoundation/zebra/actions/runs/11589846881/job/32266208300?pr=8979#step:12:2012
Re-running it, I expect it'll pass now since the other unit test jobs did.
name: 'Release Checklist Template' about: 'Checklist to create and publish a Zebra release' title: 'Release Zebra (version)' labels: 'A-release, C-trivial, P-Critical :ambulance:' assignees: ''
Prepare for the Release
Summarise Release Changes
These steps can be done a few days before the release, in the same PR:
Change Log
Important: Any merge into
main
deletes any edits to the draft changelog. Once you are ready to tag a release, copy the draft changelog intoCHANGELOG.md
.We use the Release Drafter workflow to automatically create a draft changelog. We follow the Keep a Changelog format.
To create the final change log:
CHANGELOG.md
(there can be multiple draft releases)README
README updates can be skipped for urgent releases.
Update the README to:
Dockerfile
since the last tag:git diff <previous-release-tag> docker/Dockerfile
.Cargo.toml
sYou can use a command like:
Create the Release PR
bump-v1.0.0
- this needs to be different to the tag name&template=release-checklist.md
to the comparing url (Example).batched
queue using Mergify.Critical
priority, so they go in theurgent
Mergify queue.do-not-merge
, because Mergify checks approved PRs against every commit, even when a queue is frozen.Update Versions and End of Support
Update Zebra Version
Choose a Release Level
Zebra follows semantic versioning. Semantic versions look like: MAJOR.MINOR.PATCH[-TAG.PRE-RELEASE]
Choose a release level for
zebrad
. Release levels are based on user-visible changes from the changelog:major
releasesminor
releasespatch
releaseZebra's Rust API doesn't have any support or stability guarantees, so we keep all the
zebra-*
andtower-*
crates on a betapre-release
version.Update Crate Versions
If you're publishing crates for the first time, log in to crates.io, and make sure you're a member of owners group.
Check that the release will work:
Crate publishing is automatically checked in CI using "dry run" mode, however due to a bug in
cargo-release
we need to pass exact versions to the alpha crates:zebra-scan
andzebra-grpc
alpha crates in the release-crates-dry-run workflow scriptUpdate End of Support
The end of support height is calculated from the current blockchain height:
ESTIMATED_RELEASE_HEIGHT
inend_of_support.rs
with the height you estimate the release will be tagged.Optional: calculate the release tagging height
- Add `1152` blocks for each day until the release - For example, if the release is in 3 days, add `1152 * 3` to the current Mainnet block heightUpdate the Release PR
Publish the Zebra Release
Create the GitHub Pre-Release
v1.0.0
main
branchZebra
followed by the version tag, for example:Zebra 1.0.0
## [Zebra ...
of the current version being released, and ending just before the title of the previous release.Test the Pre-Release
main
, and the quick tests have passed:Publish Release
Publish Crates
cargo login
cargo clean
in the zebra repo (optional)cargo release publish --verbose --workspace --execute
crates.io
:cargo install --locked --force --version 1.minor.patch zebrad && ~/.cargo/bin/zebrad
and put the output in a comment on the PR.Publish Docker Images
batched
queue using Mergify.do-not-merge
from the PRs you added it toRelease Failures
If building or running fails after tagging:
Tag a new release, following these instructions...
1. Fix the bug that caused the failure 2. Start a new `patch` release 3. Skip the **Release Preparation**, and start at the **Release Changes** step 4. Update `CHANGELOG.md` with details about the fix 5. Follow the release checklist for the new Zebra version