From 67fcc697948f0d3caf50475152a1b53b4022561d Mon Sep 17 00:00:00 2001 From: Jonah Miller Date: Thu, 30 Nov 2023 09:30:50 -0700 Subject: [PATCH 1/3] document how to do a new release --- .github/PULL_REQUEST_TEMPLATE.md | 7 +++-- doc/sphinx/src/contributing.rst | 46 ++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1f265efb6a..5b01428c29 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,5 +17,8 @@ detail. Why is this change required? What problem does it solve?--> - [ ] Format your changes by using the `make format` command after configuring with `cmake`. - [ ] Document any new features, update documentation for changes made. - [ ] Make sure the copyright notice on any files you modified is up to date. -- [ ] After creating a pull request, note it in the CHANGELOG.md file -- [ ] If preparing for a new release, update the version in cmake. +- [ ] After creating a pull request, note it in the CHANGELOG.md file. + +If preparing for a new release, in addition please check the following: +- [ ] Update the version in cmake. +- [ ] Move the changes in the CHANGELOG.md file under a new header for the new release, and reset the categories. diff --git a/doc/sphinx/src/contributing.rst b/doc/sphinx/src/contributing.rst index 9a53e73888..b6e20cca1b 100644 --- a/doc/sphinx/src/contributing.rst +++ b/doc/sphinx/src/contributing.rst @@ -697,3 +697,49 @@ floating point representation. This approach is described in more detail in our `short note`_ on the topic. .. _Short note: https://arxiv.org/abs/2206.08957 + + +How to Make a Release +---------------------- + +``singularity-eos`` uses *semantic versioning*. A version is written +as ``v[major version].[minor version].[patch number]``. To make a new +release, first make a new pull request where you (1) change the +version number in the ``project`` field of the of the top-level +``CmakeLists.txt`` file and (2) add a new release field to the +``CHANGELOG.md``, moving all the changes listed under ``Current Main`` +to that release. Then add empty categories for ``Current +Main``. Typically the branch for this merge request should be called +``v[release number]-rc`` for "release candidate." + +After that pull request is merged, go to the ``releases`` tab on the +right sidebar on github, and draft a new release. Set the tag to +``v[release number]``, fill the comment with the changes in the +changelog since the last release, and make the release. + +Finally, the Spackages must be updated. To do so, you will need the checksum for the tarball for the newest release. Download the tarball from the release page, and then run + +.. code-block:: bash + + sha256sum path/to/tarball.tar.gz + +and copy down the resulting checksum. Then create a new pull request +and edit +``singularity-eos/spack-repo/packages/singularity-eos/package.py`` and +find the line ``version("main", branch="main")``. Below this line add +a new line of the form + +.. code-block:: python + + version("[release number]", sha256="[checksum]") + +where you should fill in ``[release number]`` and ``[checksum]`` +appropriately. You may then remove the oldest version from the +spackace, and add the ``deprecated=True`` flag to the two oldest +remaining versions. + +Finally, the new ``package.py`` file needs to be synchronized with +`Spack upstream`_, and a pull request to that repository containing +the new ``package.py`` file. + +.. _Spack upstream: https://github.com/spack/spack From 576695cbf5b6d4f1c7cc0dae323ce578abb0e262 Mon Sep 17 00:00:00 2001 From: Jonah Miller Date: Thu, 30 Nov 2023 09:32:18 -0700 Subject: [PATCH 2/3] add tests constraint --- .github/PULL_REQUEST_TEMPLATE.md | 1 + doc/sphinx/src/contributing.rst | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 5b01428c29..e57889c82f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -18,6 +18,7 @@ detail. Why is this change required? What problem does it solve?--> - [ ] Document any new features, update documentation for changes made. - [ ] Make sure the copyright notice on any files you modified is up to date. - [ ] After creating a pull request, note it in the CHANGELOG.md file. +- [ ] LANL employees: make sure tests pass both on the github CI and on the Darwin CI If preparing for a new release, in addition please check the following: - [ ] Update the version in cmake. diff --git a/doc/sphinx/src/contributing.rst b/doc/sphinx/src/contributing.rst index b6e20cca1b..97e637e6d0 100644 --- a/doc/sphinx/src/contributing.rst +++ b/doc/sphinx/src/contributing.rst @@ -710,14 +710,17 @@ version number in the ``project`` field of the of the top-level ``CHANGELOG.md``, moving all the changes listed under ``Current Main`` to that release. Then add empty categories for ``Current Main``. Typically the branch for this merge request should be called -``v[release number]-rc`` for "release candidate." +``v[release number]-rc`` for "release candidate." Make sure that the +full test suite passes for this PR. After that pull request is merged, go to the ``releases`` tab on the right sidebar on github, and draft a new release. Set the tag to ``v[release number]``, fill the comment with the changes in the changelog since the last release, and make the release. -Finally, the Spackages must be updated. To do so, you will need the checksum for the tarball for the newest release. Download the tarball from the release page, and then run +Finally, the Spackages must be updated. To do so, you will need the +checksum for the tarball for the newest release. Download the tarball +from the release page, and then run .. code-block:: bash From 5056b7497e1b6566d5e48c3f4f41a3c082e3c473 Mon Sep 17 00:00:00 2001 From: Jonah Miller Date: Thu, 30 Nov 2023 13:37:27 -0700 Subject: [PATCH 3/3] changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b16f4c19f..49f35fa104 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,12 @@ ### Fixed (Repair bugs, etc) ### Added (new features/APIs/variables/...) +- [[PR326]](https://github.com/lanl/singularity-eos/pull/326) Document how to do a release ### Changed (changing behavior/API/variables/...) ### Infrastructure (changes irrelevant to downstream codes) +- [[PR328]](https://github.com/lanl/singularity-eos/pull/328) Move to catch2 v3 ### Removed (removing behavior/API/varaibles/...)