{% set title = "How to Develop" %} {% set description = "How to develop for Tryton" %} {% set keywords = ["development", "mercurial", "codereview", "patch" ] %} {% set toc = [ ("Report an Issue", 'report-issue', None), ("Submit a Change", 'submit-change', None), ("Guidelines", 'guidelines', [ ("Code", 'guidelines-code', None), ("Documentation", 'guidelines-documentation', None), ]), ("Requirements", 'requirements', None), ("Rules", 'rules', None), ("Publish a Change", 'publish-change', None), ("Backporting", 'backporting', None), ] %} {% extends "layout-toc.html" %} {% from "utils.html" import background with context %} {% block style %} {{ super() }} {{ background('banner-develop') }} {% endblock %} {% block content %}
{{ super() }} {% endblock content %} {% block main %}
TL;DR
Clone the repository:
$ hg clone https://hg.tryton.org/tryton-env
$ cd tryton-env
Make your modification. Submit your change for review:
$ curl -L -o ~/.local/bin/upload.py https://codereview.tryton.org/static/upload.py
$ python ~/.local/bin/upload.py
The Tryton Project has guidelines for both code and documentation.
There are several different places that Tryton documentation can be found. This is to make sure it is available in the right format, at the right time, for different use cases.
So to avoid duplication, and keep the documentation organised and maintainable there are several sets of guidelines:
Your contribution must meet the following requirements:
Name <email>
If the contributor has a significant amount of code, he can add himself to the COPYRIGHT file.
Core developers are people which have push access to the repositories. They are allowed to push small fixes without review. Bigger fixes need approval from other core developers.
In the case of disagreement, a consensus should be reached. As a last resort, the project leader (Cédric Krier) will make the decision.
This part is only for core developers
environment repository up to date with all the subrepos:
Always keep the$ hg commit -S --cwd tryton-env
Push to the remote server:
$ hg push ssh://hg@hg.tryton.org/tryton-env
Sometimes the push is rejected because it creates a new head.
This happens because your local repository is not up to date.$ hg pull --rebase
A fix will be back ported to older series by the maintainer on his own discretion after 1 week in the development branch. The decision is based on the importance of the bug, the availability of workaround and the feasibilities.
Those rules don't apply for security bugs which are applied at once to all affected series and followed by a release.