Developer Guide#
exaslpm is a tool for installing packages from different source channels using different installers like apt, pip, conda, etc… This document explains internals of this tool.
Preparation#
Get the environment up and running.
Requirements#
Install Poetry#
sudo apt install python3-poetry
Install dependencies#
poetry install
Creating a Standalone Executable#
A standalone executable for linux environment can be created as follows. It will be created under dist folder.
poetry run -- nox -s build-standalone-binary -- --executable-name "exaslpm"
Creating a Release#
Prerequisites#
Change log needs to be up to date
unreleasedchange log version needs to be up-to-dateRelease tag needs to match package
- For Example:
Tag: 0.4.0
`poetry version -s`: 0.4.0
Preparing the Release#
Run the following nox task in order to prepare the changelog.
poetry run -- nox -s release:prepare
Triggering the Release#
In order to trigger a release a new tag must be pushed to Github.
poetry run -- nox -s release:trigger
What to do if the release failed?#
The release failed during pre-release checks#
Delete the local tag
git tag -d x.y.zDelete the remote tag
git push --delete origin x.y.zFix the issue(s) which lead to the failing checks
Start the release process from the beginning
One of the release steps failed (Partial Release)#
Check the Github action/workflow to see which steps failed
Finish or redo the failed release steps manually
Note
Example
Scenario: Publishing of the release on Github was successfully but during the PyPi release, the upload step got interrupted.
Solution: Manually push the package to PyPi
Running Tests#
You can execute all tests in a single file with the following command:
poetry run -- nox -s test:unit -- --coverage
poetry run -- nox -s test:integration