Dependencies & Releases

Update ImpactX’ Core Dependencies

ImpactX has direct dependencies on AMReX and WarpX, which we periodically update.

The following scripts automate this workflow, in case one needs a newer commit of AMReX or WarpX between releases:

Note

./Tools/Release/updateAMReX.py
./Tools/Release/updateWarpX.py

Create a new ImpactX release

ImpactX 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 ImpactX and the ImpactX version:

    ./Tools/Release/updateAMReX.py
    ./Tools/Release/updateWarpX.py
    
    ./Tools/Release/newVersion.sh
    

    For a ImpactX release, ideally a git tag of AMReX & WarpX 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, 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

    git log <last-release-tag>.. --format='- %s'
    
  3. Optional/future: create a release-<version> branch, write a changelog, and backport bug-fixes for a few days.