## 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 #2967. ## What Create and release a new distribution `2628` > [!IMPORTANT] > - [x] Delete all legacy crates publication tokens in the GitHub settings > - [ ] Rotate ancillary signer service account keys in`release-mainnet` > - [x] Remove deprecated features of `mithril-client` > - [x] Clean infra upgrade branches if any > - [x] Next phase of 'Switching to Cardano database incremental certification' > - [x] Activate DMQ network in Release GitHub workflow > - [x] Add DMQ compatibility matrix in GitHub release notes > - [ ] Add DMQ node Docker registry to `ghcr.io/intersectmbo/dmq-node` (`DMQ_NODE_DOCKER_REGISTRY`): > - [ ] `release-preprod` > - [ ] `release-mainnet` > - [ ] Update DMQ node version to `0.7.0.0` (`DMQ_NODE_VERSION`): > - [x] `pre-release-preview` > - [ ] `release-preprod` > - [ ] `release-mainnet` > - [ ] Remove `CardanoImmutableFilesFull` from `AGGREGATOR_SIGNED_ENTITY_TYPES` in: > - [x] `pre-release-preview` > - [ ] `release-preprod` > - [ ] `release-mainnet` > - [ ] Activate `CardanoBlocksTransactions` signed entity type: > - [ ] `pre-release-preview` > - [ ] `pre-release-2-preview` > - [ ] `release-preprod` > - [ ] TBD Distribution +1: > [!NOTE] > - [ ] Delete all legacy crates publication tokens in the GitHub settings > - [ ] Rotate ancillary signer service account keys in`release-mainnet` > - [ ] Remove deprecated features of `mithril-client` > - [ ] Clean infra upgrade branches if any > - [ ] Next phase of 'Switching to Cardano database incremental certification' > - [ ] Upgrade to Cardano node `11.1.X`? > - [ ] `pre-release-preview` > - [ ] `release-preprod` > - [ ] `release-mainnet` > - [ ] Activate `CardanoBlocksTransactions` signed entity type?: > - [ ] `release-mainnet` > - [ ] Create a dev blog post explaining the transition to dual genesis > - [ ] TBD ## How ### Phase 1: Prepare distribution - [x] Add DMQ compatibility matrix in GitHub release notes - [x] ~~Refresh NPM token for publication~~ - [x] Run manual successful restoration of Cardano database + restart of the Cardano node (with ancillary) - [x] 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) - [x] Run an all green [aggregator stress test](https://github.com/input-output-hk/mithril/actions/workflows/aggregator-stress-test.yml) in the CI - [x] Run an all green [client multi-platform test](https://github.com/input-output-hk/mithril/actions/workflows/test-client.yml) in the CI - [x] 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)) - [x] Reset the CI [caches](https://github.com/input-output-hk/mithril/actions/caches) just before merging the PR to upgrade repository dependencies - [x] Merge the PR to upgrade repository dependencies - [x] 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) - [x] Create a draft PR for rotating the documentation - [x] ~~Create a draft PR for updating `networks.json` file~~ - [x] 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` - [x] Prepare announcements and highlights - [ ] Prepare dev blog posts ### Phase 2: Rollout pre-release distribution - [x] Remove `CardanoImmutableFilesFull` from `AGGREGATOR_SIGNED_ENTITY_TYPES` in: - [x] `pre-release-preview` - [ ] Activate `CardanoBlocksTransactions` signed entity type: - [ ] `pre-release-preview` - [x] Update DMQ node version to `0.7.0.0` (`DMQ_NODE_VERSION`): - [x] `pre-release-preview` - [ ] Tag and deploy a `2628.0` pre-release distribution on the `pre-release-preview` network - [ ] Fill information in GitHub release: - [ ] Release notes - [ ] Highlights - [ ] 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 - [ ] Cardano Foundation IBC bridge team - [ ] 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 ### Phase 3: Rollout release distribution - [ ] Add DMQ node Docker registry to `ghcr.io/intersectmbo/dmq-node` (`DMQ_NODE_DOCKER_REGISTRY`): - [ ] `release-preprod` - [ ] `release-mainnet` - [ ] Update DMQ node version to `0.7.0.0` (`DMQ_NODE_VERSION`): - [ ] `release-preprod` - [ ] `release-mainnet` - [ ] 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_TRANSACTIONS_SIGNING_CONFIG_SECURITY_PARAMETER` to `10`: - [ ] `release-preprod` - [ ] 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 `2628.0` distribution - [ ] Fill information in GitHub release: - [ ] Cardano node compatibility - [ ] Networks compatibility - [ ] Synchronize `cardano-transactions.sqlite3` database - Phase 2: - [ ] `release-mainnet` - [ ] 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 - [x] ~~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 - [ ] Cardano Foundation IBC bridge team - [ ] Update Hydra tutorial if client breaking change for database restoration - [ ] Dev blog post: - [ ] Distribution `2628` - [ ] Update the `Switching to Cardano database incremental certification` dev blog post - [ ] Update the DMQ testing phase dev blog post - [ ] Update the Multiple Aggregators testing phase dev blog post - [ ] Update roadmap with new distribution
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 #2967.
What
Create and release a new distribution
2628Important
release-mainnetmithril-clientghcr.io/intersectmbo/dmq-node(DMQ_NODE_DOCKER_REGISTRY):release-preprodrelease-mainnet0.7.0.0(DMQ_NODE_VERSION):pre-release-previewrelease-preprodrelease-mainnetCardanoImmutableFilesFullfromAGGREGATOR_SIGNED_ENTITY_TYPESin:pre-release-previewrelease-preprodrelease-mainnetCardanoBlocksTransactionssigned entity type:pre-release-previewpre-release-2-previewrelease-preprodDistribution +1:
Note
release-mainnetmithril-client11.1.X?pre-release-previewrelease-preprodrelease-mainnetCardanoBlocksTransactionssigned entity type?:release-mainnetHow
Phase 1: Prepare distribution
Refresh NPM token for publicationunstabledistribution (with theunstablebuilt e2e test)networks.jsonmust be updated following the runbookCreate a draft PR for updatingnetworks.jsonfileCHANGELOG.md(set the distribution version)CHANGELOG.md(if needed)CHANGELOG.mdPhase 2: Rollout pre-release distribution
CardanoImmutableFilesFullfromAGGREGATOR_SIGNED_ENTITY_TYPESin:pre-release-previewCardanoBlocksTransactionssigned entity type:pre-release-preview0.7.0.0(DMQ_NODE_VERSION):pre-release-preview2628.0pre-release distribution on thepre-release-previewnetworkpre-release-previewnexthave been published on npm registry2epochs and check that:2epochs2epochsPhase 3: Rollout release distribution
ghcr.io/intersectmbo/dmq-node(DMQ_NODE_DOCKER_REGISTRY):release-preprodrelease-mainnet0.7.0.0(DMQ_NODE_VERSION):release-preprodrelease-mainnetCardanoImmutableFilesFullfromAGGREGATOR_SIGNED_ENTITY_TYPESin:release-preprodrelease-mainnetCardanoBlocksTransactionssigned entity type:release-preprodCardanoBlocksTransactionsconfiguration parameterAGGREGATOR_CARDANO_TRANSACTIONS_SIGNING_CONFIG_SECURITY_PARAMETERto10:release-preprodrelease-mainnetrelease-mainnetrelease-mainnetenvironment with new service account credentials2628.0distributioncardano-transactions.sqlite3database - Phase 2:release-mainnetrelease-mainnetis working as expectedrelease-preprodis working as expectedlatesthave been published on npm registryrelease-mainnetrelease-preprodMerge the PR for updatingnetworks.jsonfileCHANGELOG.md2628Switching to Cardano database incremental certificationdev blog post