Developer Guide
python3 -m pip install
git clone git@github.com:Issamricin/dmc-view.git
cd dmc-view
pip install -e .
Publish Notes
Steps to test the publish on pypi see workflow files for publish on pypi test server (release_test.yaml)
git clone git@github.com:Issamricin/dmc-view.git
python -m venv .venv
You need to install tox on to run the workflow tox task or env run task
python -m pip install tox
tox -v -s false -e pin-deps
tox -e type -v -s false
tox -v -s false | tee test_output.log
tox -e coverage --sitepackages -v -s false
tox -e wheel-test -s false
tox -e check -v -s false
tox -e isort -vv -s false
tox -e black -vv -s false
tox -e ruff -vv -s false
tox -e prospector -vv -s false
python -m pip install build
python -m build -s
python -m build --wheel
python -m pip install --upgrade twine
twine check dist/*
Now you need to have your test project setup on testpypi Publishing so to trigger the workflow you need to create a test tag and push it so it triggers the release_test.yaml Before you do that update your package version in the toml, tox and __init__.py file
Developer Notes
Testing, Documentation Building, Scripts, CI/CD, Static Code Analysis for this project.
Test Suite, using `pytest`_, located in tests dir
Parallel Execution of Unit Tests, on multiple cpu’s
Documentation Pages, hosted on readthedocs server, located in docs dir
CI(Continuous Integration)/CD(Continuous Delivery) Pipeline, running on Github Actions, defined in .github/
Test Job Matrix, spanning different platform’s and python version’s
Platforms: ubuntu-latest
Python Interpreters: 3.13
Continuous Deployment
Production
Python Distristribution to `pypi.org`_, on tags v*, pushed to main branch
Docker Image to `Dockerhub`_, on every push, with automatic Image Tagging
Staging
Python Distristribution to `test.pypi.org`_, on “pre-release” tags v*-rc, pushed to release branch
Configurable Policies for Docker, and Static Code Analysis Workflows
Automation, using `tox`_, driven by single tox.ini file
Code Coverage measuring
Build Command, using the `build`_ python package
Pypi Deploy Command, supporting upload to both `pypi.org`_ and `test.pypi.org`_ servers
Type Check Command, using `mypy`_
Lint Check and Apply commands, using the fast `Ruff`_ linter, along with `isort`_ and `black`_
Prerequisites
You need to have Python and PySide6 installed for Development
API Documentation
We follow Google style documentation for packages, modules, classes, methods