diff --git a/.github/PULL_REQUEST_TEMPLATE/release-checklist.md b/.github/PULL_REQUEST_TEMPLATE/release-checklist.md index 6a5b1dae..1ffbe059 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 21f5f853..d018e7f6 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 24805c62..f1d155e3 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 0f81863b..641aa20d 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 7167ff86..bad7e64f 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 619342da..1ab5f1f0 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 070796df..bee5001c 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 610bb842..26a2922a 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 b8f3a612..1fe02ed8 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 b113e4b2..4b91d29a 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 e41d4217..c6cb4b7d 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 6c715de7..b48207ae 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 a35864a5..8226b058 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 93559f9c..d746a03e 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 c10552e8..df8ba0e9 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 c5eab534..9da24780 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 98c32c42..69364641 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 c77d8c01..2b0a3cad 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