.. _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