Developer documentation
Contents:
The project consists in different repositories, specifically this section focus on the repository containing the source code and the documentation.
This repository has two protected branches main and dev, plus any other additional non protected branches.
The logic is that dev branch is used for the active development, main for the deployment.
On both branches each commit triggers a CI pipeline
on the Freeport Jenkins server this server do some checks on the code (specified in the
Jenkinsfile on top of the repository). Specifically it:
Lint the code
Fail if a minimal linting vote is reached
Test the code and fail if some test is not passed
Fail if a minimal percentage of code is not tested
Build the documentation
Fail if a minimal percentage of the code is not documented
If the commit is tagged as release version (using semantic versioning specification) it publishes it to PyPI
The difference between the two branches is that the state of the pipeline is only informative on the dev branch
(it means that it only shows the failing) but the positive outcome is imposed a requirement for the PR on main branch to be approved and merged.
In particular the development divide between:
development of tools for helping the contribution process
development of the code common for the different pdf reports (for example the source code related to the options and behaviour of the
freeportscommand)development of the code for parsing the different pdf report formats
development of tests on the code
writing of the documentation
internationalization of the code (translation of messages in output of the command)
internationalization of the documentation (translation of the documentation)
you can consult the specific guide related to the type of contribution that you want to do. When you feel comfortable with the concepts you can go forward with the workflow examples provided; this page not only contains video expaining the possible contributions but also how to deploy them.