Skip to content
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

release(1.0.0-rc.1): bump versions and changelog for release #5513

Merged
merged 8 commits into from
Nov 1, 2022

Conversation

oxarbitrage
Copy link
Contributor

@oxarbitrage oxarbitrage commented Oct 31, 2022

Depends-On: #5512


name: Release Checklist Template
about: Checklist of versioning to create a taggable commit for Zebra
title: ''
labels:
assignees: ''


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:

  1. Increment the major version of all the Zebra crates.
  2. Increment the 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:

  1. Increment the minor version of zebrad.
  2. Increment the pre-release version of the other crates.
  3. Increment the patch version of the tower crates.

Otherwise, it is a patch release:

  1. Increment the patch version of zebrad.
  2. Increment the pre-release version of the other crates.
  3. Increment the 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):

crates (pre-release):

  • zebra-* Cargo.tomls

tower (patch):

  • tower-* Cargo.tomls

auto-generated:

  • Cargo.lock: run cargo build after updating all the Cargo.tomls

Version Tooling

You can use fastmod to interactively find and replace versions.

For example, you can do something like:

fastmod --extensions rs,toml,md --fixed-strings '1.0.0-rc.0' '1.0.0-rc.1' zebrad README.md book/src/user/install.md zebra-network/src/constants.rs
fastmod --extensions rs,toml,md --fixed-strings '1.0.0-beta.15' '1.0.0-beta.16' zebra-*
fastmod --extensions rs,toml,md --fixed-strings '0.2.30' '0.2.31' tower-batch tower-fallback

If you use fastmod, don't update versions in CHANGELOG.md.

README

Update the README to:

  • Remove any "Known Issues" that have been fixed
  • Update the "Build and Run Instructions" with any new dependencies.
    Check for changes in the Dockerfile since the last tag: git diff <previous-release-tag> docker/Dockerfile.

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.

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:

  • Copy the draft changelog into CHANGELOG.md
  • Delete any trivial changes. Keep the list of those, to include in the PR
  • Combine duplicate changes
  • Edit change descriptions so they are consistent, and make sense to non-developers
  • Check the category for each change
    • Prefer the "Fix" category if you're not sure

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 and the updated changelog:

  • Make sure the PR with the new checkpoint hashes is already merged, or make it part of the changelog PR
  • Push the version increments and the updated changelog into a branch
    (name suggestion, example: v100-rc0-release)
  • Create a release PR by adding &template=release-checklist.md to the
    comparing url (Example).
    • Add the list of deleted changelog entries as a comment to make reviewing easier.
  • Turn on Merge Freeze.
  • Once the PR is ready to be merged, unfreeze it here.
    Do not unfreeze the whole repository.

Create the Release

  • Once the PR has been merged, create a new release using the draft release as a base,
    by clicking the Edit icon in the draft release
  • Set the tag name to the version tag,
    for example: v1.0.0-rc.0
  • Set the release to target the main branch
  • Set the release title to Zebra followed by the version tag,
    for example: Zebra 1.0.0-rc.0
  • Replace the prepopulated draft changelog in the release description by the final
    changelog you created; starting just after the title ## [Zebra ... of
    the current version being released, and ending just before the title of
    the previous release.
  • Mark the release as 'pre-release', until it has been built and tested
  • Publish the pre-release to GitHub using "Publish Release"

Binary Testing

Blog Post

If the release contains new features (major or minor), or high-priority bug fixes:

  • Ask the team about doing a blog post

If building or running fails after tagging:

  1. Fix the bug that caused the failure
  2. Increment versions again, following these instructions from the start
  3. Update the code and documentation with a new git tag
  4. Update CHANGELOG.md with details about the fix
  5. Tag a new release

@github-actions github-actions bot added C-enhancement Category: This is an improvement C-trivial Category: A trivial change that is not worth mentioning in the CHANGELOG labels Oct 31, 2022
@codecov
Copy link

codecov bot commented Oct 31, 2022

Codecov Report

Merging #5513 (816cd52) into main (bbbd56d) will increase coverage by 0.06%.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5513      +/-   ##
==========================================
+ Coverage   79.19%   79.25%   +0.06%     
==========================================
  Files         305      305              
  Lines       37870    37870              
