Cómo Desarrollar

TL;DR
Clona el repositorio:

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

Consulta la configuración en README.

Realiza tu modificación.

$ hg commit
$ hg push -r my-change

Haz clic en el enlace para crear la solicitud de integración.

Enviar un cambio

El proyecto usa mercurial como sistema de control de versiones con hg-evolve extension.

  • Sigue el guidelines.
  • Solicitar acceso to the proyecto(en el menú desplegable de acciones junto al título del grupo).
  • Envía tu cambio con un solicitud de integración that you assign to yourself.
  • Asegúrate de no romper las pruebas ejecutándolas y agrega pruebas si es necesario.
  • Resuelve todos los hilos abiertos por los revisores.
  • Una vez aceptada, tu solicitud de integración será fusionada por un publicador de Mercurial.

There is no need to rebase merge requests too often, even when there are conflicts, as this is often just for CHANGELOG entries.

To ease the review process, avoid pushing rebase and modifications at the same time and set a note when amending a changeset.

To avoid consuming CI resources, mark the merge request as a draft until it is ready.

Guías

El proyecto Tryton tiene guías tanto para código como para documentación.

Código

Documentación

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:

Mensaje de commit

  • Usa un título corto que empiece con mayúscula.
    • Usa el modo imperativo.
      De modo que complete la frase "Con este cambio, el proyecto…".
    • Usa nombres humanos de objetos en lugar del nombre técnico.
      Como "Factura" en lugar de "account.invoice".
  • Agrega detalles adicionales en el cuerpo del mensaje (opcional).
    • Menos de 80 caracteres por línea.
    • Explicar WHAT the change is, but most importantly WHY el cambio es necesario.
    • Deja una línea en blanco entre el cuerpo y el título.
    • Separa los párrafos del cuerpo con líneas en blanco.
    • Usa un guion (-) for bullet points if needed.
    • Usa sangrías colgantes si es necesario.
  • Incluye el pattern to close incidencias vinculadas (opcional).

Requisitos

Tu contribución debe cumplir los siguientes requisitos:

Debe

  • Al enviar un cambio, el contribuidor acepta el Certificado de origen del desarrollador.
  • El correo del contribuidor debe ser una dirección válida.
  • El dominio del correo del contribuidor no debe contener tryton.
  • The username of a mercurial changeset must be in the form:
    Full Name <email>

Deseable, pero no obligatorio

  • The contributor name should be the real name of the natural person who submits the code.
  • El correo del contribuidor debe estar vinculado a un solo nombre de contribuidor.

Reglas

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) tomará la decisión.

Roles

  • Los desarrolladores pueden crear solicitudes de integración.
  • Los publicadores de Mercurial pueden fusionar solicitudes en la rama predeterminada.
  • Los mantenedores pueden hacer push directamente en todas las ramas para publicar versiones.

Publicar un cambio

Esta parte es solo para publicadores de Mercurial

Prefiere publicación sin merge (fast-forward).

Aplasta los commits de corrección que el desarrollador haya hecho en lugar de enmendar.

Ensure commit message contains proper pattern to close incidencias vinculadas.

Retroportado

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.