IMAS-Python development and release process¶
IMAS-Python development follows the a fork-based model described in the contributing guidelines.
Creating an IMAS-Python release¶
Create a Pull Request from
developtomain.Add a change log to the Pull Request, briefly describing new features, bug fixes, and update accordingly the Changelog.
The PR is reviewed and merged by the maintainers who also create the release tags.
After the release PR is merged, update the Easybuild configurations for SDCC modules in the easybuild-easyconfigs repository. See the next section for more details on how to do this.
Updating and testing the IMAS-Python Easybuild configuration¶
The following steps must be performed for each of the supported tool chains
(currently intel-2023b, foss-2023b):
Create the
.ebfile for the new release.Copy the
.ebfile from the previous release.Update the
versionto reflect the just-released version tag.If any of the IMAS-Python dependencies in
pyproject.tomlwhere updated or changed since the previous release, update the easybuild dependencies:builddependenciescontains build-time dependencies which are available as a module on SDCC.dependenciescontains run-time dependencies which are available as a module on SDCC.exts_listcontains python package dependencies (and potentially dependencies of dependencies) which are not available in any of the Python modules on SDCC.
Update the checksum of imas: download an archive of the IMAS-Python repository from bitbucket. This is easiest to do by copying the following URL, replace
<version>with the version tag, and paste it in a web browser:https://github.com/iterorganization/IMAS-Python/archive/refs/tags/<version>.tar.gzThen, calculate the hash of the downloaded archive with
sha256sumand update it in the.ebfile.
Test the easybuild configuration:
Create an easybuild module, replace
<eb_file>with the filename of the.ebfile created in step 1.module purge module load EasyBuild eb --rebuild <eb_file>If this is unsuccessful, investigate the error and update the
.ebconfiguration. A useful environment variable for debugging isexport PIP_LOG=pip.log, which instructs pip to write logs to the specified file (pip.login this example).If the module was successfully installed by easybuild, load it:
module purge module use ~/.local/easybuild/modules/all/ module load IMAS-Python/<version>-<toolchain> module laod IMAS-AL-CoreSanity check the module, for example by running the
pytestunit tests.