change(release): Make the latest tag point to the production build, rather than the build with experimental features (#7817)
* Remove DockerHub tags for v1.x.y and edge * Make the latest tag point to the production image, not experimental * Remove docker image file change trigger from the OS CI workflow * Disable latest tag by default * Enable the latest tag for the production build only * Restore `edge` tag, it is used in CI and it is CI only * Add Docker tag removal to CHANGELOG.md * Actually enforce job order * Revert tag publishing changes, but keep extra docs and tag order changes * Update the changelog
This commit is contained in:
parent
828c2aea57
commit
a1e476ec61
|
@ -51,7 +51,6 @@ on:
|
||||||
- '**/clippy.toml'
|
- '**/clippy.toml'
|
||||||
# workflow definitions
|
# workflow definitions
|
||||||
- '.github/workflows/ci-unit-tests-os.yml'
|
- '.github/workflows/ci-unit-tests-os.yml'
|
||||||
- '.github/workflows/sub-build-docker-image.yml'
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
CARGO_INCREMENTAL: ${{ vars.CARGO_INCREMENTAL }}
|
CARGO_INCREMENTAL: ${{ vars.CARGO_INCREMENTAL }}
|
||||||
|
|
|
@ -18,19 +18,6 @@ jobs:
|
||||||
# Each time this workflow is executed, a build will be triggered to create a new image
|
# Each time this workflow is executed, a build will be triggered to create a new image
|
||||||
# with the corresponding tags using information from git
|
# with the corresponding tags using information from git
|
||||||
|
|
||||||
# The image will be named `zebra:<semver>`
|
|
||||||
build:
|
|
||||||
name: Build Release Docker
|
|
||||||
uses: ./.github/workflows/sub-build-docker-image.yml
|
|
||||||
with:
|
|
||||||
dockerfile_path: ./docker/Dockerfile
|
|
||||||
dockerfile_target: runtime
|
|
||||||
image_name: zebra
|
|
||||||
features: ${{ vars.RUST_PROD_FEATURES }}
|
|
||||||
rust_log: ${{ vars.RUST_LOG }}
|
|
||||||
# This step needs access to Docker Hub secrets to run successfully
|
|
||||||
secrets: inherit
|
|
||||||
|
|
||||||
# The image will be named `zebra:<semver>.experimental`
|
# The image will be named `zebra:<semver>.experimental`
|
||||||
build-experimental:
|
build-experimental:
|
||||||
name: Build Experimental Features Release Docker
|
name: Build Experimental Features Release Docker
|
||||||
|
@ -45,6 +32,24 @@ jobs:
|
||||||
# This step needs access to Docker Hub secrets to run successfully
|
# This step needs access to Docker Hub secrets to run successfully
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
|
|
||||||
|
# The image will be named `zebra:<semver>`
|
||||||
|
# It should be built last, so tags with the same name point to the production build, not the experimental build.
|
||||||
|
build:
|
||||||
|
name: Build Release Docker
|
||||||
|
# Run this build last, regardless of whether experimental worked
|
||||||
|
needs: build-experimental
|
||||||
|
if: always()
|
||||||
|
uses: ./.github/workflows/sub-build-docker-image.yml
|
||||||
|
with:
|
||||||
|
dockerfile_path: ./docker/Dockerfile
|
||||||
|
dockerfile_target: runtime
|
||||||
|
image_name: zebra
|
||||||
|
latest_tag: true
|
||||||
|
features: ${{ vars.RUST_PROD_FEATURES }}
|
||||||
|
rust_log: ${{ vars.RUST_LOG }}
|
||||||
|
# This step needs access to Docker Hub secrets to run successfully
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
failure-issue:
|
failure-issue:
|
||||||
name: Open or update issues for release binaries failures
|
name: Open or update issues for release binaries failures
|
||||||
# When a new job is added to this workflow, add it to this list.
|
# When a new job is added to this workflow, add it to this list.
|
||||||
|
|
|
@ -33,6 +33,10 @@ on:
|
||||||
test_features:
|
test_features:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
latest_tag:
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
tag_suffix:
|
tag_suffix:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
@ -88,19 +92,34 @@ jobs:
|
||||||
# appends inputs.tag_suffix to image tags/names
|
# appends inputs.tag_suffix to image tags/names
|
||||||
flavor: |
|
flavor: |
|
||||||
suffix=${{ inputs.tag_suffix }}
|
suffix=${{ inputs.tag_suffix }}
|
||||||
|
latest=${{ inputs.latest_tag }}
|
||||||
# generate Docker tags based on the following events/attributes
|
# generate Docker tags based on the following events/attributes
|
||||||
tags: |
|
tags: |
|
||||||
type=schedule
|
# These DockerHub release tags support the following use cases:
|
||||||
# semver and ref,tag automatically add a "latest" tag, but only on stable releases
|
# - `latest`: always use the latest Zebra release when you pull or update
|
||||||
|
# - `1`: use the latest Zebra release, but require manual intervention for the next network upgrade
|
||||||
|
# - `1.x`: update to bug fix releases, but don't add any new features or incompatibilities
|
||||||
|
# - `v1.x.y` or `1.x.y`: always use the exact version, don't automatically upgrade
|
||||||
|
# - `sha-zzzzzz`: always use the exact commit (the same as `1.x.y`, but also used in CI and production image tests)
|
||||||
|
#
|
||||||
|
# Stopping publishing some tags is a silently breaking change:
|
||||||
|
# - `1`: doesn't get expected new consensus-compatible releases or bug fixes
|
||||||
|
# - `1.x`: doesn't get expected bug fixes
|
||||||
|
#
|
||||||
|
# `semver` adds a "latest" tag if `inputs.latest_tag` is `true`.
|
||||||
type=semver,pattern={{version}}
|
type=semver,pattern={{version}}
|
||||||
type=semver,pattern={{major}}.{{minor}}
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
type=semver,pattern={{major}}
|
type=semver,pattern={{major}}
|
||||||
type=ref,event=tag
|
type=ref,event=tag
|
||||||
type=ref,event=branch
|
# DockerHub release and CI tags.
|
||||||
type=ref,event=pr
|
# This tag makes sure tests are using exactly the right image, even when multiple PRs run at the same time.
|
||||||
type=sha
|
type=sha
|
||||||
# edge is the latest commit on the default branch.
|
# These CI-only tags support CI on PRs, the main branch, and scheduled full syncs.
|
||||||
|
# These tags do not appear on DockerHub, because DockerHub images are only published on the release event.
|
||||||
|
type=ref,event=pr
|
||||||
|
type=ref,event=branch
|
||||||
type=edge,enable={{is_default_branch}}
|
type=edge,enable={{is_default_branch}}
|
||||||
|
type=schedule
|
||||||
|
|
||||||
# Setup Docker Buildx to allow use of docker cache layers from GH
|
# Setup Docker Buildx to allow use of docker cache layers from GH
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
|
|
60
CHANGELOG.md
60
CHANGELOG.md
|
@ -11,9 +11,52 @@ Zebra's mining RPCs are now available in release builds. Our Docker images are s
|
||||||
because the smaller Zcash verification parameters are now built into the `zebrad` binary.
|
because the smaller Zcash verification parameters are now built into the `zebrad` binary.
|
||||||
TODO: rest of intro
|
TODO: rest of intro
|
||||||
|
|
||||||
This release contains the following changes:
|
### Deprecation Warnings
|
||||||
|
|
||||||
### Mining RPCs in Production Builds
|
This release has the following deprecation warnings:
|
||||||
|
|
||||||
|
#### Warning: Deprecation of DockerHub Image Tags in a future release
|
||||||
|
|
||||||
|
Zebra currently publishes 11 [DockerHub tags](https://hub.docker.com/r/zfnd/zebra/tags) for each new release.
|
||||||
|
We want to reduce the number of DockerHub tags we publish in a future minor Zebra release.
|
||||||
|
|
||||||
|
Based on usage and user feedback, we could stop publishing:
|
||||||
|
- The `1` tag, which updates each release until NU6
|
||||||
|
- The `1.x` tag, which updates each patch release until the next minor release
|
||||||
|
- The `1.x.y` tag, which is the same as `v1.x.y`
|
||||||
|
- The `sha-xxxxxxx` tag, which is the same as `v1.x.y` (for production releases)
|
||||||
|
|
||||||
|
We also want to standardise experimental image tags to `-experimental`, rather than `.experimental`.
|
||||||
|
|
||||||
|
So for release 1.5.0, we might only publish these tags:
|
||||||
|
- `latest`
|
||||||
|
- `latest-experimental` (a new tag)
|
||||||
|
- `v1.5.0`
|
||||||
|
- `v1.5.0-experimental`
|
||||||
|
|
||||||
|
Please let us know if you need any other tags by [opening a GitHub ticket](https://github.com/ZcashFoundation/zebra/issues/new?assignees=&labels=C-enhancement%2CS-needs-triage&projects=&template=feature_request.yml&title=feature%3A+).
|
||||||
|
|
||||||
|
We recommend using the `latest` tag to always get the most recent Zebra release.
|
||||||
|
|
||||||
|
#### Warning: Documentation Website URL Change
|
||||||
|
|
||||||
|
We have replaced the API documentation on the [doc.zebra.zfnd.org](https://doc.zebra.zfnd.org)
|
||||||
|
website with [docs.rs](https://docs.rs/releases/search?query=zebra). All links have been updated.
|
||||||
|
|
||||||
|
Zebra's API documentation can be found on:
|
||||||
|
- [`docs.rs`](https://docs.rs/releases/search?query=zebra), which renders documentation for the
|
||||||
|
public API of the latest crate releases;
|
||||||
|
- [`doc-internal.zebra.zfnd.org`](https://doc-internal.zebra.zfnd.org/), which renders
|
||||||
|
documentation for the internal API on the `main` branch.
|
||||||
|
|
||||||
|
[doc.zebra.zfnd.org](https://doc.zebra.zfnd.org) stopped being updated a few days before this release,
|
||||||
|
and it will soon be shut down.
|
||||||
|
|
||||||
|
### Significant Changes
|
||||||
|
|
||||||
|
This release contains the following significant changes:
|
||||||
|
|
||||||
|
#### Mining RPCs in Production Builds
|
||||||
|
|
||||||
Zebra's mining RPCs are now available in release builds (#7740). Any Zebra instance can be used
|
Zebra's mining RPCs are now available in release builds (#7740). Any Zebra instance can be used
|
||||||
by a solo miner or mining pool. This stabilises 12 RPCs, including `getblocktemplate`, `submitblock`,
|
by a solo miner or mining pool. This stabilises 12 RPCs, including `getblocktemplate`, `submitblock`,
|
||||||
|
@ -23,7 +66,7 @@ read our [mining blog post](https://zfnd.org/experimental-mining-support-in-zebr
|
||||||
Please [let us know](https://github.com/ZcashFoundation/zebra/issues/new?assignees=&labels=C-enhancement%2CS-needs-triage&projects=&template=feature_request.yml&title=feature%3A+)
|
Please [let us know](https://github.com/ZcashFoundation/zebra/issues/new?assignees=&labels=C-enhancement%2CS-needs-triage&projects=&template=feature_request.yml&title=feature%3A+)
|
||||||
if your mining pool needs extra RPC methods or fields.
|
if your mining pool needs extra RPC methods or fields.
|
||||||
|
|
||||||
### Zcash Parameters in `zebrad` Binary
|
#### Zcash Parameters in `zebrad` Binary
|
||||||
|
|
||||||
`zebrad` now bundles zk-SNARK parameters directly into its binary. This increases the binary size
|
`zebrad` now bundles zk-SNARK parameters directly into its binary. This increases the binary size
|
||||||
by a few megabytes, but reduces the size of the Docker image by around 600 MB because
|
by a few megabytes, but reduces the size of the Docker image by around 600 MB because
|
||||||
|
@ -44,17 +87,6 @@ so it can't be used to retry failed downloads in `zebrad` 1.3.0 and earlier.
|
||||||
|
|
||||||
We recommend upgrading to the latest Zebra release to avoid download issues in new installs.
|
We recommend upgrading to the latest Zebra release to avoid download issues in new installs.
|
||||||
|
|
||||||
### Documentation Website Change
|
|
||||||
|
|
||||||
We have replaced the API documentation on the [doc.zebra.zfnd.org](https://doc.zebra.zfnd.org)
|
|
||||||
website with [docs.rs](https://docs.rs/releases/search?query=zebra). All links have been updated.
|
|
||||||
|
|
||||||
Zebra's API documentation can be found on:
|
|
||||||
- [`docs.rs`](https://docs.rs/releases/search?query=zebra), which renders documentation for the
|
|
||||||
public API of the latest crate releases;
|
|
||||||
- [`doc-internal.zebra.zfnd.org`](https://doc-internal.zebra.zfnd.org/), which renders
|
|
||||||
documentation for the internal API on the `main` branch.
|
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|
||||||
TODO: rest of changelog
|
TODO: rest of changelog
|
||||||
|
|
Loading…
Reference in New Issue