Commit Graph

54 Commits

Author SHA1 Message Date
Alfredo Garcia c76d1f5219
docs(release-checklist): add cargo update steps to task list (#6657)
* add cargo update steps to task list

* Fix a formatting issue in the checklist

* Apply suggestions from code review

Co-authored-by: teor <teor@riseup.net>

---------

Co-authored-by: teor <teor@riseup.net>
2023-05-14 03:27:24 +00:00
Alfredo Garcia 7c67512cd5
feat(zebra-network): add user agent argument (#6601)
* add user agent as argument, use git to auto build zebra user agent

* try to fix test

* fix typo

* change expect text

* remove newline

* fix some docs

Co-authored-by: Marek <mail@marek.onl>

---------

Co-authored-by: Marek <mail@marek.onl>
2023-05-05 00:29:14 +00:00
teor 937d704e69
change(ci): Generate testnet checkpoints in CI (#6581)
* Split checking for cached state disks into its own workflow

* Fix workflow field order

* Run the top-level workflow when the reusable workflow changes

* And run dependent workflows for pull requests as well

* Remove redundant output names

* Document the existing and new workflow jobs

* Add the network to the "no disk found" message

* Tweak existing docs and descriptions

* Generate Zebra checkpoints on testnet

* Add a full sync testnet entrypoint, and simplify mainnet env vars

* Only run the full testnet sync on the main branch

* Deduplicate and update the zebra-checkpoints docs

* Add instructions for automatic checkpoint generation

* Hide some details in the release checklist

* Update release checkpoint instructions to use CI

* Only update the cache in one job on mainnet
2023-05-03 23:14:22 +00:00
Alfredo Garcia 58bd898f5b
feat(zebrad): Refuse to run zebrad when release is too old (#6351)
* refuse to run Zebra if it is too old

* update the release checklist to consider the constants

* bring newline back

* apply new end of support code

* attempt to add tests (not working yet)

* move eos to progress task

* move tests

* add acceptance test (not working)

* fix tests

* change to block height checks (ugly code)

* change warn days

* refactor estimated blocks per day, etc

* move end of support code to its own task

* change test

* fix some docs

* move constants

* remove uneeded conversions

* downgrade tracing

* reduce end of support time, fix ci changing debugs to info again

* update instructions

* add failure messages

* cargo lock update

* unify releaase name constant

* change info msg

* clippy fixes

* add a block explorer

* ignore testnet in end of support task

* change panic to 16 weeks

* add some documentation about end of support

* Tweak docs wording

---------

Co-authored-by: teor <teor@riseup.net>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2023-04-28 14:13:21 +00:00
teor e831e1b0dd
Add arborist and comms summaries to the release checklist (#6565) 2023-04-25 20:44:10 +00:00
teor 7d13a67656
Use Mergify queue merges for releases (#6435) 2023-04-11 23:21:54 +00:00
teor 9a3c88c565
Add missing continuous deployment step to the release checklist (#6401) 2023-03-27 22:45:33 +00:00
teor 8cf62b4a17
change(deps): Update dependencies that only appear in the lock file (#6217)
* Manually update duplicate dependency exceptions

* Update the release checklist to check for missed dependency updates

* Fix a clippy "unused result" lint

* Run `cargo update`

Output:
```
$ cargo update
    Updating crates.io index
    Updating addr2line v0.17.0 -> v0.19.0
    Updating ahash v0.8.2 -> v0.8.3
    Updating aho-corasick v0.7.18 -> v0.7.20
    Updating anyhow v1.0.69 -> v1.0.70
    Updating arrayref v0.3.6 -> v0.3.7
    Updating async-stream v0.3.2 -> v0.3.4
    Updating async-stream-impl v0.3.2 -> v0.3.4
    Updating async-trait v0.1.52 -> v0.1.67
    Updating axum v0.5.17 -> v0.6.12
    Updating axum-core v0.2.9 -> v0.3.3
    Updating backtrace v0.3.64 -> v0.3.67
    Updating base64 v0.13.0 -> v0.13.1
    Updating bit-set v0.5.2 -> v0.5.3
    Removing block-buffer v0.7.3
    Removing block-buffer v0.10.2
      Adding block-buffer v0.10.4
    Removing block-padding v0.1.5
    Updating bls12_381 v0.7.0 -> v0.7.1
    Updating bstr v0.2.17 -> v1.4.0
    Updating byte-slice-cast v1.2.1 -> v1.2.2
    Removing byte-tools v0.3.1
    Updating bytemuck v1.8.0 -> v1.13.1
    Updating cc v1.0.73 -> v1.0.79
    Removing chunked_transfer v1.4.0
    Updating cipher v0.4.3 -> v0.4.4
    Updating clang-sys v1.3.1 -> v1.6.0
    Updating clap v3.2.20 -> v3.2.23
    Updating console v0.15.4 -> v0.15.5
    Updating constant_time_eq v0.2.4 -> v0.2.5
    Updating crossbeam-channel v0.5.4 -> v0.5.7
    Updating crossbeam-deque v0.8.1 -> v0.8.3
    Updating crossbeam-epoch v0.9.7 -> v0.9.14
    Updating crossbeam-utils v0.8.7 -> v0.8.15
      Adding cxx-build v1.0.93
    Updating cxx-gen v0.7.74 -> v0.7.93
    Updating darling v0.14.1 -> v0.14.4
    Updating darling_core v0.14.1 -> v0.14.4
    Updating darling_macro v0.14.1 -> v0.14.4
    Removing digest v0.8.1
    Removing digest v0.10.5
      Adding digest v0.10.6
    Updating dirs-sys v0.3.6 -> v0.3.7
    Updating either v1.6.1 -> v1.8.1
    Updating encoding_rs v0.8.30 -> v0.8.32
    Updating enum-iterator v1.2.0 -> v1.4.0
    Updating enum-iterator-derive v1.1.0 -> v1.2.0
    Updating eyre v0.6.7 -> v0.6.8
    Removing fake-simd v0.1.2
    Updating fastrand v1.7.0 -> v1.9.0
    Updating ff v0.12.0 -> v0.12.1
    Updating fixedbitset v0.4.1 -> v0.4.2
    Updating flate2 v1.0.22 -> v1.0.25
    Updating form_urlencoded v1.0.1 -> v1.1.0
    Removing generic-array v0.12.4
    Removing generic-array v0.14.5
      Adding generic-array v0.14.6
    Updating gimli v0.26.1 -> v0.27.2
    Updating glob v0.3.0 -> v0.3.1
    Updating globset v0.4.8 -> v0.4.10
    Updating h2 v0.3.11 -> v0.3.16
    Updating hashbrown v0.12.1 -> v0.12.3
    Updating hdrhistogram v7.5.0 -> v7.5.2
    Updating heck v0.4.0 -> v0.4.1
    Updating http v0.2.8 -> v0.2.9
    Removing http-range-header v0.3.0
    Updating hyper-rustls v0.23.0 -> v0.23.2
    Updating iana-time-zone v0.1.46 -> v0.1.54
      Adding iana-time-zone-haiku v0.1.1
    Updating idna v0.2.3 -> v0.3.0
    Updating io-lifetimes v1.0.4 -> v1.0.9
    Updating ipnet v2.4.0 -> v2.7.1
    Updating is-terminal v0.4.4 -> v0.4.5
    Updating itoa v1.0.4 -> v1.0.6
    Updating jobserver v0.1.24 -> v0.1.26
    Updating js-sys v0.3.59 -> v0.3.61
    Updating libc v0.2.139 -> v0.2.140
    Updating libloading v0.7.3 -> v0.7.4
    Updating libm v0.2.2 -> v0.2.6
    Updating libz-sys v1.1.4 -> v1.1.8
    Updating link-cplusplus v1.0.7 -> v1.0.8
    Updating lock_api v0.4.6 -> v0.4.9
    Removing maplit v1.0.2
    Removing matches v0.1.9
    Updating matchit v0.5.0 -> v0.7.0
    Updating memoffset v0.6.5 -> v0.8.0
    Updating mime v0.3.16 -> v0.3.17
    Updating miniz_oxide v0.4.4 -> v0.6.2
    Updating minreq v2.6.0 -> v2.7.0
    Updating mio v0.8.4 -> v0.8.6
    Updating net2 v0.2.37 -> v0.2.38
    Updating nom v7.1.0 -> v7.1.3
    Updating num-format v0.4.3 -> v0.4.4
    Updating num-traits v0.2.14 -> v0.2.15
    Updating object v0.27.1 -> v0.30.3
    Removing opaque-debug v0.2.3
    Updating openssl v0.10.38 -> v0.10.48
      Adding openssl-macros v0.1.0
    Updating openssl-sys v0.9.72 -> v0.9.83
    Updating os_info v3.5.1 -> v3.7.0
    Updating os_str_bytes v6.3.0 -> v6.5.0
    Updating parity-scale-codec v3.1.2 -> v3.4.0
    Updating parity-scale-codec-derive v3.1.2 -> v3.1.4
    Updating parking_lot v0.12.0 -> v0.12.1
    Removing parking_lot_core v0.8.5
    Removing parking_lot_core v0.9.1
      Adding parking_lot_core v0.8.6
      Adding parking_lot_core v0.9.7
    Updating pasta_curves v0.4.0 -> v0.4.1
    Updating percent-encoding v2.1.0 -> v2.2.0
    Updating pest v2.1.3 -> v2.5.6
    Updating pest_derive v2.1.0 -> v2.5.6
    Updating pest_generator v2.1.3 -> v2.5.6
    Updating pest_meta v2.1.3 -> v2.5.6
    Updating petgraph v0.6.0 -> v0.6.3
    Updating pkg-config v0.3.24 -> v0.3.26
    Updating plotters v0.3.1 -> v0.3.4
    Updating plotters-backend v0.3.2 -> v0.3.4
    Updating plotters-svg v0.3.1 -> v0.3.3
    Updating portable-atomic v0.3.15 -> v0.3.19
    Updating ppv-lite86 v0.2.16 -> v0.2.17
    Updating prettyplease v0.1.9 -> v0.1.25
    Updating proc-macro-crate v1.1.3 -> v1.3.1
    Updating proc-macro2 v1.0.52 -> v1.0.53
    Updating prost-build v0.11.1 -> v0.11.8
    Updating prost-types v0.11.1 -> v0.11.8
    Updating raw-cpuid v10.2.0 -> v10.7.0
    Updating redox_syscall v0.2.11 -> v0.2.16
    Updating redox_users v0.4.0 -> v0.4.3
    Updating rgb v0.8.32 -> v0.8.36
    Updating rustc-demangle v0.1.21 -> v0.1.22
    Updating rustix v0.36.7 -> v0.36.11
    Updating rustls v0.20.7 -> v0.20.8
    Updating rustls-pemfile v1.0.0 -> v1.0.2
    Updating rustversion v1.0.11 -> v1.0.12
    Updating ryu v1.0.9 -> v1.0.13
    Updating schannel v0.1.19 -> v0.1.21
      Adding scratch v1.0.5
    Updating security-framework v2.6.1 -> v2.8.2
    Updating security-framework-sys v2.6.1 -> v2.8.0
    Removing sha-1 v0.8.2
      Adding sha2 v0.10.6
    Updating signal-hook-registry v1.4.0 -> v1.4.1
    Updating similar v2.1.0 -> v2.2.1
    Updating slab v0.4.5 -> v0.4.8
    Updating socket2 v0.4.7 -> v0.4.9
    Removing syn v1.0.104
    Removing syn v2.0.3
      Adding syn v1.0.109
      Adding syn v2.0.8
    Updating sync_wrapper v0.1.1 -> v0.1.2
    Updating termcolor v1.1.3 -> v1.2.0
    Updating textwrap v0.15.0 -> v0.16.0
    Updating thread_local v1.1.4 -> v1.1.7
    Removing time v0.1.44
    Removing time v0.3.17
      Adding time v0.1.43
      Adding time v0.3.20
    Updating time-macros v0.2.6 -> v0.2.8
    Updating tinyvec_macros v0.1.0 -> v0.1.1
    Updating tokio-macros v1.7.0 -> v1.8.2
    Updating tokio-native-tls v0.3.0 -> v0.3.1
    Updating tokio-rustls v0.23.2 -> v0.23.4
    Updating tokio-util v0.6.9 -> v0.6.10
    Updating toml_edit v0.19.7 -> v0.19.8
    Updating tonic v0.8.2 -> v0.8.3
    Updating tonic-build v0.8.2 -> v0.8.4
    Removing tower-http v0.3.4
    Updating tower-layer v0.3.1 -> v0.3.2
    Updating tower-service v0.3.1 -> v0.3.2
    Updating try-lock v0.2.3 -> v0.2.4
    Updating typenum v1.15.0 -> v1.16.0
    Updating ucd-trie v0.1.3 -> v0.1.5
    Updating unicode-bidi v0.3.7 -> v0.3.13
    Updating unicode-ident v1.0.2 -> v1.0.8
    Updating unicode-normalization v0.1.19 -> v0.1.22
    Updating unicode-segmentation v1.9.0 -> v1.10.1
    Updating unicode-width v0.1.9 -> v0.1.10
    Updating unicode-xid v0.2.2 -> v0.2.4
    Updating ureq v2.5.0 -> v2.6.2
    Updating url v2.2.2 -> v2.3.1
    Updating uuid v1.1.0 -> v1.3.0
    Updating walkdir v2.3.2 -> v2.3.3
    Updating wasi v0.10.0+wasi-snapshot-preview1 -> v0.10.2+wasi-snapshot-preview1
    Updating wasm-bindgen v0.2.82 -> v0.2.84
    Updating wasm-bindgen-backend v0.2.82 -> v0.2.84
    Updating wasm-bindgen-futures v0.4.29 -> v0.4.34
    Updating wasm-bindgen-macro v0.2.82 -> v0.2.84
    Updating wasm-bindgen-macro-support v0.2.82 -> v0.2.84
    Updating wasm-bindgen-shared v0.2.82 -> v0.2.84
    Updating web-sys v0.3.56 -> v0.3.61
    Updating webpki-roots v0.22.5 -> v0.22.6
    Updating which v4.2.4 -> v4.4.0
      Adding windows v0.46.0
    Removing windows-sys v0.32.0
    Removing windows-sys v0.36.1
    Updating windows-targets v0.42.1 -> v0.42.2
    Updating windows_aarch64_gnullvm v0.42.1 -> v0.42.2
    Removing windows_aarch64_msvc v0.32.0
    Removing windows_aarch64_msvc v0.36.1
    Removing windows_aarch64_msvc v0.42.1
      Adding windows_aarch64_msvc v0.42.2
    Removing windows_i686_gnu v0.32.0
    Removing windows_i686_gnu v0.36.1
    Removing windows_i686_gnu v0.42.1
      Adding windows_i686_gnu v0.42.2
    Removing windows_i686_msvc v0.32.0
    Removing windows_i686_msvc v0.36.1
    Removing windows_i686_msvc v0.42.1
      Adding windows_i686_msvc v0.42.2
    Removing windows_x86_64_gnu v0.32.0
    Removing windows_x86_64_gnu v0.36.1
   Removing windows_x86_64_gnu v0.42.1
      Adding windows_x86_64_gnu v0.42.2
    Updating windows_x86_64_gnullvm v0.42.1 -> v0.42.2
    Removing windows_x86_64_msvc v0.32.0
    Removing windows_x86_64_msvc v0.36.1
    Removing windows_x86_64_msvc v0.42.1
      Adding windows_x86_64_msvc v0.42.2
    Updating winnow v0.3.6 -> v0.4.0
    Updating wyz v0.5.0 -> v0.5.1
    Updating zeroize_derive v1.3.2 -> v1.3.3
```

* Update deny.toml
2023-03-26 23:53:17 +00:00
teor 11baba56cb
Release Zebra 1.0.0-rc.3 (#5928)
* Changelog with trivial entries

* Delete trivial entries

* Summarise known issues in README, but don't change the list yet

* Add block timeouts to known issues

* Update the release template to add missing version files

* Bump crate versions

* Add the required Rust version to the release checklist

* Update the Rust version requirement to 1.65, Zebra now uses `let ... else ...`

* Update checkpoints

* Add checkpoints to the CHANGELOG

* Breaking Rust compiler version change

* Clarify the latest stable supported rust version
2023-01-10 03:48:03 +00:00
Deirdre Connolly 6ade4354be
docs(release): update GitHub release promoting language (#5810) 2022-12-08 01:35:18 +00:00
teor 54d2b74378
change(doc): Update release, ticket, and PR templates (#5793)
* Update release-checklist.md

* Add complex code or requirements to the PR template

* Add complex code and testing sections to the ticket template

Remove the design section, because we're not using it

* Merge freeze and merge PRs
2022-12-07 22:38:41 +00:00
teor 9b0de0aa19
Exclude zebra-dependencies-for-audit.md from release version updates (#5786) 2022-12-05 18:50:37 +00:00
teor 26d0455d02
fix(doc): Use a more reliable release template branch name and docker command (#5519)
* Fix the branch name in the release template

* Use a docker command with colour and Ctrl-C support

* Make branch name example more readable

* Fix a link typo

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-11-03 00:28:46 +00:00
Gustavo Valverde 4835970bb7
docs: add user documentation on how to use Zebra with docker (#5504)
* docs: add user documentation on how to use Zebra with docker

Motivation:

We don't have a user documentation on how to use/deploy Zebra using our
the Dockerfile available in our repository or were the images are being
hosted

Solution:

Add user documentation explaining how to pull the image from the Docker
Hub or how to build it locally. With extra information on which images
we're hosting and where we're hosting it

* docs(docker): use existing getting started header

* Update book/src/user/docker.md

Co-authored-by: Arya <aryasolhi@gmail.com>

* docs(docker): add build alternative instructions from Docker

* docs: add docker documentation to Rust doc sidebar

* docs: update checklist with docker user documentation

* Update README.md

Co-authored-by: teor <teor@riseup.net>

* Update new refs to rc.1

Co-authored-by: Arya <aryasolhi@gmail.com>
Co-authored-by: teor <teor@riseup.net>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-11-01 05:47:37 +00:00
Alfredo Garcia b66d81a9e4
docs(fix): remove task and change name suggestion in release template (#5514)
* fix name suggestion

* remove not needed task

the version in the book install.md was removed in https://github.com/ZcashFoundation/zebra/pull/5433
2022-10-31 22:29:26 +00:00
Arya a4cb835e12
Release Zebra 1.0.0-rc.0 (#5383)
* Increment Zebra versions

* Initial draft changelog

* Add blog post to the release checklist

* Say "user testing"

Co-authored-by: teor <teor@riseup.net>
2022-10-12 01:17:55 +00:00
teor fd63d33f11
change(doc): Update README and release checklist for the release candidate (#5314)
* Add a Docker run command to the README

* Update the README with some user-relevant release candidate goals

* Update the release template for the release candidate

* Fix beta crate explanation

* Be more specific about what "this PR" means

* Update docker command for latest tag changes

* Update README Docker command based on tag changes

* Make Zebra release versions more vague in README.md

Co-authored-by: Pili Guerra <mpguerra@users.noreply.github.com>

* Move build instructions to build section

Co-authored-by: Pili Guerra <mpguerra@users.noreply.github.com>

* Add newlines to separate heading and paragraphs

* Remove extra newline

* Add a note for a future command update

* Remove manual build check, it doesn't have tier 1 support

Co-authored-by: Pili Guerra <mpguerra@users.noreply.github.com>
2022-10-05 12:46:10 +00:00
teor 99bdc8d14c
doc(release): Update release template for Docker releases (#5193)
* Explain how to use the release template

I always have to look this up every time.

Also delete a long description of semantic versioning.

* Delete extra info that is already in the template elsewhere

* Explain how `Cargo.lock` gets updated

* Use a branch name that Google Cloud will accept

* Update release instructions for Docker binaries

* Add extra release testing steps

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Gustavo Valverde <gustavo@iterativo.do>
2022-09-27 21:53:00 +00:00
teor b0e60d7c11
change(release): Automatically split CHANGELOG entries into categories (#5203)
* Update release-drafter.yml

* Explain where we got the workflow from

* Automatically add "trivial" label to dependabot updates

* Add categories and auto-labels to release drafter

* Update release PR template for automatic release drafter versions

* Also strip PR series numbers and leading spaces from changelog entries

* Update release note version check

* Update label names

* Add missing ! in conventional commits regex

Co-authored-by: Marek <mail@marek.onl>

* Make versioning steps more specific

Co-authored-by: Marek <mail@marek.onl>

* Remove conflicting detailed versioning explanations

Co-authored-by: Marek <mail@marek.onl>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-09-27 12:41:55 +00:00
Marek 7f61c4c936
Make the release instructions more explicit (#5026) 2022-09-02 08:55:09 +00:00
Alfredo Garcia 21d3af4b8d
update release list with checkpoints bump (#4800) 2022-07-21 13:44:40 +10:00
teor a55262c3ac
Make the release checklist shorter and hide some details (#4712)
* Make the release checklist shorter and hide some details

* Ignore any `fastmod` updates to previous release notes in `CHANGELOG.md`

* Use recent versions in examples

* Fix markdown that doesn't render correctly

* Fix some weird line breaks

* Use capital letters to start list items

* Clarify `fastmod` and `CHANGELOG.md`

* Clarify version format by changing highlighting
2022-07-07 20:31:19 +00:00
Marek 64ac9e4cc2
Change the order of instructions for creating a release (#4595) 2022-06-13 21:26:58 +00:00
Marek e31449ecdd
Update `release-checklist.md` (#4568) 2022-06-04 00:59:42 +00:00
Conrado Gouvea bae470b5ba
change(doc): add item to release checklist to update dependencies in the README (#4449)
* change(doc): add item to release checklist to update dependencies in the README

* Update .github/PULL_REQUEST_TEMPLATE/release-checklist.md

Co-authored-by: Marek <mail@marek.onl>

Co-authored-by: Marek <mail@marek.onl>
2022-05-20 19:19:51 +00:00
teor 13c216cd3c
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
2022-04-05 18:06:46 +00:00
Conrado Gouvea e75fe2c42f
include listing not-mentioned PRs and not-bumped crates in the release checklist (#3621) 2022-02-23 18:18:30 +00:00
Conrado Gouvea 1cbc06aa64
Add install.md to checklist, update to use a single PR (#3282)
* Add updating install.md to checklist

* Change to use a single PR for version increment and changelog
2021-12-23 10:16:15 -03:00
Janito Vaqueiro Ferreira Filho b71833292d
Use `MockedClientHandle` in other tests (#3241)
* Move `MockedClientHandle` to `peer` module

It's more closely related to a `Client` than the `PeerSet`, and this
prepares it to be used by other tests.

* Rename `MockedClientHandle` to `ClientTestHarness`

Reduce confusion, and clarify that the client is not mocked.

Co-authored-by: teor <teor@riseup.net>

* Add clarification to `mock_peers` documentation

Explicitly say how the generated data is returned.

* Rename method to `wants_connection_heartbeats`

The `Client` service only represents one direction of a connection, so
`is_connected` is not the exact term.

Co-authored-by: teor <teor@riseup.net>

* Mock `Client` instead of `LoadTrackedClient`

Move where the conversion from mocked `Client` to mocked
`LoadTrackedClient` in order to make the test helper more easily used by
other tests.

* Use `ClientTestHarness` in `initialize` tests

Replace the boilerplate code to create a fake `Client` instance with
usages of the `ClientTestHarness` constructor.

* Allow receiving requests from `Client` instance

Create a helper type to wrap the result, to make it easier to assert on
specific events after trying to receive a request.

* Allow inspecting the current error in the slot

Share the `ErrorSlot` between the `Client` and the handle, so that the
handle can be used to inspect the contents of the `ErrorSlot`.

* Allow placing an error into the `ErrorSlot`

Assuming it is initially empty. If it already has an error, the code
will panic.

* Allow gracefully closing the request receiver

Close the endpoint with the appropriate call to the `close()` method.

* Allow dropping the request receiver endpoint

Forcefully closes the endpoint.

* Rename field to `client_request_receiver`

Also rename the related methods to include
`outbound_client_request_receiver` to make it more precise.

Co-authored-by: teor <teor@riseup.net>

* Allow dropping the heartbeat shutdown receiver

Allows the `Client` to detect that the channel has been closed.

* Rename fn. to `drop_heartbeat_shutdown_receiver`

Make it clear that it affects the heartbeat task.

Co-authored-by: teor <teor@riseup.net>

* Move `NowOrLater` into a new `now-or-later` crate

Make it easily accessible to other crates.

* Add `IsReady` extension trait for `Service`

Simplifies checking if a service is immediately ready to be called.

* Add extension method to check for readiness error

Checks if the `Service` isn't immediately ready because a call to
`ready` immediately returns an error.

* Rename method to `is_failed`

Avoid negated method names.

Co-authored-by: teor <teor@riseup.net>

* Add a `IsReady::is_pending` extension method

Checks if a `Service` is not ready to be called.

* Use `ClientTestHarness` in `Client` test vectors

Reduce repeated code and try to improve readability.

* Create a new `ClientTestHarnessBuilder` type

A builder to create test `Client` instances using mock data which can be
tracked and manipulated through a `ClientTestHarness`.

* Allow configuring the `Client`'s mocked version

Add a `with_version` builder method.

* Use `ClientTestHarnessBuilder` in `PeerVersions`

Use the builder to set the peer version, so that the `version` parameter
can be removed from the constructor later.

* Use a default mock version where possible

Reduce noise when setting up the harness for tests that don't really
care about the remote peer version.

* Remove `Version` parameter from the `build` method

The `with_version` builder method should be used instead.

* Fix some typos and outdated info in the release checklist

* Add extra client tests for zero and multiple readiness checks (#3273)

And document existing tests.

* Replace `NowOrLater` with `futures::poll!` (#3272)

* Replace NowOrLater with the futures::poll! macro in zebrad

* Replace NowOrLater with the futures::poll! macro in zebra-test

* Remove the now-or-later crate

* remove unused imports

* rustfmt

Co-authored-by: teor <teor@riseup.net>
Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2021-12-22 06:13:26 +10:00
teor 022808d028
Release Zebra v1.0.0-beta.2 (#3132)
Zebra's latest beta continues implementing zero-knowledge proof and note commitment tree validation. In this release, we have finished implementing transaction header, transaction amount, and Zebra-specific NU5 validation. (NU5 mainnet validation is waiting on an `orchard` crate update, and some consensus parameter updates.)

We also fix a number of security issues that could pose a local denial of service risk, or make it easier for an attacker to make a node follow a false chain.

As of this release, Zebra will automatically download and cache the Sprout and Sapling Groth16 circuit parameters. The cache uses around 1 GB of disk space. These cached parameters are shared across all Zebra and `zcashd` instances run by the same user.

See CHANGELOG.md for the full list of changes in this release.
2021-12-03 06:54:14 +10:00
Pili Guerra 989ba51cb9
Update release-checklist.md (#3001)
Include potential changes to the README in the release checklist

Co-authored-by: Conrado Gouvea <conrado@zfnd.org>
2021-11-02 15:36:47 +00:00
Marek ffa6fed7b3
Improve the template for release versioning (#2906)
* Specify the location of the user agent string

* Specify the `cargo install` command

* Fix a typo

Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
2021-10-20 18:02:07 +00:00
Alfredo Garcia ac76d35cbb
Make some small changes to release-checklist.md (#2671)
* Update release-checklist.md

* give all alternatives to check what changed

Co-authored-by: teor <teor@riseup.net>
2021-08-26 22:45:19 +00:00
Pili Guerra 515dc4bf5c
Update versions for Zebra v1.0.0 alpha.12 release (#2415)
* Update versions for zebra v1.0.0-alpha.12 release

* Update Cargo.lock

* Update release checklist with latest version changes to help keep track for future releases

* Remove reference to the fact that tower-fallback was not updated
2021-07-01 08:59:32 +01:00
Pili Guerra e87933e167
Add CHANGELOG.md file to the zebra git repo (#2346)
* Add new CHANGELOG.md file to zebra git repo

* Update Release Checklist to add updates to CHANGELOG.md

* Add some explanation about the CHANGELOG.md file

* Fix headings to make them consistent with Keep a changelog format

* Small fix for clarity

* Add release dates to changelog

* Change order of steps to update the changelog
2021-06-22 14:31:30 +01:00
teor 3d2fb1c13e
Update GitHub and RFC templates based on retrospectives (#2242)
Updates:
- GitHub Issue templates
- GitHub PR templates
- RFC template

Focusing on:
- consensus rule / network reference sections
- design sections
- review/test checklist

Process changes:
- add new team members to RFC approval
- change RFC approval to "most of the team"

And general cleanup:
- delete docs from the checklist, because we now `warn(missing_docs)`
- shorter explanations
- consistent headings
- consistent order
- consistent formatting
2021-06-04 14:40:53 +10:00
teor f8693ee004
Explain how to review version bump PRs (#2138) 2021-05-12 10:42:48 +02:00
Kirill Fomichev 43e792b9a4
Update to vergen 5, add branch, commit time, and build target to the panic metadata, automatically update app version from crate version (#2029)
* build(deps): bump vergen from 3.2.0 to 5.1.1

* fix hardcoded version for Tracing struct

* add additional metadata

* remove extra allocations for metadata

* Remove zebrad code version from release checklist

The zebrad code automatically uses the crate version now.

* Sort panic metadata into rough categories

Co-authored-by: teor <teor@riseup.net>
2021-04-20 06:48:14 +10:00
teor 8caf016ead Update RFC PR template for drafts 2021-03-30 18:22:03 -04:00
teor f6c56a0018 Avoid pinging old staff for RFCs 2021-03-30 10:39:08 -04:00
Deirdre Connolly 33e9efe2dd
Mention git diff --stat in release PR template (#1934) 2021-03-23 14:39:12 +10:00
teor c8b8a428c6 Revise release checklist to be more explicit 2021-03-17 22:23:41 -04:00
Alfredo Garcia b8742f03a9 add a note to save changelog locally 2021-03-17 22:23:41 -04:00
Deirdre Connolly 624bbf4b9a
Update release-checklist.md (#1810)
With edits from our recent release
2021-02-24 08:56:06 +10:00
teor d0632ea29b
Add md files to release checklist commands 2021-02-23 17:33:39 +10:00
teor 6badfe73ca
Add fastmod example to release checklist 2021-02-23 17:31:02 +10:00
teor a1c507240f
Fix a release-checklist.md typo 2021-02-23 11:47:02 +10:00
Deirdre Connolly d93804ebe7
Add draft PR template for release checklist (#1717)
* Add draft PR template for release checklist

* Add some notes about keepachangelog categories

* Add excessive detail to the release checklist

We want to be very clear about the process now,
so we get consistency, and so other developers
can follow it.

Eventually, these details should move to the
developer book.

* Add links for Release Drafter and the GitHub Releases location

Co-authored-by: teor <teor@riseup.net>
2021-02-10 10:56:58 +10:00
Alfredo Garcia c8e6f5843f
Update RFC template (#1278)
* update rfc template
* change pull to issues
2020-11-17 11:10:21 +10:00
teor a5a86622d4
Add team approval to the RFC pull request template (#1178) 2020-10-21 11:36:23 -07:00