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

v0.1.13 release #91

Merged
merged 11 commits into from
Jul 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 9 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased] - ReleaseDate

## [0.1.12] - 2023-05-07
## [0.1.13] - 2023-07-05

## [0.1.13] - 2023-06-29

### Changed
- Update `depend/zcash` to version 5.6.1 which includes updated dependencies
- Update other dependencies to match Zebra

## [0.1.12] - 2023-05-03

Expand Down Expand Up @@ -83,7 +89,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Updated `bindgen` to a non yanked version

<!-- next-url -->
[Unreleased]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.12...HEAD
[Unreleased]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.13...HEAD
[0.1.13]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.12...v0.1.13
[0.1.12]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.11...v0.1.12
[0.1.11]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.10...v0.1.11
[0.1.10]: https://github.com/ZcashFoundation/zcash_script/compare/v0.1.9...v0.1.10
Expand Down
23 changes: 14 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "zcash_script"
version = "0.1.12"
version = "0.1.13"
authors = ["Tamas Blummer <tamas.blummer@gmail.com>", "Zcash Foundation <zebra@zfnd.org>"]
license = "Apache-2.0"
readme = "README.md"
Expand Down Expand Up @@ -38,6 +38,7 @@ include = [
"/depend/zcash/src/support/cleanse.cpp",
"/depend/zcash/src/support/cleanse.h",
"/depend/zcash/src/rust/gen/",
"/depend/expected/include/",
]

[lib]
Expand All @@ -55,23 +56,25 @@ blake2b_simd = "1"
bls12_381 = "0.8"
byteorder = "1"
crossbeam-channel = "0.5"
cxx = { version = "=1.0.94", features = ["c++17"] }
cxx = { version = "=1.0.95", features = ["c++17"] }
group = "0.13"
incrementalmerkletree = "0.3"
incrementalmerkletree = "0.4"
jubjub = "0.10"
libc = "0.2"
memuse = "0.2"
metrics = "0.20"
orchard = "0.4"
metrics = "0.21"
orchard = "0.5"
rand_core = "0.6"
rayon = "1.5"
subtle = "2.2"
tracing = "0.1"
zcash_address = "0.2"
zcash_address = "0.3"
zcash_encoding = "0.2"
zcash_note_encryption = "0.3"
zcash_primitives = { version = "0.11", features = ["temporary-zcashd", "transparent-inputs"] }
zcash_proofs = "0.11"
zcash_note_encryption = "0.4"
zcash_primitives = { version = "0.12", features = ["temporary-zcashd", "transparent-inputs"] }
zcash_proofs = "0.12"
bridgetree = "0.3"
rand = "0.8"

[build-dependencies]
# The `bindgen` dependency should automatically upgrade to match the version used by zebra-state's `rocksdb` dependency in:
Expand All @@ -95,6 +98,8 @@ syn = { version = "1.0.109", features = ["full", "printing"] }
# Treat minor versions with a zero major version as compatible (cargo doesn't by default).
hex = ">= 0.4.3"
lazy_static = "1.4.0"
incrementalmerkletree = { version = "0.4", features = ["test-dependencies"] }
zcash_primitives = { version = "0.12", features = ["temporary-zcashd", "transparent-inputs", "test-dependencies"] }

[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
Expand Down
29 changes: 25 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,18 @@ to include a lot of other stuff e.g. the orchard library.

### Updating this crate


1. Create a new branch batch so all the release commits can be made into a PR
2. Update `depend/zcash` with the latest tagged version of `zcashd`, using the instructions below
3. Update `Cargo.toml` versions to match the versions used by the latest tagged version of `zcashd`, and its dependencies
4. For dependencies that are shared with Zebra (but not `zcashd`), match the latest version in Zebra's [Cargo.lock](https://github.com/ZcashFoundation/zebra/blob/main/Cargo.lock):
- use `cargo tree --invert <crate>` to see if the crate is from `zcash_script` or another dependency
- see the list in [Cargo.toml](https://github.com/ZcashFoundation/zcash_script/blob/master/Cargo.toml#L69)
5. For new dependencies with a leading zero in their version (`0.x.y`), use a `>=` dependency [to make them automatically upgrade to match Zebra's dependencies](https://doc.rust-lang.org/cargo/reference/resolver.html#semver-compatibility)
6. Check all open PRs to see if they can be merged before the release
7. Do the release, following the instructions below
8. Check the release tag was pushed to https://github.com/ZcashFoundation/zcash_script/tags
6. Test if everything works by running `cargo test`. If you get any compiling errors, see
the troubleshooting section below.
7. Check all open PRs to see if they can be merged before the release
8. Do the release, following the instructions below
9. Check the release tag was pushed to https://github.com/ZcashFoundation/zcash_script/tags

### Updating `depend/zcash`

Expand Down Expand Up @@ -85,3 +86,23 @@ Releases for `zcash-script` are made with the help of [cargo release](https://gi
4. Publish a new release using `cargo release --execute <level>`

**NOTE**: It's important to specify the level when using cargo release because of the way it implements the substitutions. We specify a number of automatic substitutions in `Cargo.toml` but they will only be applied if `cargo release` also handles incrementing the version itself, **do not increment the version by hand and then run `cargo release` or `cargo release -- release`, or it will not correctly update all version references in the codebase.**


### Troubleshooting

#### "undefined reference to `name`"

This likely means that a `.c` file is not being included in `build.rs`.
Search for `name` in the zcashd source tree to find which file contains it,
and add it to a `file()` call inside `build.rs`.

#### "fatal error: `file`: No such file or directory"

This likely means that a `.h` file is not being found.
Seach for a file with the given name and add its folder to a `.include()`
call in `build.rs`. If the file does not exist there it's likely from
a 3rd-party dependency that is downloaded at build time. Search for
the file name on some search engine to attempt to find what project
it belongs to, cross-referencing the `depends/packages` folder
in `zcashd`. Then you may need to copy those files to a folder
inside `zcash_script` like we did in `depend/expected`.
3 changes: 3 additions & 0 deletions build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ fn main() -> Result<()> {
.include("depend/zcash/src/")
.include("depend/zcash/src/rust/include/")
.include("depend/zcash/src/secp256k1/include/")
.include("depend/expected/include/")
.include(&gen_path.join("include"))
.flag_if_supported("-Wno-implicit-fallthrough")
.flag_if_supported("-Wno-catch-value")
Expand Down Expand Up @@ -226,6 +227,8 @@ fn build_secp256k1() {

build
.file("depend/zcash/src/secp256k1/src/secp256k1.c")
.file("depend/zcash/src/secp256k1/src/precomputed_ecmult.c")
.file("depend/zcash/src/secp256k1/src/precomputed_ecmult_gen.c")
.compile("libsecp256k1.a");
}

Expand Down
Loading
Loading