From 8ba0d7bece69f90ca026cbe4830b2998d525894d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 20 Nov 2024 10:21:00 -0500 Subject: [PATCH] more updates to release process --- .github/release_steps.md | 66 +++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/.github/release_steps.md b/.github/release_steps.md index bcd29fd818..897058bdeb 100644 --- a/.github/release_steps.md +++ b/.github/release_steps.md @@ -1,28 +1,78 @@ # LAMMPS Release Steps -The following notes chronicle the current steps for preparing and publishing LAMMPS releases. -For definition of what LAMMPS versions and the different kinds of releases mean, please -refer to [the corresponding section in the LAMMPS manual](https://docs.lammps.org/Manual_version.html). +The following notes chronicle the current steps for preparing and publishing LAMMPS releases. For +definition of what LAMMPS versions and the different kinds of releases mean, please refer to [the +corresponding section in the LAMMPS manual](https://docs.lammps.org/Manual_version.html). ## LAMMPS Feature Release -A LAMMPS feature release is currently prepared after about 500 to 750 commits to the -'develop' branch or after a period of four weeks up to two months. +A LAMMPS feature release is currently prepared after about 500 to 750 commits to the 'develop' +branch or after a period of four weeks up to two months. This is not a fixed rule, though, since +external circumstances can cause delays in preparing a release, or pull requests that are desired to +be merged for the release are not yet completed. ### Preparing a 'next\_release' branch Create a 'next\_release' branch off 'develop' and make the following changes: -- set the LAMMPS\_VERSION define to the planned release date in src/version.h in the format "D Mmm YYYY" or "DD Mmm YYYY" + +- set the LAMMPS\_VERSION define to the planned release date in src/version.h in the format + "D Mmm YYYY" or "DD Mmm YYYY" - remove the LAMMPS\_UPDATE define in src/version.h - update the release date in doc/lammps.1 - update all TBD arguments for ..versionadded::, ..versionchanged:: ..deprecated:: to the planned release date in the format "DMmmYYYY" or "DDMmmYYYY" - -Submit this pull request, rebase if needed. This is the last pull request merged for the release +- check release notes for merged new features and check if ..versionadded:: or ..versionchanged:: + are missing and need to be added +Submit this pull request, rebase if needed. This is the last pull request merged for the release and should not contain any other changes. (Exceptions: this document, last minute trivial(!) changes). + This PR shall not be merged before **all** pending tests have completed and cleared. If needed, a bugfix pull request should be created and merged to clear all tests. +### Create release on GitHub + +When all pending pull requests for the release are merged and have cleared testing, the +'next\_release' branch is merged into 'develop'. + +Check out 'develop' locally, pull the latest changes, merge them into 'release', apply a suitable +release tag (for historical reasons the tag starts with "patch_" followed by the date, and finally +push everything back to GitHub. Example: + +``` +git checkout develop +git pull +git checkout release +git pull +git merge --ff-only develop +git tag -s -m "LAMMPS feature release 19 November 2024" patch_19Nov2024 +git push git@github.com:lammps/lammps.git --tags develop release +``` + +Go to https://github.com/lammps/lammps/releases and create a new (draft) release page or check the +existing draft for any necessary changes from pull requests that were merged but are not listed. +Then select the applied tag for the release in the "Choose a tag" dropdown list. Go to the bottom of +the list and select the "Set as pre-release" checkbox. The "Set as the latest release" button is +reserved for stable releases and updates to them. + +If everything is in order, you can click on the "Publish release" button. Otherwise, click on "Save +draft" and finish pending tasks until you can return to edit the release page and publish it. + +### Update download website, prepare pre-compiled packages, update packages to GitHub + +Publishing the release on GitHub will trigger the Temple Jenkins cluster to update +the https://docs.lammps.org/ website with the documentation for the new feature release +and it will create a tarball for download (which contains the translated manual). + +Build a fully static LAMMPS installation using a musl-libc cross-compiler, install into a +lammps-static folder, and create a tarball called lammps-linux-x86_64-19Nov2024.tar.gz (or using a +corresponding date with a future release) from the lammps-static folder and upload it to GitHub +with: + +``` +gh release upload patch_19Nov2024 ~/Downloads/lammps-linux-x86_64-19Nov2024.tar.gz +``` + + ## LAMMPS Stable Release A LAMMPS stable release is prepared about once per year in the months July, August, or September.