chore(release): prepare v1.0.1#234
Conversation
The stored-config corpus under zakurad/tests/common/configs/ was
inherited from upstream Zebra and spans releases (v1.0.0-beta.* through
v5.0.0*, plus feature-variant snapshots) that no Zakura user ever ran:
Zakura's first release is v1.0.0. The acceptance tests only iterate the
directory and look up v{CARGO_PKG_VERSION}.toml by name, so these files
exist purely to keep parsing configs that cannot exist in the field,
and every future config change pays the maintenance cost of the whole
corpus. Keep Zakura's own v1.0.0.toml (this also clears upstream's
ancient v1.0.1.toml, which would collide with Zakura's next patch
release snapshot) and custom-conf.toml, which the test-docker workflow
loads by path; rc-era snapshots go with the rest of the pre-1.0.0
process artifacts.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
First patch release after v1.0.0. Crate versions advance independently, changed crates only: zakura-network, zakura-state, zakura-consensus, and zakura-rpc move to 2.0.0 (semver-checks breaking findings in network; the CheckpointVerifiedBlock DerefMut removal in state; state/network service types are public in consensus and rpc init signatures, so their majors cascade), zakura-chain to 1.1.0 (additive), zakura-utils and zakura to 1.0.1. Internal dependency requirements move only where the previous requirement no longer matches (release.toml now pins dependent-version = "fix" to codify that), and the lockfile follows. Root changelog gains the [1.0.1] section and returns [1.0.0] to the plain Initial-release entry: the three Fixed entries that #133/#138 appended there describe post-tag changes shipping in v1.0.1, and predate the [Unreleased] section. Crate changelogs cover the API deltas per cargo-semver-checks and cargo-public-api. Installer and README pins move to v1.0.1 with the placeholder-zero checksum for release CI to replace. ESTIMATED_RELEASE_HEIGHT moves to 3,416,700 (tip 3,415,500 on 2026-07-17, one-day cut assumption), and the stored config snapshot is regenerated for the 1.0.1 package version (byte-identical to v1.0.0's; no config defaults changed). Checkpoints are deliberately not refreshed, matching v1.0.0 — the generating pipeline has been down since 2026-06-23. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Changelog review trail, per the release checklist ("put the list of deleted changelog entries in a PR comment"). Since Release Drafter had no draft for this range, the
Everything else since the tag has an entry under |
|
Output of (The version-gate and advisory section above is from the pre-commit run — the packaging step re-ran on the clean release commit; both passed. The |
| [package] | ||
| name = "zakura-network" | ||
| version = "1.0.0" | ||
| version = "2.0.0" |
There was a problem hiding this comment.
Hrmm is this really 2.0?
There was a problem hiding this comment.
I don't think those pub api's should be for public consumption. If we follow exact strictness like this, we'll probably be at 10.0.0 in a few weeks
There was a problem hiding this comment.
In general there might be situations where users will build and cargo will select older (semver compatible) versions in lockfiles or caches, but those would be incompatible.
There was a problem hiding this comment.
We can address this before the version numbers get out of hand I think. I also don't think it really matters if they go up to high numbers, the largest allowed version number is u64::MAX.
v1.0.1 releases 2026-07-17, ~11 days before the expected Ironwood activation (height 3,428,143, ~2026-07-28). The v1.0.0-era 7-day end-of-support window would halt every 1.0.1 node ~4 days before activation, so EOS_PANIC_AFTER widens to 18 days: the halt lands one week after activation (~2026-08-04, height ~3,436,436), spanning the network upgrade while still forcing migration to the post-Ironwood release. Warnings keep their 3-day lead. ESTIMATED_RELEASE_HEIGHT refreshes to 3,415,700 (tip 3,415,571 at commit time, same-day cut) and the changelog dates move to the actual release date; CHANGELOG_PARAMS records the re-tuning. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Pushed |
markdownlint (MD049) requires underscore emphasis style. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rust 1.95 deprecated fetch_update (renamed to try_update), which fails the -D warnings lint builds. try_update is not available at MSRV 1.91, so use a compare_exchange_weak loop matching release_atomic_bytes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Motivation
First patch release after v1.0.0. Since the tag, main has accumulated operator-visible fixes (header-sync stall and correctness fixes, VCT validation hardening, block-sync memory bounding, mempool and Sapling verification performance) that should ship as
v1.0.1.Solution
Release prep per
.github/PULL_REQUEST_TEMPLATE/release-checklist.md, with crate versions advancing independently (changed crates only):zakura-networkcargo semver-checks: 4 breaking findings — removed/renamed public items (#222, #154)zakura-stateDerefMutimpl removed fromCheckpointVerifiedBlock(#208 documents it as source-breaking; below semver-checks' lint coverage, which reports clean)zakura-consensusinitbounds — public-dependency majorzakura-rpczakura-chainBlock::attributed_memory_size_bytes(#159)zakura-utilszakura-rpcrequirement moves to 2.0.0 (private dep of the tools)zakurav1.0.1tagThe remaining six crates are unchanged since
v1.0.0and are not bumped or published.CHANGELOG.md: new[1.0.1]section. This also relocates the three### Fixedentries that fix(state): stop serving fabricated commitment metadata #133/fix(sync): retry missing header ranges indefinitely #138 appended under[1.0.0]— both PRs merged after the tag (their changes ship in v1.0.1, and the[Unreleased]section didn't exist yet when they landed), so[1.0.0]returns to the plain "Initial release" entry perCHANGELOG_GUIDELINES.md.cargo semver-checks/cargo public-api diff latest.v1.0.1tag with the placeholder-zero checksum (release CI substitutes the real value into the published asset copy); Docker pins move tozakuracore/zakura:1.0.1/zcashd-compat-1.0.1. README--tagline viacargo release replace.v1.0.0-beta.*throughv5.0.0*, plus feature variants): no Zakura user ever ran them — Zakura's first release is v1.0.0 — the acceptance tests only iterate the directory and look upv{CARGO_PKG_VERSION}.tomlby name, and upstream's ancientv1.0.1.tomlsquatted on this release's snapshot filename. Keepsv1.0.0.tomlandcustom-conf.toml(loaded by path intest-docker.yml). Zakura's rc-era snapshots go with the rest, per the rc-artifact sweep — shout if you'd rather keep those. (Supersedes test(zakurad): remove stale upstream stored configs #233, closed in favor of a single PR.)zakurad/tests/common/configs/v1.0.1.toml(thelast_config_is_storedacceptance test derives the filename from the package version).ESTIMATED_RELEASE_HEIGHT3,413,500 → 3,415,700 (tip 3,415,571 on 2026-07-17 per Blockchair, same-day cut), andEOS_PANIC_AFTER7 → 18 days (CHANGELOG_PARAMS.mdrow included): the 7-day window would halt every 1.0.1 node ~4 days before the expected Ironwood activation (3,428,143, ~2026-07-28). The halt now lands one week after activation (~2026-08-04, height ~3,436,436), so 1.0.1 spans the upgrade and still forces migration to the post-Ironwood release. Warnings keep their 3-day lead (start ~2026-08-01). Re-estimate if dispatch slips.Merging this PR does not cut the release: the
create-releasedispatch and therelease-environment approval remain the controls, and no crates.io publish happens as part of this change.Testing
make pre-release RELEASE_TAG=v1.0.1 BASE_TAG=v1.0.0(output in a PR comment)cargo semver-checksper changed library crate: network fails 4 major checks (matching the table); state/chain/consensus/rpc report "no semver update required" — state's break and chain's addition sit outside the tool's lint coverage, hence the manual classification abovecargo test --release -p zakura --test acceptance -- config_tests(coverslast_config_is_storedandstored_configs_work)cargo metadata --lockedresolves, so the lockfile matches the new graphbash -n scripts/install-zakura.shSpecifications & References
.github/PULL_REQUEST_TEMPLATE/release-checklist.mdCHANGELOG_GUIDELINES.mdFollow-up Work
create-releaseforv1.0.1after merge (separate decision, per the release checklist).zakura-chain,zakura-state,zakura-consensus,zakura-network,zakura-rpc,zakura-utils,zakura), then promotion, signing, and the installer-metadata PR per the checklist.[1.0.0]section.AI Disclosure
Prepared with Claude Code (version bumps via
cargo release, changelog and metadata edits, preflight runs); human review required before merge and dispatch.🤖 Generated with Claude Code