Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 27 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ in the GitHub release body and refuses to release without one. Stage upcoming
entries under `## Unreleased`, then retitle the section to the version (with
date) before dispatching the release.

## Unreleased
## v29 - 2026-09-07

Comment on lines +9 to 10
### Added

Expand All @@ -22,20 +22,20 @@ date) before dispatching the release.
concurrently, so the kinds overlap rather than sum. A `phase="prepare"`
sample covers the sighash and transaction id digests, bundle extraction and
check construction between `utxo_fetch` and `checks`, which were previously
untimed.
untimed. (#74)

### CI

- `release.yml` refuses to dispatch when either node's mainnet halt (zcashd
or zebra) is under 4 weeks past the current tip (estimated from a block
anchor and the wall clock, no network access); MAINTENANCE.md gains the
matching pre-release checklist.
matching pre-release checklist. (#61)
- `z3-smoke` builds only the stack images whose build context a PR touches
and pulls the others, pinned by digest, from `ghcr.io/shieldedlabs/zero-*:main`:
the newest main build that passed the smoke test, published by a new
push-to-main run after its own green smoke. Releases, schedules, and
dispatches still build every image. The zcashd cache-warm build is its own
non-gating job, so smoke no longer waits ~45 minutes for it on zcashd PRs.
non-gating job, so smoke no longer waits ~45 minutes for it on zcashd PRs. (#64)
- The zcashd image builds `depends/` in its own cached layer, so a change under
`zcashd/src` rebuilds zcashd alone (about 2 minutes at 16 vCPUs) instead of
every dependency (about 15). The cache-warm job no longer exports its builder
Expand All @@ -44,7 +44,29 @@ date) before dispatching the release.
quota, evicting the other workflows' entries. PR runs are now a separate
read-only job (no registry login, no `packages: write`, no export); pushes
to main, schedules, dispatches, and releases still refresh the registry
cache.
cache. (#65, #66)
- `release.yml` grants its smoke gate `pull-requests: read`. The reusable
`z3-smoke` workflow has required that scope since #64, and a called workflow
may not request more than its caller grants, so every release dispatch since
then failed at startup with no jobs. (b212452c89)
- `z3-regtest` mines its golden chain with `generatetoaddress` on the live
node instead of the internal miner behind stop-and-restart cycles, builds
its binaries in parallel behind a source-tree binary cache, and runs the
scenario groups as parallel jobs, with a push-to-main run so PR caches have
something to hit: 64 to 83 minutes per run before, about 15 after. (#67, #68)
- `release.yml`'s version job uses the same checkout v7.0.1 pin as its other
jobs, and a mislabelled checkout pin in the Copilot review workflow is
labelled correctly; SHAs unchanged. (#62)
- The Copilot push-review workflow gains `code`, `security` and `full` modes
(`code` by default on pushes to main, selectable on manual runs), and
`.github/copilot-instructions.md` is generated from
`.github/review-modes/*.md` rather than edited by hand. (#71)

### Docs

- zebra: the end-of-support vendor note is a plain `// [zero]` comment above
`ESTIMATED_RELEASE_HEIGHT` instead of part of its rustdoc; value and
behaviour unchanged. (#63)

## v28 - 2026-09-02

Expand Down