{% set title = "How to Develop" %} {% set description = "How to develop for Tryton" %} {% set keywords = ["development", "mercurial", "codereview", "patch" ] %} {% set toc = [ ("Submit a Change", 'submit-change', None), ("Guidelines", 'guidelines', [ ("Code", 'guidelines-code', None), ("Documentation", 'guidelines-documentation', None), ("Commit Message", 'commit-message', None), ]), ("Requirements", 'requirements', None), ("Rules", 'rules', None), ("Roles", 'roles', 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 %}

{{ title }}

{{ super() }} {% endblock content %} {% block main %}

TL;DR
Clone the repository:

$ hg clone https://foss.heptapod.net/tryton/tryton
$ cd tryton
$ hg topic my-change

Make your modification.

$ hg push

Click on the link to create the Merge Request.

Submit a Change

The project is using mercurial as Version Control System with the hg-evolve extension.

Guidelines

The Tryton Project has guidelines for both code and documentation.

Code

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:

Commit Message

Requirements

Your contribution must meet the following requirements:

Must

Nice to have, but not required

Rules

If the contributor has a significant amount of code, he can add himself to the COPYRIGHT file of the modified packages.

In the case of disagreement, a consensus should be reached. As a last resort, the project leader (Cédric Krier) will make the decision.

Roles

Publish a Change

This part is only for Mercurial Publishers

Prefer publication without merge (fast-forward).

Squash fix commits that the developer may have done instead of amending.

Ensure commit message contains proper pattern to close linked issues.

Backporting

A fix will be back ported to older series by the maintainer on his own discretion using a backport merge request. 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.

{% endblock main %}