Colaborando en la documentación

La documentación es tan importante como el código. Esta sigue exactamente los mismos principios: una vez y sólo una, pruebas, facilidad de mantenimiento, extensibilidad, optimización y reconstrucción sólo por nombrar algunos. Y, por supuesto, la documentación tiene errores, errores tipográficos, guías difíciles de leer y mucho más.

Colaborando

Antes de colaborar, necesitas familiarizarte con el lenguaje de marcado empleado en la documentación.

La documentación de Symfony2 se encuentra alojada en GitHub:

https://github.com/symfony/symfony-docs

Si deseas enviar un parche bifurca el repositorio oficial en GitHub y luego clona tu bifurcación:

$ git clone git://github.com/TUNOMBRE/symfony-docs.git

Consistent with Symfony’s source code, the documentation repository is split into multiple branches: 2.0, 2.1, 2.2 corresponding to the different versions of Symfony itself. The master branch holds the documentation for the development branch of the code.

Unless you’re documenting a feature that was introduced after Symfony 2.0 (e.g. in Symfony 2.1), your changes should always be based on the 2.0 branch. To do this checkout the 2.0 branch before the next step:

$ git checkout 2.0

Truco

Your base branch (e.g. 2.0) will become the “Applies to” in the Formato de la solicitud de atracción that you’ll use later.

A continuación, crea una rama dedicada a tus cambios (para mantenerla organizada):

$ git checkout -b improving_foo_and_bar

Ahora puedes hacer los cambios directamente en esta rama y confirmarlos ahí. Cuando hayas terminado, impulsa esta rama a tu GitHub e inicia una solicitud de atracción.

Creando una solicitud de atracción

Siguiendo el ejemplo, la solicitud de atracción de manera predeterminada debe ser entre tu rama improving_foo_and_bar y la rama master de symfony-docs.

../../_images/docs-pull-request.png

Si has hecho tus cambios basándote en la rama 2.0, entonces necesitas cambiar la rama base para que sea 2.0 en la página anterior:

../../_images/docs-pull-request-change-base.png

Nota

Todos los cambios hechos a una rama (p. ej. 2.0) serán fusionados en cada «nueva» rama (p. ej. 2.1, maestra, etc.) para la siguiente liberación en una base semanal.

GitHub aborda en detalle el tema de las solicitudes de atracción.

Nota

La documentación de Symfony2 está bajo una licencia Creative Commons Attribution-Share Alike 3.0 Unported Licencia.

You can also prefix the title of your pull request in a few cases:

  • [WIP] (Work in Progress) is used when you are not yet finished with your pull request, but you would like it to be reviewed. The pull request won’t be merged until you say it is ready.
  • [WCM] (Waiting Code Merge) is used when you’re documenting a new feature or change that hasn’t been accepted yet into the core code. The pull request will not be merged until it is merged in the core code (or closed if the change is rejected).

Formato de la solicitud de atracción

Unless you’re fixing some minor typos, the pull request description must include the following checklist to ensure that contributions may be reviewed without needless feedback loops and that your contributions can be included into the documentation as quickly as possible:

