Creating an Xmipp Release
Step 1: Define the Version Name
The version name follows the format X.YY.ZZ: - X = 3 (this keeps the main version number consistent to sort releases and maintain xmipp3). - YY = Year of the release. - ZZ = Month of the release.
Additionally, name the release after a Greek god or goddess. Check out the list
Example: 3.24.06 - Boreas (for a June 2024 release).
Step 2: Update the CHANGELOG.md
Go through the changes in CHANGELOG.md file: - xmipp (includes xmippcore). - scipion-em-xmipp. - xmippViz.
Follow the tittle format used in previous releases. - This is crucial because the release automation uses these tags.
Use pull requests as a reference to identify changes and describe them clearly.
Step 3: Schedule the Release
Announce at least two weeks in advance that no new changes will be merged into devel. This stabilization period helps identify potential bugs in the devel branch.
Prepare all steps in advance.
Post the release at the start of your workday to address any issues promptly.
Step 4: Check Tests
Verify that most tests pass, or at least confirm that failing tests are consistent with previous results.
Use tools like Buildbot and Hertz-Cinco for validation.
Step 5: Update Protocol Status
Review the _devStatus of each protocol: - Set to PROD, NEW, or UPDATED if applicable.
Consider deprecating protocols no longer in use or supported.
Step 6: Create Candidate Branches
Name the release branches according to the release version (e.g., release-3.24.06).
Step 7: Update Version Information
Step 8: Validate Release Branches Locally
Check out the release branches locally or on a test machine.
Verify: - Installation with Scipion. Downolad the scipion-em-xmipp repo in the release branch and launch
git clone git@github.com:I2PC/scipion-em-xmipp.git cd scipion-em-xmipp scipion3 installp -p . --devel
Descargara en scipion/software/em los repositorios en xmippSrc-3…. e instalara xmipp - Execution of a few tests.
Step 9: Create Pull Requests
Open four pull requests: - Release to master for each relevant repository.
Step 10: Document Changes
Compile a list of changed files, lines added, and other details from the PRs. Document this in the Xmipp monitoring file.
Step 11: Merge the Pull Requests
Merge the four PRs. - This triggers the creation of release tags on GitHub. - In scipion-em-xmipp, it will also upload the package to PyPI. Note: This is the most critical step to revert if issues arise.
Step 12: Announce the Release
Share the release news via: - Email lists. - Discord. - Any other relevant platforms.
Step 13: Consider XmippTomo
Evaluate whether XmippTomo needs a corresponding release.
Step 14: PR from Release to Devel
Create a pull request from release back to devel.
Revert the tags for release and devel in: - Xmipp. - scipion-em-xmipp.
—
That’s it! Now sit back, grab a coffee, and enjoy your shiny new release. 🚀