Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

How to release Sardana

Michał Piekarski edited this page May 17, 2021 · 6 revisions

This is a guide for sardana release managers: it details the steps for making an official release.

Release managers

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)

The release process

  1. During all the development, use the Milestones to keep track of the intended release for each issue.

  2. 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.

  3. 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 (where XXX 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 the release-XXX branch), may need to be also merged to develop. Note: the release-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).

  4. Create the release branch if it was not done already in the previous step and:

    1. 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
    2. Bump version using bumpversion <major|minor|patch> && bumpversion release (use semver criteria to choose amongst major, minor or patch. 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) and src/sardana/requirements.py (__requires__ dictionary and taurus.core value).
    3. In the code use version number instead of milestone in deprecation warnings (if any) e.g. replace Jul18 with 2.5.0.
    4. Create a PR to merge the release-XXX against the master branch of the sardana-org repo
  5. 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.

  6. 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.

  7. 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.

  8. 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/*
    
  9. Merge also the release-XXX branch into develop, and bump the version of develop with bumpversion patch

  10. Complete GitHub release (upload artifacts, edit text (link "what's new" section in the docs))

  11. Create news in www.tango-controls.org

    1. 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
    2. After submitting click on Modify this content text of the area <<Content>> and provide detailes of the release e.g. changelog.
  12. Notify mailing lists ([email protected], [email protected], [email protected])

  13. Close the milestone for current release, and open a new one (there should be milestones for next 2 releases open).

Clone this wiki locally