IntersectMBO / IntersectMBO/mithril
Release `26XX` distribution
- Dominant language
- Rust
- Stars
- 154
- Forks
- 51
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 38
Description
## Why
In order to deploy new features, improvements and bug fixes, we need to release a new distribution.
> [!NOTE]
> The previous distribution has been created with #3271.
## What
Create and release a new distribution `26XX`
> [!IMPORTANT]
> - [ ] Rotate ancillary signer service account keys in`release-mainnet`
> - [ ] Remove deprecated features of `mithril-client`
> - [ ] Clean infra upgrade branches if any
> - [ ] Upgrade to Cardano node `11.2.X`?
> - [ ] `pre-release-preview`
> - [ ] `release-preprod`
> - [ ] `release-mainnet`
> - [ ] Update network matrix for protocol configuration
> - [ ] Update network.json for protocol configuration
> - [ ] Update the `**TO_COMPLETE**` values for protocol configuration in documentation
> - [ ] Prepare new configurations of infra for on-chain protocol configuration (`protocol-config.addr` and `protocol-config.vk`):
> - [ ] `pre-release-preview`
> - [ ] `release-preprod`
> - [ ] `release-mainnet`
> - [ ] Upgrade to on-chain protocol configuration (`PROTOCOL_CONFIGURATION_READER_ADDRESS_URL`, `PROTOCOL_CONFIGURATION_READER_VERIFICATION_KEY_URL` new GitHub environment variables, remove `AGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_SIGNING_CONFIG_STEP`, `AGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_SIGNING_CONFIG_SECURITY_PARAMETER`, `AGGREGATOR_CARDANO_TRANSACTIONS_SIGNING_CONFIG_SECURITY_PARAMETER`, `AGGREGATOR_CARDANO_TRANSACTIONS_SIGNING_CONFIG_STEP`)
> - [ ] `pre-release-preview`
> - [ ] `pre-release-2-preview`
> - [ ] `release-preprod`
> - [ ] `release-mainnet`
> - [ ] Activate `CardanoBlocksTransactions` signed entity type?:
> - [ ] `release-mainnet`
> - [ ] Dev blog post:
> - [ ] Distribution `XXXX`
> - [ ] Create a dev blog post explaining the transition to dual genesis
> - [ ] Update the Multiple Aggregators testing phase dev blog post
> - [ ] Create a dev blog post explaining on-chain configuration parameters
> - [ ] TBD
> - [ ] TBD
Distribution +1:
> [!NOTE]
> - [ ] Rotate ancillary signer service account keys in`release-mainnet`
> - [ ] Remove deprecated features of `mithril-client`
> - [ ] Clean infra upgrade branches if any
> - [ ] Dev blog post:
> - [ ] Distribution `XXXX`
> - [ ] TBD
> - [ ] TBD
## How
### Phase 1: Prepare distribution
- [ ] Refresh NPM token for publication
- [ ] Run manual successful restoration of Cardano database + restart of the Cardano node (with ancillary)
- [ ] Run a [backward compatibility test](https://github.com/input-output-hk/mithril/actions/workflows/nightly-backward-compatibility.yml) in the CI on the `unstable` distribution (with the `unstable` built e2e test)
- [ ] Run an all green [aggregator stress test](https://github.com/input-output-hk/mithril/actions/workflows/aggregator-stress-test.yml) in the CI
- [ ] Run an all green [client multi-platform test](https://github.com/input-output-hk/mithril/actions/workflows/test-client.yml) in the CI
- [ ] Prepare a PR to upgrade repository dependencies (with [runbook](https://github.com/input-output-hk/mithril/blob/main/docs/devbook/upgrade-repository-dependencies/README.md))
- [ ] Reset the CI [caches](https://github.com/input-output-hk/mithril/actions/caches) just before merging the PR to upgrade repository dependencies
- [ ] Merge the PR to upgrade repository dependencies
- [ ] Check if Cardano minimum supported versions in `networks.json` must be updated following the [runbook](https://github.com/input-output-hk/mithril/tree/main/docs/runbook/maintain-cardano-min-versions-file#readme)
- [ ] Create a draft PR for rotating the documentation
- [ ] Create a draft PR for updating `networks.json` file
- [ ] Create a PR for rotating the `CHANGELOG.md` (set the distribution version)
- [ ] Update the PR for rotating the `CHANGELOG.md` (if needed)
- [ ] Merge the PR for rotating the `CHANGELOG.md`
- [ ] Prepare announcements and highlights
- [ ] Prepare dev blog posts
### Phase 2: Rollout pre-release distribution
- [ ] Remove `CardanoImmutableFilesFull` from `AGGREGATOR_SIGNED_ENTITY_TYPES` in:
- [ ] `pre-release-preview`
- [ ] Tag and deploy a `26XX.0` pre-release distribution on the `pre-release-preview` network
- [ ] Fill information in GitHub release:
- [ ] Release notes
- [ ] Highlights
- [ ] Make sure `pre-release-preview` is working as expected
- [ ] Create fix deployment `jpraynaud/fix-warp-huge-backtraces` branch
- [ ] Activate `CardanoBlocksTransactions` signed entity type:
- [ ] `pre-release-preview`
- [ ] Re-deploy `pre-release-preview` with `jpraynaud/fix-warp-huge-backtraces` branch:
- [ ] First with previous distribution image `2617.0-2478748`
- [ ] Then with new distribution `26XX.0-23e124d`
- [ ] Make sure `pre-release-preview` is working as expected
- [ ] Merge fix deployment `jpraynaud/fix-warp-huge-backtraces` branch on main
- [ ] Make sure Grafana dashboards are fetching data for `pre-release-preview`
- [ ] Make sure libraries version `next` have been published on [npm registry](https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm)
- [ ] Run an all green [client multi-platform test](https://github.com/input-output-hk/mithril/actions/workflows/test-client.yml) in the CI
- [ ] Run a Cardano transaction prover benchmark:
- [ ] Store results in the issue
- [ ] Make sure that there is no performance regression since last release
- [ ] Announce the pre-release on discord channel
- [ ] Announce any breaking change in:
- [ ] #cardano-scaling slack channel for pre-release
- [ ] #blockfrost-scaling slack channel for pre-release
- [ ] #ddz-iog-daedalus slack channel for pre-release
- [ ] Wait for at least `2` epochs and check that:
- [ ] Previous signers have registered in the current epoch
- [ ] New signers have registered in the current epoch
- [ ] Previous signers have signed in the `2` epochs
- [ ] New signers have signed in the `2` epochs
- [ ] Certificates are created for the `CardanoBlocksTransactions`
### Phase 3: Rollout release distribution
- [ ] Rotate KMS credentials:
- [ ] Destroy the previous key for the ancillary signer service account of `release-mainnet`
- [ ] Create a new key for the ancillary signer service account of `release-mainnet`
- [ ] Configure `release-mainnet` environment with new service account credentials
- [ ] Check that KMS credentials are working with the creation of the next Cardano database snapshot
- [ ] Release the `26XX.0` distribution
- [ ] Fill information in GitHub release:
- [ ] Cardano node compatibility
- [ ] Networks compatibility
- [ ] Make sure `release-mainnet` is working as expected
- [ ] Make sure `release-preprod` is working as expected
- [ ] Remove `CardanoImmutableFilesFull` from `AGGREGATOR_SIGNED_ENTITY_TYPES` in:
- [ ] `release-preprod`
- [ ] `release-mainnet`
- [ ] Activate `CardanoBlocksTransactions` signed entity type:
- [ ] `release-preprod`
- [ ] Update `CardanoBlocksTransactions` configuration parameter `AGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_SIGNING_CONFIG_SECURITY_PARAMETER` to `5`:
- [ ] `release-preprod`
- [ ] Re-deploy `release-mainnet` and `release-preprod` with `jpraynaud/fix-warp-huge-backtraces` branch
- [ ] First with previous distribution image `2617.0-2478748`
- [ ] Then with new distribution `26XX.0-23e124d`
- [ ] Make sure `release-mainnet` is working as expected
- [ ] Make sure `release-preprod` is working as expected
- [ ] Make sure libraries have been published on [crates.io](https://crates.io/search?q=mithril)
- [ ] Make sure libraries version `latest` have been published on [npm registry](https://www.npmjs.com/package/@mithril-dev/mithril-client-wasm)
- [ ] Make sure Grafana dashboards are fetching data for `release-mainnet`
- [ ] Make sure Grafana dashboards are fetching data for `release-preprod`
- [ ] Merge the PR for rotating the documentation
- [ ] Merge the PR for updating `networks.json` file
- [ ] Merge the PR for rotating the `CHANGELOG.md`
- [ ] Announce the release on discord channel (with breaking-change, upcoming features activation, ...)
- [ ] Announce any breaking/new feature change in:
- [ ] #cardano-scaling slack channel for release
- [ ] #blockfrost-scaling slack channel for release
- [ ] #ddz-iog-daedalus slack channel for release
- [ ] Update Hydra tutorial if client breaking change for database restoration
- [ ] Dev blog post:
- [ ] Distribution `26XX`
- [ ] Update the `Switching to Cardano database incremental certification` dev blog post
- [ ] Update roadmap with new distribution
- [ ] Update the signer version in the next Cardano node release
Contributor guide
Assessment
This issue has not been assessed yet.