-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v1.0.0-rc.7 release #6542
v1.0.0-rc.7 release #6542
Conversation
Omitted:
|
Co-authored-by: teor <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, the changelog edits aren't blockers.
Do you want to skip this step, so we can get the release out before Rust 1.69 goes stable?
Make sure the PRs with the new checkpoint hashes and missed dependencies are already merged
The Rust release should happen on Thursday 20 April (US time).
I'm okay skipping them but would prefer to update them if you're around later today (in a couple hours) for a re-approval. |
I can check back in later today, but I'll only be around for the next 4 hours, because I started early this morning. |
@Mergifyio update |
✅ Branch has been successfully updated |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, looks good!
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #6542 +/- ##
==========================================
+ Coverage 77.92% 78.09% +0.16%
==========================================
Files 306 306
Lines 40236 40236
==========================================
+ Hits 31355 31422 +67
+ Misses 8881 8814 -67 |
Output: ➜ docker run --tty --interactive zfnd/zebra:1.0.0-rc.7
Unable to find image 'zfnd/zebra:1.0.0-rc.7' locally
1.0.0-rc.7: Pulling from zfnd/zebra
26c5c85e47da: Pull complete
7d2eda9da1a8: Pull complete
0c40b2a56142: Pull complete
2bb8165b4c4d: Pull complete
f4be1142cb95: Pull complete
59bba4e60891: Pull complete
Digest: sha256:30c536a65fae51dd919f61f53c0380ea57ea0f419285acd397783d53652fca69
Status: Downloaded newer image for zfnd/zebra:1.0.0-rc.7
[sentry] initialized disabled sentry client due to disabled or invalid DSN
2023-04-19T22:44:39.357452Z INFO zebrad::components::tracing::component: started tracing component filter="info" TRACING_STATIC_MAX_LEVEL=LevelFilter::INFO LOG_STATIC_MAX_LEVEL=Info
2023-04-19T22:44:39.357528Z INFO zebrad::components::tracing::component: installed sentry tracing layer
2023-04-19T22:44:39.357534Z INFO zebrad::application: Diagnostic Metadata:
version: 1.0.0-rc.7
Zcash network: Mainnet
state version: 25
target triple: x86_64-unknown-linux-gnu
build profile: release
2023-04-19T22:44:39.357546Z INFO zebrad::application: loaded zebrad config config_path=Some("/etc/zebra/zebrad.toml") config=ZebradConfig { consensus: Config { checkpoint_sync: true, debug_skip_parameter_preload: false }, metrics: Config { endpoint_addr: None }, network: Config { listen_addr: 127.0.0.1:8233, network: Mainnet, initial_mainnet_peers: {"dnsseed.z.cash:8233", "dnsseed.str4d.xyz:8233", "mainnet.seeder.zfnd.org:8233", "mainnet.is.yolo.money:8233"}, initial_testnet_peers: {"dnsseed.testnet.z.cash:18233", "testnet.seeder.zfnd.org:18233", "testnet.is.yolo.money:18233"}, peerset_initial_target_size: 25, crawl_new_peer_interval: 61s }, state: Config { cache_dir: "/zebrad-cache", ephemeral: false, debug_stop_at_height: None, delete_old_database: true }, tracing: Config { use_color: true, force_use_color: false, filter: None, buffer_limit: 128000, endpoint_addr: None, flamegraph: None, log_file: None, use_journald: false }, sync: Config { download_concurrency_limit: 50, checkpoint_verify_concurrency_limit: 1000, full_verify_concurrency_limit: 20, parallel_cpu_threads: 0 }, mempool: Config { tx_cost_limit: 80000000, eviction_memory_time: 3600s, debug_enable_at_height: None }, rpc: Config { listen_addr: None, parallel_cpu_threads: 0, debug_force_finished_sync: false } }
See more: 2023-04-19T22:44:39.357676Z INFO {net="Main"}: zebrad::application: initialized rayon thread pool for CPU-bound tasks num_threads=12
2023-04-19T22:44:39.359886Z INFO {net="Main"}: zebrad::commands::start: Starting zebrad
2023-04-19T22:44:39.359966Z INFO {net="Main"}: zebrad::commands::start: initializing node state
2023-04-19T22:44:39.365884Z INFO {net="Main"}: zebrad::commands::start: opening database, this may take a few minutes
2023-04-19T22:44:39.366373Z INFO zebra_state::service::finalized_state::disk_db: the open file limit is high enough for Zebra current_limit=1048576 min_limit=512 ideal_limit=1024
2023-04-19T22:44:40.108414Z INFO zebra_state::service::finalized_state::disk_db: Opened Zebra state cache at /zebrad-cache/state/v25/mainnet
2023-04-19T22:44:40.109027Z INFO zebra_state::service::finalized_state: loaded Zebra state cache tip=None
2023-04-19T22:44:40.109188Z INFO zebra_state::service: starting legacy chain check
2023-04-19T22:44:40.109212Z INFO zebra_state::service: cached state consensus branch is valid: no legacy chain found
2023-04-19T22:44:40.109363Z INFO {net="Main"}: zebrad::commands::start: initializing network
2023-04-19T22:44:40.109435Z INFO {net="Main"}:open_listener{addr=127.0.0.1:8233}: zebra_network::peer_set::initialize: Trying to open Zcash protocol endpoint at 127.0.0.1:8233...
2023-04-19T22:44:40.109804Z INFO {net="Main"}:open_listener{addr=127.0.0.1:8233}: zebra_network::peer_set::initialize: Opened Zcash protocol endpoint at 127.0.0.1:8233
2023-04-19T22:44:40.110092Z INFO {net="Main"}: zebra_network::address_book_updater: starting the address book updater
2023-04-19T22:44:40.364404Z INFO {net="Main"}:add_initial_peers: zebra_network::config: resolved seed peer IP addresses seed="dnsseed.z.cash:8233" remote_ip_count=50
2023-04-19T22:44:40.493545Z INFO {net="Main"}:add_initial_peers: zebra_network::config: resolved seed peer IP addresses seed="dnsseed.str4d.xyz:8233" remote_ip_count=50
2023-04-19T22:44:40.548600Z INFO {net="Main"}:add_initial_peers: zebra_network::config: resolved seed peer IP addresses seed="mainnet.seeder.zfnd.org:8233" remote_ip_count=50
2023-04-19T22:44:40.762369Z INFO {net="Main"}:add_initial_peers: zebra_network::config: resolved seed peer IP addresses seed="mainnet.is.yolo.money:8233" remote_ip_count=6
2023-04-19T22:44:40.762443Z INFO {net="Main"}:add_initial_peers: zebra_network::peer_set::initialize: limiting the initial peers list from 56 to 25
2023-04-19T22:44:40.762566Z INFO {net="Main"}:add_initial_peers: zebra_network::peer_set::initialize: connecting to initial peer set initial_peer_count=25 initial_peers={5.9.7.62:8233, 161.97.155.203:8233, 51.178.66.112:8233, 65.21.137.242:8233, 3.72.134.66:8233, 51.79.57.29:8233, 161.97.247.6:8233, 65.108.253.47:8233, 51.79.230.103:8233, 46.4.65.10:8233, 78.189.206.225:8233, 20.47.97.70:8233, 135.148.55.16:8233, 23.88.71.118:8233, 65.21.40.28:8233, 47.75.194.174:8233, 5.9.74.158:8233, [2a01:4f8:b0:920a::5502]:8233, 54.145.30.137:8233, 195.201.111.115:8233, 136.243.145.143:8233, 51.79.229.21:8233, 162.250.189.42:8233, 47.242.8.170:8233, 51.77.64.51:8233}
2023-04-19T22:44:41.493325Z INFO {net="Main"}:add_initial_peers: zebra_network::peer_set::initialize: an initial peer connection failed successes=9 errors=1 addr=46.4.65.10:8233 e=Peer offered obsolete version: Version(170002)
2023-04-19T22:44:42.400991Z INFO {net="Main"}:add_initial_peers: zebra_network::peer_set::initialize: finished connecting to initial seed peers handshake_success_total=23 handshake_error_total=2 outbound_connections=23
2023-04-19T22:44:42.401641Z INFO {net="Main"}: zebra_network::peer_set::initialize: sending initial request for peers active_initial_peer_count=23
2023-04-19T22:44:42.402755Z INFO {net="Main"}: zebrad::commands::start: initializing verifiers
2023-04-19T22:44:42.403198Z INFO {net="Main"}:init{config=Config { checkpoint_sync: true, debug_skip_parameter_preload: false } network=Mainnet debug_skip_parameter_preload=false}: zebra_consensus::primitives::groth16::params: checking and loading Zcash Sapling and Sprout parameters
2023-04-19T22:44:42.403222Z INFO {net="Main"}:crawl_and_dial{new_peer_interval=61s}: zebra_network::peer_set::initialize: starting the peer address crawler crawl_new_peer_interval=61s outbound_connections=23
2023-04-19T22:44:42.403271Z INFO {net="Main"}:init{config=Config { checkpoint_sync: true, debug_skip_parameter_preload: false } network=Mainnet debug_skip_parameter_preload=false}: zebra_consensus::chain: starting state checkpoint validation
2023-04-19T22:44:42.420234Z INFO {net="Main"}:init{config=Config { checkpoint_sync: true, debug_skip_parameter_preload: false } network=Mainnet debug_skip_parameter_preload=false}: zebra_consensus::chain: initializing chain verifier tip=None max_checkpoint_height=Height(2056451)
2023-04-19T22:44:42.420307Z INFO {net="Main"}: zebrad::commands::start: initializing syncer
2023-04-19T22:44:42.420325Z INFO {net="Main"}: zebrad::commands::start: initializing mempool
2023-04-19T22:44:42.420381Z INFO {net="Main"}: zebrad::commands::start: spawned initial Zebra tasks
2023-04-19T22:44:42.420411Z INFO {net="Main"}: zebra_state::config: checking for old database versions
2023-04-19T22:44:42.420488Z INFO {net="Main"}: zebrad::components::sync::gossip: initializing block gossip task
2023-04-19T22:44:42.420526Z INFO {net="Main"}:sync: zebrad::components::sync: starting genesis block download and verify
2023-04-19T22:44:42.420531Z INFO {net="Main"}: zebrad::components::mempool::queue_checker: initializing mempool queue checker task
2023-04-19T22:44:42.420554Z INFO {net="Main"}: zebrad::components::mempool::gossip: initializing transaction gossip task
2023-04-19T22:44:42.420561Z INFO {net="Main"}: zebrad::components::mempool::crawler: initializing mempool crawler task
2023-04-19T22:44:42.434696Z INFO {net="Main"}:init{config=Config { checkpoint_sync: true, debug_skip_parameter_preload: false } network=Mainnet debug_skip_parameter_preload=false}: zebra_consensus::chain: state is not fully synced yet, remaining checkpoints will be verified during syncing
2023-04-19T22:44:42.434863Z INFO {net="Main"}:init{config=Config { checkpoint_sync: true, debug_skip_parameter_preload: false } network=Mainnet debug_skip_parameter_preload=false}: zebra_consensus::chain: finished state checkpoint validation
2023-04-19T22:44:42.440136Z INFO {net="Main"}: zebrad::components::sync::progress: initial sync is waiting to download the genesis block sync_percent=0.000 % current_height=None
2023-04-19T22:44:42.493563Z INFO {net="Main"}: zebra_state::config: finished old database version cleanup task
2023-04-19T22:44:42.575026Z INFO {net="Main"}:sync:checkpoint: zebra_consensus::checkpoint: verified checkpoint range block_count=1 current_range=(Unbounded, Included(Height(0)))
2023-04-19T22:44:42.683680Z INFO {net="Main"}:sync:try_to_sync: zebrad::components::sync: starting sync, obtaining new tips state_tip=Some(Height(0))
2023-04-19T22:44:43.924467Z INFO {net="Main"}:init{config=Config { checkpoint_sync: true, debug_skip_parameter_preload: false } network=Mainnet debug_skip_parameter_preload=false}: zebra_consensus::primitives::groth16::params: Zcash Sapling and Sprout parameters downloaded and/or verified
2023-04-19T22:44:44.763301Z INFO {net="Main"}:sync:try_to_sync: zebrad::components::sync: extending tips tips.len=1 in_flight=499 extra_hashes=0 lookahead_limit=1000 state_tip=Some(Height(0))
2023-04-19T22:44:44.902478Z INFO {net="Main"}:sync:try_to_sync:obtain_tips:checkpoint: zebra_consensus::checkpoint: verified checkpoint range block_count=400 current_range=(Excluded(Height(0)), Included(Height(400)))
2023-04-19T22:44:46.754603Z INFO {net="Main"}:sync:try_to_sync:extend_tips:checkpoint: zebra_consensus::checkpoint: verified checkpoint range block_count=400 current_range=(Excluded(Height(400)), Included(Height(800)))
2023-04-19T22:44:47.023576Z INFO {net="Main"}:sync:try_to_sync: zebrad::components::sync: extending tips tips.len=1 in_flight=869 extra_hashes=0 lookahead_limit=1000 state_tip=Some(Height(800))
2023-04-19T22:44:47.441591Z INFO {net="Main"}: zebrad::components::sync::progress: estimated progress to chain tip sync_percent=0.039% current_height=Height(800) network_upgrade=BeforeOverwinter remaining_sync_blocks=2070157 time_since_last_state_block=0s
2023-04-19T22:44:48.908237Z INFO {net="Main"}:sync:try_to_sync:extend_tips:checkpoint: zebra_consensus::checkpoint: verified checkpoint range block_count=400 current_range=(Excluded(Height(800)), Included(Height(1200))) |
Versioning
How to Increment Versions
Zebra follows semantic versioning. Semantic versions look like: MAJOR
.
MINOR.
PATCH[-
TAG.
PRE-RELEASE]The draft
zebrad
changelog will have an automatic version bump. This version is based on the labels on the PRs in the release.Check that the automatic
zebrad
version increment is correct:If we're releasing a mainnet network upgrade, it is a
major
release:major
version of all the Zebra crates.patch
version of the tower crates.If we're not releasing a mainnet network upgrade, check for features, major changes, deprecations, and removals. If this release has any, it is a
minor
release:minor
version ofzebrad
.pre-release
version of the other crates.patch
version of the tower crates.Otherwise, it is a
patch
release:patch
version ofzebrad
.pre-release
version of the other crates.patch
version of the tower crates.Zebra's Rust API is not stable or supported, so we keep all the crates on the same beta
pre-release
version.Version Locations
Once you know which versions you want to increment, you can find them in the:
zebrad (rc):
Cargo.toml
zebra-network
protocol user agent: https://github.com/ZcashFoundation/zebra/blob/main/zebra-network/src/constants.rsREADME.md
book/src/user/docker.md
crates (beta):
Cargo.toml
stower (patch):
Cargo.toml
sauto-generated:
Cargo.lock
: runcargo build
after updating all theCargo.toml
sVersion Tooling
You can use
fastmod
to interactively find and replace versions.For example, you can do something like:
If you use
fastmod
, don't update versions inCHANGELOG.md
orzebra-dependencies-for-audit.md
.README
Update the README to:
Check for changes in the
Dockerfile
since the last tag:git diff <previous-release-tag> docker/Dockerfile
.Cargo.toml
sYou can use a command like:
Checkpoints
With every release and for performance reasons, we want to update the Zebra checkpoints. More information on how to do this can be found in the zebra-checkpoints README.
To do this you will need a synchronized
zcashd
node. You can request help from other zebra team members to submit this PR if you can't make it yourself at the moment of the release.Missed Dependency Updates
Sometimes
dependabot
misses some dependency updates, or we accidentally turned them off.Here's how we make sure we got everything:
cargo update
on the latestmain
branch, and keep the outputcargo update
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 into
CHANGELOG.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)Change Categories
From "Keep a Changelog":
Added
for new features.Changed
for changes in existing functionality.Deprecated
for soon-to-be removed features.Removed
for now removed features.Fixed
for any bug fixes.Security
in case of vulnerabilities.Create the Release
Create the Release PR
After you have the version increments, the updated checkpoints, any missed dependency updates,
and the updated changelog:
(for example:
bump-v1.0.0-rc.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.Create the Release
for example:
v1.0.0-rc.0
main
branchZebra
followed by the version tag,for example:
Zebra 1.0.0-rc.0
starting just after the title
## [Zebra ...
of the current version being released,and ending just before the title of the previous release.
Binary Testing
main
, and the quick tests have passed.(You can ignore the full sync and
lightwalletd
tests, because they take about a day to run.)docker run --tty --interactive zfnd/zebra:1.0.0-rc.<version>
,and put the output in a comment on the PR
batched
queue using Mergify.Blog Post
If the release contains new features (
major
orminor
), or high-priority bug fixes:Release Failures
If building or running fails after tagging:
CHANGELOG.md
with details about the fix