Skip to content

8.7.0 #217

@oliver-sanders

Description

@oliver-sanders

Release Progress

Issue to track the coordinated release of multiple Cylc components.

Required for all minor releases of cylc-flow.

See the release docs for first time instructions and more info.

Prep:

The list of branches / milestones for the new release should be listed on
the cylc-admin/status page.

  • The release lead should be assigned to this issue.
  • List the milestones for release below (delete entries as appropriate).
  • All bugfix branches should be merged into master.
  • Ensure all milestones complete.
  • Ensure major changes are listed in cylc-doc (reference/changes).

Testing:

Some testing is not fully automated and must be actioned by hand. Make sure
the tests for downstream components have been run against the latest
version of upstream repositories.

  • Run cylc-flow functional tests against locally available platforms.
  • cylc-doc (run a test build) - (link workflow run).
  • cylc-rose (run the "tests" action) - (link workflow run).
  • cylc-uiserver (run the "test" action) - (link workflow run).

Milestones for release:

The release actions close the milestones for you automatically.

  • metomi-isodatetime:
  • cylc-flow:
  • cylc-ui:
  • cylc-uiserver:
  • metomi/rose:
  • cylc-rose:
  • cylc-doc:

PyPi / GitHub releases:

Ensure all Cylc components are pinned to the correct version of cylc-flow.

Trigger releases via GitHub actions.

How to trigger a new release:
  1. Open the release PR
    • Go to the "Actions" tab of the relevant repo e.g.
    • Choose the "Release stage 1 - create release PR" workflow.
    • Click the "Run workflow dropdown" and enter the version you want to release
      and the branch that the code you want to release is on
    • This will just open a PR, nothing scary will happen at this stage!
  2. Review and merge the release PR
    • A PR will be opened.
    • On this PR the version number will be set and the changelog rendered.
    • Follow the instructions on the PR, ensure it is reviewed, then merge.
    • Once you push the merge button, the release will happen automatically.

Note, It is also possible to manually create a release PR with the conditions:

  • The branch name must be of the format prepare-<version_number>, e.g. prepare-1.0.1 or prepare-5.0a2.
  • Add the release label to the PR. Warning: any PR you create with the release label will trigger publishing to PyPI when merged.

If anything goes wrong, it is possible to cut the release manually, however,
we don't have any up to date instructions for this :(

Logical release order:
R1 = """
   metomi_isodatetime => cylc_flow & metomi_rose => cylc_rose
   cylc_flow & cylc_ui => cylc_uis
"""
Info on version pinning:
Cylc plugins (i.e. cylc-rose and cylc-uiserver) are "pinned" to the minor version of cylc-flow. E.G. if the cylc-flow version is 8.1.2 the plugins should be pinned to 8.1.

More Information
  • metomi-isodatetime
  • cylc-flow (bump metomi-isodatetime if required)
  • cylc-ui
  • cylc-uiserver ([update the ui via GH action first)
  • metomi-rose (bump metomi-isodatetime if required)
  • cylc-rose

Conda Forge:

Pull requests will be automatically opened on the conda-forge feedstocks
after the pypi releases.

Where do I find the "feedstocks"?Each package we release on Conda Forge has a corresponding "feedstock"
repository in https://github.com/conda-forge/<package>-feedstock, e.g
cylc-flow-feedstock.

If the PR doesn't get opened automatically
Open a new issue on the feedstock repository, select the "bot command" issue type and set the title to `@conda-forge-admin, please update version`.

Ensure dependencies are up to date by running:

$ git diff <previous-release> <new-release> -- setup.cfg setup.py pyproject.toml conda-environment.yml

And checking these changes against the recipe/meta.yaml file.

Info on outputs:
Some repositories have multiple "outputs", e.g. `cylc-flow-base` is a cut-down release (or output in Conda speak), whereas `cylc-flow` is the full release including optional dependnecies. You will need to check the dependencies in all of the places they appear, including each of the outputs.

If you need to make changes, remember to re-render the feedstock
by commenting @conda-forge-admin, please rerender on the PR.

  • metomi-isodatetime
  • cylc-flow
  • cylc-uiserver
  • metomi-rose
  • cylc-rose

It make take a couple of hours for a release to become available.
Use conda search <package> to determine when it's ready.

Misc (after the above has been completed):

  • metomi-rose
    • build & deploy documentation (manual process ATM)
  • cylc-doc
    • bump intersphinx versions if required (cylc-doc/src/conf.py)
    • review deployment instructions
    • deploy (run the "deploy" workflow on GitHub Actions) (can be re-deployed later if necessary)
  • Discourse
    • announce the release
    • scan through the major changes page
      and create "tip" posts (linking back to the changes page) to announce any new features.

Metadata:

GH Actions should automatically open PRs that bump the dev version of the
projects. Check and merge them (can push alterations to PR branch if needed).

Downstream components will need to have their dependencies bumped:

  • cylc-uisever (pin to next minor cylc-flow version)
  • cylc-rose (pin to next minor cylc-flow and metomi-rose versions)
  • cylc-admin (update the meta-release config)

Finally:

  • close this issue 🚀

Metadata

Metadata

Assignees

No one assigned

    Labels

    releaseAn issue for keeping track of a Cylc release

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions