Skip to content

Release 2.0.0 - #493

Merged
ebfull merged 3 commits into
mainfrom
release/v2.0.0
Sep 23, 2026
Merged

ebfull merged 3 commits into
mainfrom
release/v2.0.0

Conversation

@ebfull

@ebfull ebfull commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Supersedes #490, which GitHub closed when its head branch was renamed from release/v1.3.0 to release/v2.0.0; the review context and green CI for the 1.3.0 head live there.

Prepares the coordinated 2.0.0 release of the zakura-* library crates: the 17 crates published at 1.3.0-alpha.1 plus the first release of the four crates imported in #471 (zakura-protocol, zakura-address, zakura-transparent, zakura-zip321). No stable 1.3.0 ships.

Why a major bump: #471 replaced the zcash_protocol, zcash_transparent, and zcash_address crates behind types in the public APIs of zakura-primitives and zakura-keys. cargo-semver-checks cannot see that because the type paths are unchanged, but a consumer that still uses the librustzcash crates alongside those two hits type mismatches on upgrade. #458's removal of the zip-233 feature and its APIs is the other break; the #465 ignore-list entry that permitted it for a minor release stays per policy but is not exercised by a major bump.

  • Bumps [workspace.package] version and all intra-workspace [workspace.dependencies] requirements from 1.3.0-alpha.1 to 2.0.0; Cargo.lock changes only in the 21 member version lines.
  • Assembles the v2.0.0 changelog sections, consuming all 17 pending fragments into twelve crate changelogs. The published 1.3.0-alpha.1 sections were folded into the stable section with ./scripts/changelog.py release v1.3.0 and the section then renamed to 2.0.0, since the alpha's entries are part of the 2.0.0 delta from 1.2.0.
  • Includes Fix NU7 consensus branch ID #492's zakura-protocol fix (see below), which has no fragment of its own because this PR consumes all fragments into the assembled changelogs.
  • The first commit teaches scripts/changelog.py to fold every pre-release section of the stable version (-alpha.N, -beta.N, -rc.N) rather than only -rc*. It adds a unit test and updates the guidelines, the fragment README, and the release skill, which also gains the four new crates in its publish order.

Editorial pass on the assembled entries (the stable section is the delta from 1.2.0):

Semver review against 1.2.0 (check_semver.py --baseline-version 1.2.0 for all 17 previously published crates): 16 report no required bump and zakura-primitives reports only the zip-233 feature removal, so the tooling alone would have accepted a minor bump. The major bump is for the #471 dependency swap described above.

Publishing note: the four new crate names are reserved on crates.io at 0.0.0, so 2.0.0 is their first real release. Publish zakura-protocol, then zakura-address, then zakura-transparent and zakura-zip321, before zakura-keys and zakura-primitives.

Validation: ./scripts/changelog.py release v2.0.0 --check, the 29 changelog unit tests, and CI's Markdown delta lint pass. cargo package --list for all 21 crates shows no stray files (the four new crates ship real LICENSE files rather than symlinks). At the 1.3.0 head, the docs.rs-style doc build (--cfg docsrs, nightly, all features) passed and cargo test --release --workspace --all-features --locked passed 850 tests; the only two failures were orchard's prover_capture and prover_capture_two_actions, which require RAYON_NUM_THREADS=1 (as their module header and the CI job state) and pass that way. CI on the current head covers the #492 fold and the version change.

🤖 Generated with Claude Code

ebfull and others added 3 commits September 23, 2026 15:20
…lease

`scripts/changelog.py release vX.Y.Z` only collapsed `X.Y.Z-rc*` sections, so
an `X.Y.Z-alpha.N` section would stay separate from the stable `X.Y.Z`
section. Treat every `X.Y.Z-<pre-release>` section the same way, add a unit
test, and update the guidelines, fragment README, and release skill. The
skill also gains the four crates imported in #471 in its publish order and
crate counts.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 3b03bb9)
Bump the workspace version and intra-workspace requirements from
1.3.0-alpha.1 to 2.0.0 and assemble the v2.0.0 changelog sections,
consuming all 17 pending fragments. The bump is major because #471
replaced the `zcash_protocol`, `zcash_transparent`, and `zcash_address`
crates behind types in the public APIs of zakura-primitives and
zakura-keys, and #458 removed the `zip-233` feature and its APIs.

No stable 1.3.0 ships, so the published `1.3.0-alpha.1` sections belong
to the 2.0.0 delta from 1.2.0: they were folded with
`./scripts/changelog.py release v1.3.0` and the section renamed to 2.0.0.

Editorial changes to the assembled entries:
- Record the #471 dependency swap in zakura-primitives and zakura-keys.
- Link #492 from the #474 NU7 entry: the release ships the 0x77190AD9
  consensus branch ID that the fragment documented.
- Drop the stale `zcash_unstable="nu7"` qualifier from the #458 entry.
- Remove internal-only wording from the #437 and #451 halo2_proofs entries.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@ebfull ebfull added the A-release Release PR: consumes all pending changelog fragments label Sep 23, 2026
@ebfull ebfull mentioned this pull request Sep 23, 2026
@v12-auditor

v12-auditor Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Note

Complete: Audit complete. V12 did not find any issues that need review.

Open the full results here.

Analyzed one file, diff 2c1693b...a6020c3.

@ebfull
ebfull merged commit 57f208e into main Sep 23, 2026
78 of 114 checks passed
@ebfull
ebfull deleted the release/v2.0.0 branch September 23, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-release Release PR: consumes all pending changelog fragments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants