DoubleZero 0.6.11 Release Checklist: A Detailed Guide
Welcome to the comprehensive guide for the DoubleZero 0.6.11 release! This checklist outlines the critical steps required for a successful deployment across various environments, ensuring smooth operations and a seamless user experience. We'll cover everything from notifying the DoubleZero Foundation to monitoring dashboards for anomalies, with detailed instructions and links to relevant resources. Let's dive in!
Pre-Release Preparations
Before initiating the release process, several preliminary steps are essential. These actions help ensure a coordinated and efficient deployment, minimizing potential issues. Let's start with notifying the DoubleZero Foundation.
Notify DoubleZero Foundation
It's crucial to inform the DoubleZero Foundation about the upcoming release. The notification timeframe depends on the release's scope: 1 day for patches, 2 days for minor updates, and 5 days for major releases, whenever possible. This advance notice allows the foundation to prepare for the release and coordinate community announcements.
Deploy to Devnet
Next, deploy all components to the devnet environment. This daily process includes comprehensive QA (Quality Assurance) checks to identify and resolve any issues before broader deployment. The release.devnet.all.daily.yml workflow on GitHub is used for this purpose.
Version Updates in Code Repositories
Update version numbers across multiple repositories. This ensures consistency and proper tracking of the release version. Specifically, update the version in Cargo.toml, Cargo.lock, and CHANGELOG.md files. This step is critical for maintaining version control and understanding the changes introduced in the release.
Infrastructure Repo Updates
Update versions in the infrastructure repository. This synchronization between the core codebase and the infrastructure is necessary for a coordinated release. An example of this can be found in a related pull request (example).
Tagging and Release Triggers
Push tags for all components, creating a generic tag of 'v0.6.11'. Except for the client, this action triggers GitHub releases, enabling the publishing of release artifacts. The release.testnet.push.tags.components.yml workflow on GitHub handles this step. Wait for the releases to be published before proceeding to the next steps.
Testnet Deployment and Verification
Once the pre-release steps are complete, focus on deploying to the testnet environment. This involves deploying specific programs, verifying CLI compatibility, and finally, deploying clients. Each step is essential for confirming the release's functionality and compatibility.
Deploy Serviceability and Telemetry Programs
Deploy the necessary serviceability and telemetry programs to configure the version onchain. Detailed instructions are available on Notion. This ensures that version information is correctly reported and monitored on the blockchain.
Testnet Deployment of Components
Deploy all components to the testnet environment, excluding the client. This deployment is crucial for testing the core functionality of the release. Monitor the system metrics dashboard (using