.. _techguide-development-coding:coding:
Coding
------
The GNU Health Hospital Information System component uses the
`Tryton `__ framework, the programming
language used is `Python `__. The code is hosted on
`Codeberg `__
and versioned using Git.
.. _techguide-development-coding:coding-obtaining_your_copy_of_the_code:
Obtaining Your Copy of the Code
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You can get your copy of the latest code by doing an anonymous checkout:
.. code-block:: console
$ git clone https://codeberg.org/gnuhealth/his.git
You can also `browse the code online `__.
.. _techguide-development-coding:coding-coding_style:
Coding style
^^^^^^^^^^^^
The coding style should follow the Python best `practices `__.
and the Tryton `guidelines `__
.. _techguide-development-coding:coding-branching:
Branching
^^^^^^^^^
For the HIS we use the following branches:
* **main**: Stable permanent branch, every merge implies an increase of the version number.
* **dev-x.y**: Develop branch for the next major or minor release. Created from main, merged into release/x.y.
* **bugfix/issue-x**: Temporary branch for fixing a specifix issue. Multiple non critical bugfixes can form the next patchset. Created from main, merged into release/x.y.
* **release/x.y**: Temporary staging branch containing release candidates to prepare the production release. Created from dev-x.y. or bugfix/issue-x, merged into main.
* **hotfix/issue-x**: Temporary branch for fixing a critical issue. Created from main, merged into main.
* **dev-feature**: Temporary develop branch for a specific feature (replace 'feature' by your actual functionality). Created from dev-x.y, merged into dev-x.y.
* **translate**: Permanent branch for receiving Weblate translations. Created from dev-x.y, merged into dev-x.y.
* **wip-branch-description**: If you can not finish one atomic commit in a day, please open a branch named wip-branch-description stating the target branch and a description of your feature or bugfix.
For example: Developing a DHIS2 module for upcoming 5.0 will take more time and commits.
Instead of flooding the dev-5.0 branch with commits we will work on a separate branch and do a pull request once we finished it.
Probably we will also squash commits in the pull request to not flood the history either.
.. thumbnail:: ../../images/HIS_branching.drawio.png
:title: HIS branching strategy
Diagram was created based on this template:
https://gist.github.com/bryanbraun/8c93e154a93a08794291df1fcdce6918