How to Make a Release
Overview
The release of iMars3D is configured to be done by an automated pipeline via Github action. However, developers might have to create manual releases in case the automated system fails, the process of which requires a working local development. For iMars3D, there are three official release channels, and this document will provide necessary information on how to release iMars3D to all three.
Release to PyPI
Only the stable version of iMars3D should be published to PyPI. To publish a new stable version, the following steps are required:
Checkout the
main
branch and make sure it is updated.Increase the version number in
setup.cfg
if it has not been increased.In the root directory of the repository, run
python -m build --wheel
to build the wheel.The wheel file will be created in the
dist
directory.The name of the wheel should following the standard convention, i.e.
imars3d-<version>-py3-none-any.whl
.
Upgrade your local PyPI publishing tool with
python -m pip install --upgrade twine
.Upload the wheel file to PyPI with
python -m twine upload --repository imars3d dist/*.whl
.
For more information on how to publish to PyPI, please refer to the official documentation: https://packaging.python.org/en/latest/tutorials/packaging-projects/
Release to Conda
The stable version of iMars3D should be released to conda-forge channel, and the nightly version should be released to the project channel, neutronimaging.
To build the nightly version, the following steps are required:
Make sure the local development environment has both
anaconda-client
andconda-build
installed.Checkout the branch
next
.Build the package with
conda build .
.Use
conda build . --output
to locate the built package.Upload package to
neutronimaging
accountContact senior developers for the account credential of
neutronimaging
.Login from command line with
anaconda login
.Upload with
anaconda upload $PACKAGE_PATH
where$PACKAGE_PATH
is the path to the built package.
To build the stable version for conda-forge
, the following steps are required:
Junior developers: STOP!! Contact the maintainer (one of the senior developers) to build and deploy the stable version manually.
Maintainer: Follow the official conda-forge instructions on adding package.