| Q             | A
| ------------- | ---
| Doc fix?      | [yes|no]
| New docs?     | [yes|no] (PR # si es aplicable en symfony/symfony)
| Applies to    | [numero de versiones Symfony a las que es aplicable]
| Fixed tickets | [lista separada por comas de los boletos corregidos por PR]

Un envío de ejemplo ahora se ve de la siguiente manera:

| Q             | A
| ------------- | ---
| Doc fix?      | yes
| New docs?     | yes (symfony/symfony#2500)
| Applies to    | all (or 2.1+)
| Fixed tickets | #1075

Truco

Por favor, ten paciencia. Puede tomar desde 15 minutos hasta varios días para que tus cambios aparezcan en el sitio web symfony.com después de que el equipo de documentación fusione tu solicitud de atracción. Puedes comprobar si tus cambios introducen algunas cuestiones sobre el marcado yendo a la página de Errores en la generación de documentación (esta se actualiza en Francia cada noche a las 3 a.m. cuando el servidor vuelve a generar la documentación).

Documentando nuevas características o cambios de comportamiento

Si estás documentando un nuevo tipo de característica o un cambio que se esté haciendo en Symfony2, deberías preceder tu descripción del cambio con una etiqueta .. versionadded:: 2.X y una breve descripción:

.. versionadded:: 2.2
    El método ``askHiddenResponse`` se añadió en *Symfony 2.2*.

Además, puedes hacer una pregunta y ocultar la respuesta. Esto particularmente es...

Si estás documentando un cambio de comportamiento, puedría ser útil describir brevemente cómo ha cambiado tal comportamiento.

.. versionadded:: 2.2
    La función ``include()`` es una nueva característica de *Twig* que está disponible en *Symfony 2.2*. Anteriormente se utilizaba la etiqueta ``{% include %}``.

Siempre que se libere una nueva versión menor de Symfony2 (p. ej. 2.3, 2.4, etc.), se crea una nueva rama de la documentación desde la rama maestra. En este punto, todas las etiquetas versionadded para las versiones de Symfony2 que han alcanzado su fin-de-vida serán eliminadas. Por ejemplo, si Symfony 2.5 fuera liberado hoy, y 2.2 recientemente alcanzó su fin-de-vida, la etiqueta versionadded 2.2 sería eliminada de la nueva rama 2.5.

Estándares

Con el fin de ayudar lo más posible al lector y crear código de ejemplo que se vea y sienta familiar, debes seguir estas reglas:

  • El código sigue los Estándares de codificación de Symfony así como los Estándares de codificación de Twig;
  • Each line should break approximately after the first word that crosses the 72nd character (so most lines end up being 72-78 characters);
  • Para evitar desplazamiento horizontal en bloques de código, preferimos romper una línea correctamente si rebasa el 85º carácter;
  • Cuándo pliegues una o más líneas de código, coloca ... en un comentario en el punto del pliegue. Estos comentarios son: // ... (php), # ... (yaml/bash), {# ... #} (twig), <!-- ... --> (xml/html), ; ... (ini), ... (texto);
  • Cuándo pliegues una parte de una línea, p. ej. un valor variable, coloca ... (sin comentario) en el sitio del pliegue;
  • Descripción del código plegado: (opcional) si pliegas varias líneas: la descripción del pliegue se puede colocar después de los ...; si sólo pliegas una parte de una línea: la descripción se puede colocar antes de la línea;
  • Si se considera útil, un bloque de código codeblock debe comenzar con un comentario que contenga el nombre del archivo en el bloque de código. No coloques una línea de espacio en blanco después de este comentario, a no ser que la próxima línea también sea un comentario;
  • Debes poner un $ delante de cada línea del intérprete;
  • El atajo :: es preferible sobre .. code-block:: php para comenzar un bloque de código PHP.
  • Deberías utilizar la forma en vez de nosotros.

Un ejemplo:

// src/Foo/Bar.php

// ...
class Bar
{
    // ...

    public function foo($bar)
    {
        // ajusta foo al valor de bar
        $foo = ...;

        // ... comprueba si $bar tiene el valor correcto

        return $foo->baz($bar, ...);
    }
}

Prudencia

en Yaml debes dejar un espacio después de { y antes de } (p. ej. { _controlador: ... }), pero esto no lo debes hacer en Twig (p. ej. {'hola' : 'valor'}).

Informando un problema

La contribución más sencilla que puedes hacer es reportar algún problema: a typo, a grammar mistake, a bug in a code example, a missing explanation, and so on.

Pasos a seguir:

  • Reporta un error en el rastreador de fallos;
  • (Opcional) Envía un parche.

Traduciendo

Lee el documento dedicado.

Bifúrcame en GitHub