From 13c216cd3c95d10cae4d2cdb31d3fe417b7a1032 Mon Sep 17 00:00:00 2001 From: teor Date: Wed, 6 Apr 2022 04:06:46 +1000 Subject: [PATCH] 1.0.0-beta.7 Release (#4039) * Update changelog for v1.0.0-beta.7 * Increment all crate versions * Remove redundant release test that is now covered by CI * Remove completed NU5 README check task from the release template * Add Merge Freeze tool to the release checklist * Simplify release checklist by removing unused steps --- .../release-checklist.md | 29 ++++------ CHANGELOG.md | 54 +++++++++++++++++++ Cargo.lock | 24 ++++----- README.md | 2 +- book/src/user/install.md | 2 +- tower-batch/Cargo.toml | 2 +- tower-fallback/Cargo.toml | 2 +- zebra-chain/Cargo.toml | 2 +- zebra-consensus/Cargo.toml | 2 +- zebra-network/Cargo.toml | 2 +- zebra-network/src/constants.rs | 2 +- zebra-node-services/Cargo.toml | 2 +- zebra-rpc/Cargo.toml | 2 +- zebra-script/Cargo.toml | 2 +- zebra-state/Cargo.toml | 2 +- zebra-test/Cargo.toml | 2 +- zebra-utils/Cargo.toml | 2 +- zebrad/Cargo.toml | 2 +- 18 files changed, 91 insertions(+), 46 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE/release-checklist.md b/.github/PULL_REQUEST_TEMPLATE/release-checklist.md index 6a5b1dae0..1ffbe0590 100644 --- a/.github/PULL_REQUEST_TEMPLATE/release-checklist.md +++ b/.github/PULL_REQUEST_TEMPLATE/release-checklist.md @@ -16,10 +16,6 @@ To check if any of the top-level crates need version increments, go to the zebra - [ ] Increment the crates that have new commits since the last version update - [ ] Increment any crates that depend on crates that have changed - [ ] Keep a list of the crates that haven't been incremented, to include in the PR -- [ ] Use the `zebrad` crate version in the `zebra-network` user agent string - (currently the constant `USER_AGENT` in `zebra-network/src/constants.rs`) -- [ ] Use the latest git tag in `README.md` -- [ ] Use the latest git tag in `book/src/user/install.md` ### How to Increment Versions @@ -33,10 +29,6 @@ Pre-Release versions have a `TAG` like "alpha" or "beta". For example: `1.0.0-al 1. Increment the `PRE-RELEASE` version for the crate. -Optionally, if a `MINOR` feature pre-release breaks `MAJOR` API compatibility: - -2. Increment the `MAJOR` version, and reset all the other versions to zero - #### Unstable Crates Unstable versions have a `MAJOR` version of zero. For example: `0.1.0` @@ -85,18 +77,12 @@ If any Zebra or Tower crates have commit messages that are **not** a version bum Also check for crates that depend on crates that have changed. They should get a version bump as well. -## Initial Testing - -- [ ] After any changes, test that the `cargo install` command in works. Use - e.g. `cargo install --locked --path zebrad`. - ## README As we resolve various outstanding known issues and implement new functionality with each release, we should double check the README for any necessary updates. We should check and update if necessary: -- [ ] The "Beta Release" section - [ ] The "Known Issues" section to ensure that any items that are resolved in the latest release are no longer listed in the README. @@ -127,9 +113,11 @@ From "Keep a Changelog": * `Fixed` for any bug fixes. * `Security` in case of vulnerabilities. -## Create the release PR +## Create the Release -After you have the version increments and the updated changelog, +### Create the Release PR + +After you have the version increments and the updated changelog: - [ ] Push the version increments and the updated changelog into a branch (name suggestion, example: `v1.0.0-alpha.0-release`) @@ -137,8 +125,10 @@ After you have the version increments and the updated changelog, comparing url ([Example](https://github.com/ZcashFoundation/zebra/compare/v1.0.0-alpha.0-release?expand=1&template=release-checklist.md)). - [ ] Add the list of deleted changelog entries as a comment to make reviewing easier. - [ ] Also add the list of not-bumped crates as a comment (can use the same comment as the previous one). -- [ ] While the PR is being reviewed, keep track of any PRs that have been merged - since you created the PR to update `CHANGELOG.md` and push any updates if necessary +- [ ] While the PR is being reviewed, turn on [Merge Freeze](https://www.mergefreeze.com/installations/3676/branches) to stop other PRs merging + +### Create the Release + - [ ] Once the release PR has been approved and merged, create a new release using the draft release as a base, by clicking the Edit icon in the [draft release](https://github.com/ZcashFoundation/zebra/releases). @@ -155,10 +145,11 @@ After you have the version increments and the updated changelog, - [ ] After tagging the release, test that the exact `cargo install` command in `README.md` works (`--git` behaves a bit differently to `--path`) +- [ ] Turn off [Merge Freeze](https://www.mergefreeze.com/installations/3676/branches) to start merging PRs again If the build fails after tagging: 1. fix the build -2. check if the fixes changed any extra crates, and do the required version increments +2. increment versions again, following these instructions from the start 3. update `README.md` with a **new** git tag 4. update `CHANGELOG.md` with details about the fix 5. tag a **new** release diff --git a/CHANGELOG.md b/CHANGELOG.md index 21f5f8530..d018e7f66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,60 @@ All notable changes to Zebra are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org). +## [Zebra 1.0.0-beta.7](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.7) - 2022-04-05 + +Zebra's latest beta fixes a `cargo install` build failure in the previous beta release. It also fixes a `lightwalletd` RPC bug, and improves test coverage. + +### Changed + +#### Database and State + +- Update database design to put ordered list values in RocksDB keys (#3997) +- Make transparent address index database design more consistent (#4019) + +#### CI + +- Do not invalidate cache between PRs (#3996) + +#### Dependency Updates + +- Bump hyper from 0.14.17 to 0.14.18 (#3946) +- Bump indexmap from 1.8.0 to 1.8.1 (#4003) +- Bump semver from 1.0.6 to 1.0.7 (#3982) +- Bump serde-big-array from 0.3.2 to 0.4.1 (#4004) + +##### Test Dependency Updates + +- Bump insta from 1.13.0 to 1.14.0 (#3980) +- Bump tokio-util from 0.7.0 to 0.7.1 (#3981) + +##### CI Dependency Updates + +- Bump tj-actions/changed-files from 18.4 to 18.6 (#4002) + +### Fixed + +#### Build + +- Fix a compilation error caused by a test-only method in production code (#4000) +- Add a job to ci.yml that does `cargo install --locked --path ./zebrad/ zebrad` (#3998) + +#### RPC + +- Tell `lightwalletd` to wait for missing blocks in the `getblock` RPC (#3977) + +#### State + +- Stop panicking when a state block commit fails (#4016) + +#### Logging + +- Log hashes as hex strings in block committment errors (#4021) + +#### Tests + +- Check for accidental database incompatibilities in cached state tests (#4020) + ## [Zebra 1.0.0-beta.6](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.6) - 2022-03-28 Zebra's latest beta adds RPC server support, including some of the RPC calls needed to become a **lightwalletd** back end. diff --git a/Cargo.lock b/Cargo.lock index 24805c628..f1d155e3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4840,7 +4840,7 @@ dependencies = [ [[package]] name = "tower-batch" -version = "0.2.22" +version = "0.2.23" dependencies = [ "color-eyre 0.6.1", "ed25519-zebra", @@ -4860,7 +4860,7 @@ dependencies = [ [[package]] name = "tower-fallback" -version = "0.2.18" +version = "0.2.19" dependencies = [ "futures-core", "pin-project 0.4.29", @@ -5602,7 +5602,7 @@ dependencies = [ [[package]] name = "zebra-chain" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "aes", "bech32", @@ -5661,7 +5661,7 @@ version = "1.0.0-beta.0" [[package]] name = "zebra-consensus" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "bellman", "blake2b_simd 1.0.0", @@ -5703,7 +5703,7 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "arti-client", "bitflags", @@ -5738,14 +5738,14 @@ dependencies = [ [[package]] name = "zebra-node-services" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "zebra-chain", ] [[package]] name = "zebra-rpc" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "chrono", "futures", @@ -5773,7 +5773,7 @@ dependencies = [ [[package]] name = "zebra-script" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "displaydoc", "hex", @@ -5786,7 +5786,7 @@ dependencies = [ [[package]] name = "zebra-state" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "bincode", "chrono", @@ -5821,7 +5821,7 @@ dependencies = [ [[package]] name = "zebra-test" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "color-eyre 0.5.11", "futures", @@ -5845,7 +5845,7 @@ dependencies = [ [[package]] name = "zebra-utils" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "color-eyre 0.6.1", "hex", @@ -5860,7 +5860,7 @@ dependencies = [ [[package]] name = "zebrad" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" dependencies = [ "abscissa_core", "atty", diff --git a/README.md b/README.md index 0f81863b3..641aa20d4 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ for your platform: 2. Install Zebra's build dependencies: - **libclang:** the `libclang`, `libclang-dev`, `llvm`, or `llvm-dev` packages, depending on your package manager - **clang** or another C++ compiler: `g++`, `Xcode`, or `MSVC` -3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.6 zebrad` +3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.7 zebrad` 4. Run `zebrad start` (see [Running Zebra](https://zebra.zfnd.org/user/run.html) for more information) If you're interested in testing out `zebrad` please feel free, but keep in mind diff --git a/book/src/user/install.md b/book/src/user/install.md index 7167ff86f..bad7e64f1 100644 --- a/book/src/user/install.md +++ b/book/src/user/install.md @@ -9,7 +9,7 @@ for your platform: 2. Install Zebra's build dependencies: - **libclang:** the `libclang`, `libclang-dev`, `llvm`, or `llvm-dev` packages, depending on your package manager - **clang** or another C++ compiler: `g++`, `Xcode`, or `MSVC` -3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.6 zebrad` +3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.7 zebrad` 4. Run `zebrad start` (see [Running Zebra](user/run.md) for more information) If you're interested in testing out `zebrad` please feel free, but keep in mind diff --git a/tower-batch/Cargo.toml b/tower-batch/Cargo.toml index 619342da7..1ab5f1f03 100644 --- a/tower-batch/Cargo.toml +++ b/tower-batch/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-batch" -version = "0.2.22" +version = "0.2.23" authors = ["Zcash Foundation "] license = "MIT" edition = "2021" diff --git a/tower-fallback/Cargo.toml b/tower-fallback/Cargo.toml index 070796df9..bee5001c4 100644 --- a/tower-fallback/Cargo.toml +++ b/tower-fallback/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-fallback" -version = "0.2.18" +version = "0.2.19" authors = ["Zcash Foundation "] license = "MIT" edition = "2021" diff --git a/zebra-chain/Cargo.toml b/zebra-chain/Cargo.toml index 610bb8424..26a2922a8 100644 --- a/zebra-chain/Cargo.toml +++ b/zebra-chain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-chain" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-consensus/Cargo.toml b/zebra-consensus/Cargo.toml index b8f3a612f..1fe02ed81 100644 --- a/zebra-consensus/Cargo.toml +++ b/zebra-consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-consensus" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-network/Cargo.toml b/zebra-network/Cargo.toml index b113e4b2e..4b91d29a0 100644 --- a/zebra-network/Cargo.toml +++ b/zebra-network/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-network" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-network/src/constants.rs b/zebra-network/src/constants.rs index e41d42178..c6cb4b7d5 100644 --- a/zebra-network/src/constants.rs +++ b/zebra-network/src/constants.rs @@ -231,7 +231,7 @@ pub const TIMESTAMP_TRUNCATION_SECONDS: u32 = 30 * 60; /// [BIP 14]: https://github.com/bitcoin/bips/blob/master/bip-0014.mediawiki // // TODO: generate this from crate metadata (#2375) -pub const USER_AGENT: &str = "/Zebra:1.0.0-beta.6/"; +pub const USER_AGENT: &str = "/Zebra:1.0.0-beta.7/"; /// The Zcash network protocol version implemented by this crate, and advertised /// during connection setup. diff --git a/zebra-node-services/Cargo.toml b/zebra-node-services/Cargo.toml index 6c715de78..b48207ae0 100644 --- a/zebra-node-services/Cargo.toml +++ b/zebra-node-services/Cargo.toml @@ -2,7 +2,7 @@ name = "zebra-node-services" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" edition = "2021" repository = "https://github.com/ZcashFoundation/zebra" diff --git a/zebra-rpc/Cargo.toml b/zebra-rpc/Cargo.toml index a35864a53..8226b0586 100644 --- a/zebra-rpc/Cargo.toml +++ b/zebra-rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-rpc" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-script/Cargo.toml b/zebra-script/Cargo.toml index 93559f9c6..d746a03ed 100644 --- a/zebra-script/Cargo.toml +++ b/zebra-script/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-script" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-state/Cargo.toml b/zebra-state/Cargo.toml index c10552e8b..df8ba0e95 100644 --- a/zebra-state/Cargo.toml +++ b/zebra-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-state" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-test/Cargo.toml b/zebra-test/Cargo.toml index c5eab5341..9da247809 100644 --- a/zebra-test/Cargo.toml +++ b/zebra-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-test" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-utils/Cargo.toml b/zebra-utils/Cargo.toml index 98c32c42d..693646413 100644 --- a/zebra-utils/Cargo.toml +++ b/zebra-utils/Cargo.toml @@ -2,7 +2,7 @@ name = "zebra-utils" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" edition = "2021" # Prevent accidental publication of this utility crate. publish = false diff --git a/zebrad/Cargo.toml b/zebrad/Cargo.toml index c77d8c017..2b0a3cadf 100644 --- a/zebrad/Cargo.toml +++ b/zebrad/Cargo.toml @@ -2,7 +2,7 @@ name = "zebrad" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" -version = "1.0.0-beta.6" +version = "1.0.0-beta.7" edition = "2021" repository = "https://github.com/ZcashFoundation/zebra" # make `cargo run` use `zebrad` by default