From 60bc067e170b7ed3a48711f8f9ea1b07ad069ff0 Mon Sep 17 00:00:00 2001 From: Oliver Sanders Date: Wed, 10 Nov 2021 18:38:54 +0000 Subject: [PATCH 1/4] update release instructions --- docs/howto/create-a-release.md | 104 +++++++++++++++++++++++++-------- 1 file changed, 80 insertions(+), 24 deletions(-) diff --git a/docs/howto/create-a-release.md b/docs/howto/create-a-release.md index 457a7c9e..aadc4b95 100644 --- a/docs/howto/create-a-release.md +++ b/docs/howto/create-a-release.md @@ -3,6 +3,63 @@ **Note:** The release process has been substantially automated. For reference, the old release process is documented at [create-a-release-old.md](create-a-release-old.md). +**Warning:** The release process is still in flux, these instructions will +drift from ground truth. + +## Release Process + +Here's a template for releasing all components: + +> **Note:** It is not necessary to release *all* of the components to update +> *one* of the components. + +``` +R1 = """ + metomi-isodatetime => cylc-flow + metomi-isodatetime => metomi-rose + cylc-flow => cylc-uiserver + cylc-flow => cylc-rose + cylc-ui => cylc-uiserver + metomi-rose => cylc-rose +""" +``` + +Prep: + +* [ ] Test cylc-doc (run a test build, perform any required fixes) + +PyPi: + +* [ ] metomi-isodatetime +* [ ] cylc-flow +* [ ] cylc-ui +* [ ] cylc-uiserver (update the ui version before releasing) +* [ ] metomi-rose +* [ ] cylc-rose + +Forge (check dependencies match): + +* [ ] metomi-isodatetime +* [ ] cylc-flow +* [ ] cylc-ui +* [ ] cylc-uiserver +* [ ] metomi-rose +* [ ] cylc-rose + +Misc (after the above has been completed): + +* cylc-doc + * [ ] bump instersphinx versions if required + * [ ] review installation instructions + * [ ] deploy (run deploy action, can be re-deployed if necessary) +* [ ] discourse post + +Bump Project Versions (on master): + +* [ ] cylc-flow +* [ ] cylc-uiserver (pin to latest cylc-flow) +* [ ] cylc-rose (pin to latest cylc-flow) + ## Before you start (First time) - Create a PyPI account for yourself if you don't already have one. @@ -22,6 +79,9 @@ the old release process is documented at [create-a-release-old.md](create-a-rele For any projects which are auto-documented by cylc-doc, currently: * cylc-flow +* cylc-rose +* cylc-uiserver +* metomi-rose Ensure the docs build against master by manually triggering the test workflow in cylc-doc. @@ -71,7 +131,8 @@ following the [old instructions](create-a-release-old.md). > all the projects that are part of Cylc 8. After a Python project has been pushed to PyPi a new PR should be -automatically created on the conda-forge feedstock. +automatically created on the conda-forge feedstock. If not you can DIY, +you will need to update the checksum to the value on PyPi. - Follow the instructions on the PR. - Check the dependencies are up to date, some projects e.g. cylc-flow have @@ -89,10 +150,8 @@ releasing only Cylc UI Server, you should release Cylc Flow first. On GitHub, navigate to the project repository on GitHub, e.g. -- https://github.com/conda-forge/cylc-feedstock - https://github.com/conda-forge/cylc-flow-feedstock - https://github.com/conda-forge/cylc-rose-feedstock -- https://github.com/conda-forge/cylc-ui-feedstock - https://github.com/conda-forge/cylc-uiserver-feedstock - https://github.com/conda-forge/metomi-isodatetime-feedstock - https://github.com/conda-forge/metomi-rose-feedstock @@ -144,12 +203,10 @@ configured to avoid automatically upload the package. Open your `~/.condarc` and check that you have something similar to: ```yaml - - channels: - - defaults - - conda-forge - ssl_verify: true - anaconda_upload: false +channels: + - conda-forge +ssl_verify: true +anaconda_upload: false ``` Now create a Conda environment for your tests, e.g.: `conda create -n cylc1`, @@ -157,21 +214,20 @@ and then activate it `conda activate cylc1`. Then to build and install locally: ```bash - - # Where $CONDA_FORGE_REPOSITORY could be, for example, - # cylc-uiserver-feedstock. - cd $CONDA_FORGE_REPOSITORY - # Your package should not be listed! - conda list - # This will take some minutes and print useful information. - conda build recipe/ - # The following command will install the locally created package. Before - # installing it will ask you to confirm. Scroll up and search the - # package name. The right-side column must show a location like - # .../anaconda3/conda-bld/linux-64::cylc-uiserver-0.1-py37_1. - # This confirms you are installing the local build. Here $PACKAGE_NAME - # could be something like cylc-uiserver. - conda install --use-local $PACKAGE_NAME +# Where $CONDA_FORGE_REPOSITORY could be, for example, +# cylc-uiserver-feedstock. +cd $CONDA_FORGE_REPOSITORY +# Your package should not be listed! +conda list +# This will take some minutes and print useful information. +conda build recipe/ +# The following command will install the locally created package. Before +# installing it will ask you to confirm. Scroll up and search the +# package name. The right-side column must show a location like +# .../anaconda3/conda-bld/linux-64::cylc-uiserver-0.1-py37_1. +# This confirms you are installing the local build. Here $PACKAGE_NAME +# could be something like cylc-uiserver. +conda install --use-local $PACKAGE_NAME ``` At this point you should be good to go. Test the package with commands From 5d4a12f3528ab0814bcc13135003856ebd3c1aff Mon Sep 17 00:00:00 2001 From: Oliver Sanders Date: Thu, 11 Nov 2021 11:10:24 +0000 Subject: [PATCH 2/4] Update docs/howto/create-a-release.md Co-authored-by: Ronnie Dutta <61982285+MetRonnie@users.noreply.github.com> --- docs/howto/create-a-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/howto/create-a-release.md b/docs/howto/create-a-release.md index aadc4b95..14b5de5d 100644 --- a/docs/howto/create-a-release.md +++ b/docs/howto/create-a-release.md @@ -51,7 +51,7 @@ Misc (after the above has been completed): * cylc-doc * [ ] bump instersphinx versions if required * [ ] review installation instructions - * [ ] deploy (run deploy action, can be re-deployed if necessary) + * [ ] deploy (run the "deploy" workflow on GitHub Actions) (can be re-deployed later if necessary) * [ ] discourse post Bump Project Versions (on master): From b8bc22e9817729e97cde132dad0c8f9de86f4a1b Mon Sep 17 00:00:00 2001 From: Oliver Sanders Date: Thu, 11 Nov 2021 16:30:14 +0000 Subject: [PATCH 3/4] outline alternative conda-build test installation --- docs/howto/create-a-release.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/howto/create-a-release.md b/docs/howto/create-a-release.md index 14b5de5d..f6becfac 100644 --- a/docs/howto/create-a-release.md +++ b/docs/howto/create-a-release.md @@ -228,6 +228,8 @@ conda build recipe/ # This confirms you are installing the local build. Here $PACKAGE_NAME # could be something like cylc-uiserver. conda install --use-local $PACKAGE_NAME +# If the last command fails, try: +conda install -c ${CONDA_PREFIX}/conda-bld/ ``` At this point you should be good to go. Test the package with commands From f4ed6660cc1a98e42ea83411337b64f502706c33 Mon Sep 17 00:00:00 2001 From: Hilary James Oliver Date: Tue, 16 Nov 2021 09:05:29 +1300 Subject: [PATCH 4/4] Update docs/howto/create-a-release.md Co-authored-by: Ronnie Dutta <61982285+MetRonnie@users.noreply.github.com> --- docs/howto/create-a-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/howto/create-a-release.md b/docs/howto/create-a-release.md index f6becfac..ec51b623 100644 --- a/docs/howto/create-a-release.md +++ b/docs/howto/create-a-release.md @@ -228,7 +228,7 @@ conda build recipe/ # This confirms you are installing the local build. Here $PACKAGE_NAME # could be something like cylc-uiserver. conda install --use-local $PACKAGE_NAME -# If the last command fails, try: +# If the last command doesn't use the right build, try: conda install -c ${CONDA_PREFIX}/conda-bld/ ```