## 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` > - [ ] 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_DATABASE_CONNECTION_POOL_SIZE`, `AGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_PROVER_CACHE_POOL_SIZE`,`AGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_SIGNING_CONFIG_STEP`, `AGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_SIGNING_CONFIG_SECURITY_PARAMETER`, `AGGREGATOR_CARDANO_TRANSACTIONS_DATABASE_CONNECTION_POOL_SIZE`, `AGGREGATOR_CARDANO_TRANSACTIONS_PROVER_CACHE_POOL_SIZE`, `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 > - [ ] 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
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
26XXImportant
release-mainnetmithril-client11.2.X?pre-release-previewrelease-preprodrelease-mainnetprotocol-config.addrandprotocol-config.vk):pre-release-previewrelease-preprodrelease-mainnetPROTOCOL_CONFIGURATION_READER_ADDRESS_URL,PROTOCOL_CONFIGURATION_READER_VERIFICATION_KEY_URLnew GitHub environment variables, removeAGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_DATABASE_CONNECTION_POOL_SIZE,AGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_PROVER_CACHE_POOL_SIZE,AGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_SIGNING_CONFIG_STEP,AGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_SIGNING_CONFIG_SECURITY_PARAMETER,AGGREGATOR_CARDANO_TRANSACTIONS_DATABASE_CONNECTION_POOL_SIZE,AGGREGATOR_CARDANO_TRANSACTIONS_PROVER_CACHE_POOL_SIZE,AGGREGATOR_CARDANO_TRANSACTIONS_SIGNING_CONFIG_SECURITY_PARAMETER,AGGREGATOR_CARDANO_TRANSACTIONS_SIGNING_CONFIG_STEP)pre-release-previewpre-release-2-previewrelease-preprodrelease-mainnetCardanoBlocksTransactionssigned entity type?:release-mainnetXXXXDistribution +1:
Note
release-mainnetmithril-clientXXXXHow
Phase 1: Prepare distribution
unstabledistribution (with theunstablebuilt e2e test)networks.jsonmust be updated following the runbooknetworks.jsonfileCHANGELOG.md(set the distribution version)CHANGELOG.md(if needed)CHANGELOG.mdPhase 2: Rollout pre-release distribution
CardanoImmutableFilesFullfromAGGREGATOR_SIGNED_ENTITY_TYPESin:pre-release-preview26XX.0pre-release distribution on thepre-release-previewnetworkpre-release-previewis working as expectedjpraynaud/fix-warp-huge-backtracesbranchCardanoBlocksTransactionssigned entity type:pre-release-previewpre-release-previewwithjpraynaud/fix-warp-huge-backtracesbranch:2617.0-247874826XX.0-23e124dpre-release-previewis working as expectedjpraynaud/fix-warp-huge-backtracesbranch on mainpre-release-previewnexthave been published on npm registry2epochs and check that:2epochs2epochsCardanoBlocksTransactionsPhase 3: Rollout release distribution
release-mainnetrelease-mainnetrelease-mainnetenvironment with new service account credentials26XX.0distributionrelease-mainnetis working as expectedrelease-preprodis working as expectedCardanoImmutableFilesFullfromAGGREGATOR_SIGNED_ENTITY_TYPESin:release-preprodrelease-mainnetCardanoBlocksTransactionssigned entity type:release-preprodCardanoBlocksTransactionsconfiguration parameterAGGREGATOR_CARDANO_BLOCKS_TRANSACTIONS_SIGNING_CONFIG_SECURITY_PARAMETERto5:release-preprodrelease-mainnetandrelease-preprodwithjpraynaud/fix-warp-huge-backtracesbranch2617.0-247874826XX.0-23e124drelease-mainnetis working as expectedrelease-preprodis working as expectedlatesthave been published on npm registryrelease-mainnetrelease-preprodnetworks.jsonfileCHANGELOG.md26XXSwitching to Cardano database incremental certificationdev blog post