-
Notifications
You must be signed in to change notification settings - Fork 52
How to release Sardana
This is a guide for sardana release managers: it details the steps for making an official release.
Within the community we share the workload of the release management by rotating the release managers role. Each release has two release managers from different institutes.
In the below table you can find the release managers of the previous releases:
Release | Manager#1 | Manager#2 |
---|---|---|
Jan21 | ALBA (Zibi) | SOLARIS (Michal) |
Jul20 | MAXIV (Aureo) | ALBA (Zibi) |
Jan20 - skipped | ||
Jul19 | DESY (Teresa) | MAXIV (Antonio) |
Jan19 | SOLARIS (Grzegorz) | DESY (Teresa) |
Jul18 | ALBA (Zibi) | SOLARIS (Grzegorz) |
-
During all the development, use the Milestones to keep track of the intended release for each issue.
-
Previous to the release deadline, re-check the open issues/PR and update the assignation issues/PR to the release milestone. Request feedback from the devel community.
-
Work to close all the PR/issues remaining open in the milestone. This can be either done in develop or in a release branch called
release-XXX
(whereXXX
is the milestone name, e.g.Jul17
). If a release branch is used,develop
is freed to continue with integrations that may not be suitable for this release. On the other hand, it adds a bit more work because the release-related PRs (which are done against therelease-XXX
branch), may need to be also merged to develop. Note: therelease-XXX
branch can live in the sardana-org repo or on a personal fork (in which case you should do step 4.v now to allow other integrators to push directly to it). -
Create the release branch if it was not done already in the previous step and:
- Review and update the CHANGELOG.md if necessary. See this.
It is allways needed:
- move the Unreleased section to a new version section, adding the date
- update at the end of the file the links between the versions
- Bump version using
bumpversion <major|minor|patch> && bumpversion release
(use semver criteria to choose amongstmajor
,minor
orpatch
. OPTIONAL: Sardana depends on Taurus, and the required version of Taurus may need to be bumped as well. Taurus and other dependencies are specified in:setup.py
(requires list of strings) andsrc/sardana/requirements.py
(__requires__
dictionary and taurus.core value). - In the code use version number instead of milestone in deprecation warnings (if any) e.g. replace Jul18 with 2.5.0.
- Create a PR to merge the
release-XXX
against themaster
branch of the sardana-org repo
- Review and update the CHANGELOG.md if necessary. See this.
It is allways needed:
-
Request reviews in the PR from at least one integrator from each participating institute. The master branch is protected, so the reviews need to be cleared (or dismissed with an explanation) before the release can be merged.
-
Create issues for the manual tests on the different operating systems (Debian, CentOS, Windows) with the check list below. You may use the CI artifacts (e.g., from appveyor) and post the results in the comments of the corresponding issue.
-
Once all reviews are cleared, update the date of the release in the CHANGELOG.md and "what's new" in the docs, merge the PR and tag in master.
-
Check that travis-ci correctly uploaded to PyPI (triggered by a tag push)
Previously:
Release to PyPI from a clean checkout and using twine:cd /tmp git clone https://github.com/sardana-org/sardana.git -b <RELEASE_TAG> cd sardana python setup.py sdist bdist_wheel twine upload dist/*
-
Merge also the
release-XXX
branch into develop, and bump the version of develop withbumpversion patch
-
Complete GitHub release (upload artifacts, edit text (link "what's new" section in the docs))
-
Create news in www.tango-controls.org
- On the News page click on Submit a news and fill up the form (if it doesn't work, try opening in new tab):
- Title: New Release Of Sardana X.X.X (Jan|JulXX)
- Ilustration: sardana or official logo (use png)
- Summary: short summary of the news (do not include the whole changelog here - link "what's new" section)
- Categories: Release
- After submitting click on Modify this content text of the area <<Content>> and provide detailes of the release e.g. changelog.
- On the News page click on Submit a news and fill up the form (if it doesn't work, try opening in new tab):
-
Notify mailing lists ([email protected], [email protected], [email protected])
-
Close the milestone for current release, and open a new one (there should be milestones for next 2 releases open).