Developer’s guide
Code versionning
Package version follows semantic versionning conventions and is defined in myria3d._version.py
.
Releases are created when new high-level functionnality are implemented (e.g. a new step in the production process), with a documentation role. A prod-release-tag
is created that tracks an arbitrary commit, and serves as a mean to make a few models, model card, and config accessible via its associated release.
Tests
Tests can be run in an activated environment with.
conda activate myria3d
python -m pytest -rA -v
Continuous Integration (CI)
New features are developped in ad-hoc branches (e.g. 2023MMDD-Feature-Name
).
CI tests are run for push and pull request on the main
branche. The workflow builds a docker image, runs linting, and tests the code.
Continuous Delivery (CD)
In case of push / accepted merge to the main
branch, and if the CI workflow is successful (i.e. docker build is complete, tests pass, and code is PEP8 compliant), a docker image is pushed to an in-house Nexus image repository.
Additionnaly, images may be built for feature branches, for further testings / staging. Details are in workflow cicd.yaml
.
See [../tutorials/use.md] for how to leverage such image to run the app.
Additionnaly, pushes on the main
branch build this library documentation, which is hosted on Github pages.