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
mainbranch and make sure it is updated.Increase the version number in
setup.cfgif it has not been increased.In the root directory of the repository, run
python -m build --wheelto build the wheel.The wheel file will be created in the
distdirectory.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-clientandconda-buildinstalled.Checkout the branch
next.Build the package with
conda build ..Use
conda build . --outputto locate the built package.Upload package to
neutronimagingaccountContact senior developers for the account credential of
neutronimaging.Login from command line with
anaconda login.Upload with
anaconda upload $PACKAGE_PATHwhere$PACKAGE_PATHis 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.