==========================================
+ Hits        29991    30014      +23     
+ Misses       7879     7856      -23     

@teor2345
Copy link
Contributor

teor2345 commented Nov 1, 2022

Here are the changelog entries I deleted:

  • add(doc): Add draft audit process, and update some support docs (#5433)
  • build(deps): Remove arrayvec and itoa from skip-tree (#5410)
  • build(deps): bump actions/github-script from 6.3.1 to 6.3.2 (#5387)
  • build(deps): bump actions/github-script from 6.3.2 to 6.3.3 (#5409)
  • build(deps): bump docker/build-push-action from 3.1.1 to 3.2.0 (#5389)
  • build(deps): bump docker/login-action from 2.0.0 to 2.1.0 (#5388)
  • build(deps): bump docker/metadata-action from 4.0.1 to 4.1.1 (#5417)
  • build(deps): bump futures from 0.3.24 to 0.3.25 (#5438)
  • build(deps): bump futures-core from 0.3.24 to 0.3.25 (#5440)
  • build(deps): bump futures-util from 0.3.24 to 0.3.25 (#5441)
  • build(deps): bump google-github-actions/auth from 0.8.1 to 0.8.2 (#5404)
  • build(deps): bump google-github-actions/auth from 0.8.2 to 0.8.3 (#5413)
  • build(deps): bump inferno from 0.11.10 to 0.11.11 (#5415)
  • build(deps): bump inferno from 0.11.11 to 0.11.12 (#5479)
  • build(deps): bump inferno from 0.11.9 to 0.11.10 (#5381)
  • build(deps): bump peaceiris/actions-mdbook from 1.1.14 to 1.2.0 (#5467)
  • build(deps): bump reviewdog/action-actionlint from 1.33.0 to 1.33.1 (#5478)
  • build(deps): bump serde from 1.0.145 to 1.0.147 (#5459)
  • build(deps): bump serde_json from 1.0.85 to 1.0.86 (#5369)
  • build(deps): bump serde_json from 1.0.86 to 1.0.87 (#5437)
  • build(deps): bump tj-actions/changed-files from 32.0.0 to 32.1.0 (#5403)
  • build(deps): bump tj-actions/changed-files from 32.1.0 to 32.1.2 (#5414)
  • build(deps): bump tj-actions/changed-files from 32.1.2 to 33.0.0 (#5457)
  • build(deps): bump tj-actions/changed-files from 33.0.0 to 34.0.0 (#5483)
  • build(deps): bump tokio-stream from 0.1.10 to 0.1.11 (#5380)
  • build(deps): bump tracing from 0.1.36 to 0.1.37 (#5363)
  • build(deps): bump tracing-subscriber from 0.3.15 to 0.3.16 (#5364)
  • change(ci): Add patch jobs for lightwalletd build and getblocktemplate-rpcs tests (#5474)
  • change(ci): only run the send transaction test on the main branch (#5480)
  • change(doc): Refactor README.md (#5443)
  • change(state): Add block channel metrics, in preparation for block fork metrics (#5327)
  • chore(clippy): Fix clippy cast and closure warnings (#5378)
  • ci(disk): use an official GCP image on CI VMs for disk auto-resizing, make CI & CD disks 300GB (#5371)
  • ci(getblocktemplate): run getblocktemplate-rpcs feature tests in CI (#5435)
  • ci(sync): increase the height of blocks for some full sync jobs (#5391)
  • ci(sync): only run the lightwalletd full sync on the main branch (#5393)
  • fix(ci): Use correct lwd full sync patch job name (#5448)
  • fix(doc): resolve some doc warnings about unquoted HTML tags (#5477)
  • fix(sync): Make timeouts shorter to reduce full sync times (#5397)
  • fix(test): resolve a timing issue in fake_peer_set setup (#5398)
  • refactor(config): Move configs to components (#5460)
  • suggestions for list of dependencies (#5471)

@teor2345
Copy link
Contributor

teor2345 commented Nov 1, 2022

I created a draft changelog, but I haven't turned on merge freeze get, because I'm waiting for these PRs to merge:

All other open PRs are trivial, or covered by existing changelog entries.

CHANGELOG.md Outdated Show resolved Hide resolved
@oxarbitrage oxarbitrage marked this pull request as ready for review November 1, 2022 13:14
@oxarbitrage oxarbitrage requested review from a team as code owners November 1, 2022 13:14
@oxarbitrage oxarbitrage requested review from arya2 and teor2345 and removed request for a team November 1, 2022 13:14
@dconnolly
Copy link
Contributor

I created a draft changelog, but I haven't turned on merge freeze get, because I'm waiting for these PRs to merge:

All other open PRs are trivial, or covered by existing changelog entries.

Those have merged now

Copy link
Contributor

@dconnolly dconnolly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💃

@teor2345
Copy link
Contributor

teor2345 commented Nov 1, 2022

It looks like compiling Zebra fills up the disk:

Error: could not compile zebra-consensus
Caused by:
No space left on device (os error 28)

https://github.com/ZcashFoundation/zebra/actions/runs/3369663928/jobs/5595414803#step:15:468

I'll try deleting the caches for this branch. If that doesn't work, we might need to split the getblocktemplate-rpcs build into another job, and only read the cache for that job (but don't update it).

@teor2345
Copy link
Contributor

teor2345 commented Nov 1, 2022

It seems like clearing the caches worked, so this should merge in the next few hours.

@oxarbitrage I'm happy to tag the release if you're not around.

@oxarbitrage
Copy link
Contributor Author

how can others clear the caches in the future ?

@teor2345
Copy link
Contributor

teor2345 commented Nov 1, 2022

how can others clear the caches in the future ?

Follow these instructions, the part that starts "If the GitHub Actions disks are full":
https://github.com/ZcashFoundation/zebra/blob/main/book/src/dev/continuous-integration.md#fixing-disk-full-errors-and-zcash-parameter-errors

@oxarbitrage
Copy link
Contributor Author

It seems like clearing the caches worked, so this should merge in the next few hours.

@oxarbitrage I'm happy to tag the release if you're not around.

Yea, that will be good, appreciated.

@mergify mergify bot merged commit 79419b6 into main Nov 1, 2022
@mergify mergify bot deleted the 1.0.0-rc.1 branch November 1, 2022 22:35
@teor2345
Copy link
Contributor

teor2345 commented Nov 1, 2022

The docker image seems to work:

$ docker run zfnd/zebra:1.0.0-rc.1                                                                                                                                          
Unable to find image 'zfnd/zebra:1.0.0-rc.1' locally                                                                                                                                           1.0.0-rc.1: Pulling from zfnd/zebra                                                                                                                                                            
e9995326b091: Pull complete                                                                                                                                                                    995a48cf73e7: Pull complete                                                                                                                                                                    
c3b3e34f4187: Pull complete                                                                                                                                                                    3ea8303bf595: Pull complete                                                                                                                                                                    
b1ce37d9a288: Pull complete
809de49462c3: Pull complete                                                                                                                                                           [51/1871]Digest: sha256:5f910e9008f8393100298e40fa89b3da173337afffeaad67d36dad37da59fd8c
Status: Downloaded newer image for zfnd/zebra:1.0.0-rc.1
[sentry] initialized disabled sentry client due to disabled or invalid DSN
2022-11-01T23:53:18.134528Z  INFO zebrad::components::tracing::component: started tracing component filter="info" TRACING_STATIC_MAX_LEVEL=LevelFilter::INFO LOG_STATIC_MAX_LEVEL=Info
2022-11-01T23:53:18.134652Z  INFO zebrad::components::tracing::component: installed sentry tracing layer
2022-11-01T23:53:18.134658Z  INFO zebrad::application: Diagnostic Metadata:
version: 1.0.0-rc.1
Zcash network: Mainnet
state version: 25
target triple: x86_64-unknown-linux-gnu
build profile: release
2022-11-01T23:53:18.134775Z  INFO {net="Main"}: zebrad::application: initialized rayon thread pool for CPU-bound tasks num_threads=36
2022-11-01T23:53:18.136031Z  INFO {net="Main"}: zebrad::commands::start: Starting zebrad
2022-11-01T23:53:18.136902Z  INFO {net="Main"}: zebrad::commands::start: config=ZebradConfig { consensus: Config { checkpoint_sync: true, debug_skip_parameter_preload: false }, metrics: Confi
g { endpoint_addr: None }, network: Config { listen_addr: 0.0.0.0:8233, network: Mainnet, initial_mainnet_peers: {"dnsseed.z.cash:8233", "dnsseed.str4d.xyz:8233", "mainnet.seeder.zfnd.org:823
3", "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, cr
awl_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_u
se_color: false, filter: None, buffer_limit: 128000, endpoint_addr: None, flamegraph: None, use_journald: false }, sync: Config { download_concurrency_limit: 50, checkpoint_verify_concurrency
_limit: 800, 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 } }
2022-11-01T23:53:18.137358Z  INFO {net="Main"}: zebrad::commands::start: initializing node state
2022-11-01T23:53:18.143473Z  INFO {net="Main"}: zebrad::commands::start: opening database, this may take a few minutes
2022-11-01T23:53:18.145322Z  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
2022-11-01T23:53:18.226760Z  INFO zebra_state::service::finalized_state::disk_db: Opened Zebra state cache at /zebrad-cache/state/v25/mainnet
2022-11-01T23:53:18.227300Z  INFO zebra_state::service::finalized_state: loaded Zebra state cache tip=None
2022-11-01T23:53:18.227525Z  INFO zebra_state::service: created new read-only state service
2022-11-01T23:53:18.227531Z  INFO zebra_state::service: starting legacy chain check
2022-11-01T23:53:18.227544Z  INFO zebra_state::service: cached state consensus branch is valid: no legacy chain found
2022-11-01T23:53:18.227655Z  INFO {net="Main"}: zebrad::commands::start: initializing network
2022-11-01T23:53:18.227730Z  INFO {net="Main"}:open_listener{addr=0.0.0.0:8233}: zebra_network::peer_set::initialize: Trying to open Zcash protocol endpoint at 0.0.0.0:8233...
2022-11-01T23:53:18.227782Z  INFO {net="Main"}:open_listener{addr=0.0.0.0:8233}: zebra_network::peer_set::initialize: Opened Zcash protocol endpoint at 0.0.0.0:8233
2022-11-01T23:53:18.227870Z  INFO {net="Main"}: zebra_network::address_book_updater: starting the address book updater
2022-11-01T23:53:18.285657Z  INFO {net="Main"}:add_initial_peers: zebra_network::config: resolved seed peer IP addresses seed="mainnet.is.yolo.money:8233" remote_ip_count=4
2022-11-01T23:53:18.342004Z  INFO {net="Main"}:add_initial_peers: zebra_network::config: resolved seed peer IP addresses seed="dnsseed.str4d.xyz:8233" remote_ip_count=33
2022-11-01T23:53:18.469396Z  INFO {net="Main"}:add_initial_peers: zebra_network::config: resolved seed peer IP addresses seed="dnsseed.z.cash:8233" remote_ip_count=25
2022-11-01T23:53:23.229422Z  INFO {net="Main"}:add_initial_peers: zebra_network::config: DNS timeout resolving peer IP addresses host="mainnet.seeder.zfnd.org:8233" e=Elapsed(())
2022-11-01T23:53:23.229753Z  INFO {net="Main"}:add_initial_peers: zebra_network::config: Retrying peer DNS resolution host="mainnet.seeder.zfnd.org:8233" retry_count=1
2022-11-01T23:53:28.230430Z  INFO {net="Main"}:add_initial_peers: zebra_network::peer_set::initialize: limiting the initial peers list from 58 to 25
2022-11-01T23:53:28.231759Z  INFO {net="Main"}:add_initial_peers: zebra_network::peer_set::initialize: connecting to initial peer set initial_peer_count=25 initial_peers={13.231.190.41:8233, 162.19.139.181:8233, 51.79.229.21:8233, 8.135.7.215:8233, [2a01:4f8:b0:920a::5502]:8233, 8.218.10.114:8233, 135.181.18.180:8233, 18.117.156.161:8233, 47.90.209.31:8233, [2a01:4f9:c010:31a6::1]:8233, [2a01:4f9:4b:42cb::2]:8233, [2001:41d0:700:223b::]:8233, [2001:41d0:303:a313::]:8233, 161.97.155.203:8233, 65.108.220.35:8233, [2a04:52c0:101:748::]:8233, 3.72.134.66:8233, 34.196.173.50:8233, 128.199.110.49:8233, 78.46.46.252:8233, 15.235.85.30:8233, 157.245.172.190:8233, 46.4.67.239:8233, 51.77.64.51:8233, 120.24.79.67:8233}
2022-11-01T23:53:31.660094Z  INFO {net="Main"}:add_initial_peers: zebra_network::peer_set::initialize: an initial peer connection failed successes=18 errors=7 addr=34.196.173.50:8233 e=request timed out
2022-11-01T23:53:31.660178Z  INFO {net="Main"}:add_initial_peers: zebra_network::peer_set::initialize: finished connecting to initial seed peers handshake_success_total=18 handshake_error_total=7 outbound_connections=19
2022-11-01T23:53:31.660671Z  INFO {net="Main"}: zebra_network::peer_set::initialize: sending initial request for peers active_initial_peer_count=19
2022-11-01T23:53:31.661844Z  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=19
2022-11-01T23:53:31.661934Z  INFO {net="Main"}: zebrad::commands::start: initializing verifiers
2022-11-01T23:53:31.662750Z  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
2022-11-01T23:53:31.666562Z  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(1862281)
2022-11-01T23:53:31.666705Z  INFO {net="Main"}: zebrad::commands::start: initializing syncer
2022-11-01T23:53:31.666887Z  INFO {net="Main"}: zebrad::commands::start: initializing mempool
2022-11-01T23:53:31.666976Z  INFO {net="Main"}: zebrad::commands::start: spawned initial Zebra tasks
2022-11-01T23:53:31.666994Z  INFO {net="Main"}: zebra_state::config: checking for old database versions
2022-11-01T23:53:31.667076Z  INFO {net="Main"}: zebra_state::config: finished old database version cleanup task
2022-11-01T23:53:31.667697Z  INFO {net="Main"}: zebrad::components::mempool::crawler: initializing mempool crawler task
2022-11-01T23:53:31.667705Z  INFO {net="Main"}: zebrad::components::sync::gossip: initializing block gossip task
2022-11-01T23:53:31.667722Z  INFO {net="Main"}: zebrad::components::mempool::queue_checker: initializing mempool queue checker task
2022-11-01T23:53:31.667743Z  INFO {net="Main"}: zebrad::components::mempool::gossip: initializing transaction gossip task
2022-11-01T23:53:31.668246Z  INFO {net="Main"}:sync: zebrad::components::sync: starting genesis block download and verify
2022-11-01T23:53:31.672144Z  INFO {net="Main"}: zebrad::components::sync::progress: initial sync is waiting to download the genesis block sync_percent=0.000 % current_height=None
2022-11-01T23:53:32.064223Z  INFO {net="Main"}:sync:checkpoint: zebra_consensus::checkpoint: verified checkpoint range block_count=1 current_range=(Unbounded, Included(Height(0)))
2022-11-01T23:53:32.163710Z  INFO {net="Main"}:sync:try_to_sync: zebrad::components::sync: starting sync, obtaining new tips state_tip=Some(Height(0))
2022-11-01T23:53:32.769580Z  INFO {net="Main"}:init{config=Config { checkpoint_sync: true, debug_skip_parameter_preload: false } network=Mainnet debug_skip_parameter_preload=false}: zebra_consensus::chain: Groth16 pre-download and check task finished
2022-11-01T23:53:38.255749Z  INFO {net="Main"}:sync:try_to_sync: zebrad::components::sync: extending tips tips.len=1 in_flight=499 extra_hashes=0 lookahead_limit=800 state_tip=Some(Height(0))
2022-11-01T23:53:46.538164Z  INFO {net="Main"}:sync:try_to_sync:obtain_tips:checkpoint: zebra_consensus::checkpoint: verified checkpoint range block_count=800 current_range=(Excluded(Height(0)), Included(Height(800)))
2022-11-01T23:53:46.631113Z  INFO {net="Main"}:sync:try_to_sync: zebrad::components::sync: extending tips tips.len=1 in_flight=799 extra_hashes=0 lookahead_limit=800 state_tip=Some(Height(200))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement Category: This is an improvement C-trivial Category: A trivial change that is not worth mentioning in the CHANGELOG
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants