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.