Development of APBuilder#
Install all pre-requisites as defined in the home page.
Software Development#
Using git, clone the repo.
Install the Python application locally, including all development and testing dependencies, using the following command:
pip install -e .[dev,test]
Running unit test#
The unit tests are using the pytest framework.
Run the following command in your terminal to execute unit test:
pytest
This will generate a code coverage report accessible in the coverage-reports directory.
It includes an HTML report accessible in htmlcov\index.html, which you can open in your preferred web browser.
Documentation Development#
The documentation is developed using MkDocs and files are located in the docs directory.
To develop the documentation you must install the following:
pip install -e .[docs]
MkDocs comes with a built-in dev-server that lets you preview your documentation as you work on it.
Make sure you're in the same directory as the mkdocs.yml configuration file, and then start the
server by running the mkdocs serve command.
mkdocs serve
Release Process#
Here are the steps to make a new release with a version number using semantic versioning.
- Create a new branch from the
mainbranch - On the new branch, update the
CHANGELOG.md- Replace
\[Unreleased\]with the version number - Replace
yyyy-mm-ddwith the current date
- Replace
- Commit changes
- Create MR and merge into
mainbranch - On GitLab, create
New Release- Tag Name: version number
- Release Title: version number
- Everything else as default
The CI pipeline will be triggered by the tag creation.
This will build and deploy the Python package to the GitLab Package Registry.
Once the pipeline is completed, follow this steps:
- Go to the
Package Registrypage - Click on the new version
- Copy the URL
- Go to the
Releasespage - Click on the new version
- Click on
Edit release - Add a new
Release assets- URL: the URL of the package
- Link title:
Python Package - Type:
Package
This completes the release process of a new version.
Then you should update the CHANGELOG.md on the main branch to have it ready for new development.
Default Changelog#
## \[Unreleased\] - yyyy-mm-dd
### Added
### Changed
### Deprecated
### Fixed
### Removed
### Security