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.

Obtaining Your Copy of the Code

You can get your copy of the latest code by doing an anonymous checkout:

$ git clone https://codeberg.org/gnuhealth/his.git

You can also browse the code online.

Coding style

The coding style should follow the Python best practices. and the Tryton guidelines

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.

Diagram was created based on this template:

https://gist.github.com/bryanbraun/8c93e154a93a08794291df1fcdce6918