diff options
Diffstat (limited to 'Docs/source/developers')
-rw-r--r-- | Docs/source/developers/developers.rst | 2 | ||||
-rw-r--r-- | Docs/source/developers/release.rst | 55 | ||||
-rw-r--r-- | Docs/source/developers/workflow.rst | 32 |
3 files changed, 56 insertions, 33 deletions
diff --git a/Docs/source/developers/developers.rst b/Docs/source/developers/developers.rst index 94777c4e0..a1ffb7c65 100644 --- a/Docs/source/developers/developers.rst +++ b/Docs/source/developers/developers.rst @@ -25,5 +25,5 @@ Our Doxygen API documentation in classic formatting `is located here <../_static testing documentation performance_tests - workflow + release checksum diff --git a/Docs/source/developers/release.rst b/Docs/source/developers/release.rst new file mode 100644 index 000000000..336c19ca6 --- /dev/null +++ b/Docs/source/developers/release.rst @@ -0,0 +1,55 @@ +.. _developers-release: + +Dependencies & Releases +======================= + +Update WarpX' Core Dependencies +------------------------------- + +WarpX has direct dependencies on AMReX and PICSAR, which we periodically update. + +The following scripts automate this workflow, in case one needs a newer commit of AMReX or PICSAR between releases: + +.. code-block:: sh + + ./Tools/Release/updateAMReX.py + ./Tools/Release/updatePICSAR.py + + +Create a new WarpX release +-------------------------- + +WarpX has one release per month. +The version number is set at the beginning of the month and follows the format ``YY.MM``. + +In order to create a GitHub release, you need to: + + 1. Create a new branch from ``development`` and update the version number in all source files. + We usually wait for the AMReX release to be tagged first, then we also point to its tag. + + There is a script for updating core dependencies of WarpX and the WarpX version: + + .. code-block:: sh + + ./Tools/Release/updateAMReX.py + ./Tools/Release/updatePICSAR.py + + ./Tools/Release/newVersion.sh + + For a WarpX release, ideally a *git tag* of AMReX & PICSAR shall be used instead of an unnamed commit. + + Then open a PR, wait for tests to pass and then merge. + + 2. **Local Commit** (Optional): at the moment, ``@ax3l`` is managing releases and signs tags (naming: ``YY.MM``) locally with his GPG key before uploading them to GitHub. + + **Publish**: On the `GitHub Release page <https://github.com/ECP-WarpX/WarpX/releases>`__, create a new release via ``Draft a new release``. + Either select the locally created tag or create one online (naming: ``YY.MM``) on the merged commit of the PR from step 1. + + In the *release description*, please specify the compatible versions of dependencies (see previous releases), and provide info on the content of the release. + In order to get a list of PRs merged since last release, you may run + + .. code-block:: sh + + git log --since=<last-release-tag> | grep -A 3 "Author: " | grep -B 1 "\-\-" | sed '/--/d' | sed -e 's/^ /- /' + + 3. Optional/future: create a ``release-<version>`` branch, write a changelog, and backport bug-fixes for a few days. diff --git a/Docs/source/developers/workflow.rst b/Docs/source/developers/workflow.rst deleted file mode 100644 index 226cf77f3..000000000 --- a/Docs/source/developers/workflow.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. _developers-workflow: - -Workflow -======== - -Create a new Github release ---------------------------- - -WarpX has one release per month. -In order to create a release, you need to: - - 1. Create a new branch from ``development`` and update the version number in all source files. - There is a script for that, so you can do: - - .. code-block:: sh - - cd Tools/DevUtils/ - ./update_release.sh # This replaces the old version number with the new one. - - Then open a PR, as usual. NOTE: do not merge this PR before step 2 is completed. - - 2. Click the ``Draft a new release`` button at https://github.com/ECP-WarpX/WarpX/releases and follow instructions. - Please specify the compatible versions of dependencies (see previous releases), and provide info on the content of the release. - In order to get a list of PRs merged since last release, you may run - - .. code-block:: sh - - git log --since=<date> | grep -A 3 "Author: " | grep -B 1 "\-\-" | sed '/--/d' | sed -e 's/^ /- /' - - where ``<date>`` is the date of the last release, say ``2020-05-01`` if the last release was on May 1, 2020. - - 3. Optional: create a ``release-<version>`` branch, write a changelog, and backport bug-fixes for a few days. |