Antes que nada, gracias por considerar contribuir con esta iniciativa. Son las personas como tú las que hacen que sea una herramienta útil para estudiantes, profesores y tutores.
Esta guía está basada en esta y esta otra.
Al seguir estas guías estás comunicando que tú respetas el tiempo de las y los que estamos involucrados en esta iniciativa. A cambio, ellas y ellos deberían de forma recíproca resolver tus issues, revisar los cambios y ayudarte a finalizar tus pull requests.
¡Mantén la mente abierta! Mejorar la documentación sugiriendo nuevas entradas o reportar los errores que encuentres son ejemplos de contribuciones que ayudan a mejorar esta iniciativa.
Esperamos que quienes quieran contribuir asuman las siguientes responsabilidades:
- Asegurar la compatibilidad entre plataformas para cada cambio aceptado: Windows, Mac, Linux.
- Crea issues para cualquier cambio mayor y mejora que desearías hacer. Discute las cosas de manera transparente y obtén los comentarios de la comunidad.
- No agregues nuevos archivos a menos de que sea completamente necesario.
- Mantén el versionamiento de las cosas que agregues tan cortos como sea posible.
- Sé amable con las y los recién llegados y apoya la diversidad de nuevas y nuevos
contribuidores de todo tipo de antecedente. Revisa el código de conducta de la comunidad Python.
¿Aún no sabes como empezar a contribuir? Puedes empezar revisando los
issues con etiquetas good first issue
‑principiante‑ y help wanted
- Etiqueta
good first issue
: los issues con esta etiqueta deberían ser triviales de resolver, por ejemplo, un error ortográfico, o un error de formato. - Etiqueta
help wanted
: Estos son issues que pueden ser un poco más complicados que los anteriores.
Ambas listas de issues están ordenadas por la cantidad de comentarios que tienen. Aunque no es perfecto, la cantidad de comentarios es un proxy razonable para saber el impacto que tendrá el cambio.
No seas tímido. Tus comentarios y aportes son siempre bienvenidos. Puedes equivocarte, todos podemos equivocarnos, lo que no podemos hacer es dejar de aprender de nuestros errores, o ser negligentes; pero por lo demás, te alentamos a que pruebes.
Tip
¿Estás por hacer tu primer pull request? Aprende cómo hacerlo en esta serie gratuita How to Contribute to an Open Source Project on GitHub
En este punto, ¡ya estás preparada o preparado para hacer cambios! Siéntete libre de pedir ayuda; todos fuimos principiantes una vez 😸
Important
Si un colaborador te pide que hagas un rebase al pull request, se refiere a que muchísimo código ha cambiado y deberías actualizar la rama para que sea más fácil unirla al resto del código.
Asumimos que si tienes acceso al repo puedes hacer todo lo que estás autorizado a hacer según los permisos de tu rol.
La rama main
está configurada con una regla de protección de requiere:
- Que haya un pull request para hacer un merge.
- Que haya al menos una aprobación del pull request.
- Que uno de los revisores sea code owner.
Tip
Para obtener más información sobre las reglas de protección de las ramas mira este link.
Para obtener más información sobre los code owners mira este link
Para cualquier cosa que sea mayor a una o dos líneas para corregir:
- Crea tu propio fork del código
- Haz los cambios en tu fork
- Cuando creas que los cambios ameritan ser incorporados en el repo:
- Asegúrate de haber seguido el estilo de código del proyecto.
- Envía un pull request solicitando que tus cambios sean incorporados.
Cuando completes un issue para reportar un error, asegúrate de responder estas tres preguntas:
- ¿En qué página estabas navegando? Incluye la URL que muestra el navegador
- ¿Qué viste que consideras incorrecto?
- ¿Qué esperabas ver que consideras correcto?
Preguntas generales sobre el contenido deben ser planteadas a través de los canales de comunicación que proponen los profesores en los cursos o proyectos en los que se consume este contenido.
En caso de que lo que quieras reportar no sea un error en un contenido existente sino la sugerencia de agregar un nuevo contenido, puedes hacerlo también a través de un issue.
Important
Cuando consideres que falta algo, probablemente no estés solo. Busca en la lista de issues si ya no existe uno similar al que estás considerando agregar; si no lo encuentras, crea uno nuevo.
Al crear un issue para pedir que se agregue el contenido que te gustaría ver, asegúrate de que incluya las respuesta a las siguientes preguntas:
- ¿Qué contenido está faltando? Incluye referencias a libros, sitios web, u otros recursos útiles para encontrar lo que estás sugiriendo
- ¿Por qué es necesario?
- ¿Cómo deberíamos agregarlo?
La documentación en este repo está creada utilizando el lenguaje Markdown. Es un lenguaje que permite crear texto con formato utilizando un editor de texto plano.
Mira los siguientes recursos para conocer más sobre este lenguaje:
- Escritura y formato básico. Lee esta guía primero para conocer lo básico que se necesita al editar documentos en Markdown.
- Edición avanzada. Lee esta otra guía para ver cómo crear tablas, bloques de código, diagramas, etc.
- Guía básica. Una guía básica de lo que se puede hacer con Markdown.
- Guía avanzada. Una guía avanzada para usuarios de Markdown.
- Markdown. Sitio de John Grubber, uno de los creadores
- Edición de Markdown en Visual Studio Code. Funcionalidades de Visual Studio Code para la edición de Markdown.
Usamos Visual Studio Code para editar los archivos de este repo. Aunque puedes usar cualquier editor de texto, este documento asume que usas ese editor de código.
Tip
Como probablemente uses el editor en otros proyectos, considera crear un perfil antes de agregar estas extensiones que te sugerimos a continuación. Consulta este link para obtener más información sobre los perfiles en Visual Studio Code.
Instala las siguientes extensiones que son útiles para facilitar la edición:
- Code Spell Checker: Corrector ortográfico para el texto.
- Code Spell Checker - Spanish: Corrector ortográfico para idioma español.
- Markdown Checkboxes: Agrega compatibilidad con casillas de verificación a la vista previa de Markdown.
- Markdown Emoji: Agrega compatibilidad con la sintaxis de emoji a la vista previa de Markdown.
- Markdown Footnotes: agrega compatibilidad con la sintaxis de ^notas al pie a la vista previa de Markdown.
- Markdown Preview GitHub Styling: Utiliza el estilo de GitHub en la vista previa de Markdown.
- Markdown Preview Mermaid Support: Agrega soporte para diagramas en Mermaid.
- Markdown yaml Preamble: Aunque no usamos actualmente las front matters de YAML, podríamos usarlas en el futuro y esta extensión es recomendada.
- markdownlint: Linting de Markdown y controles de estilo.
Otras extensiones útiles:
- Path Intellisense: Para auto-completar de nombres de archivos.
- Rewrap: Para formatear el ancho del archivo a cierto número de columnas, que en nuestro caso es 80.
- Numbered Bookmarks: Para navegar fácilmente dentro de un archivo mediante marcadores.
- Print: Permite imprimir archivos Markdown.
Además, esta es la configuración sugerida del editor y sus extensiones:
{
"files.autoSave": "afterDelay",
"git.enableSmartCommit": true,
"window.commandCenter": true,
"cSpell.language": "en,es-ES",
"editor.renderWhitespace": "selection",
"editor.wordWrapColumn": 120,
"markdown.validate.enabled": true,
"markdown.updateLinksOnFileMove.enabled": "prompt",
"rewrap.wrappingColumn": 80,
"rewrap.autoWrap.enabled": true,
"workbench.editor.untitled.hint": "hidden",
"markdown.validate.enabled": true,
"markdown.updateLinksOnFileMove.enabled": "prompt",
"workbench.startupEditor": "none",
}
El contenido está organizado en estas carpetas:
- Entregable proyecto
- Técnicas y herramientas
- Plantillas
- Conceptos
- Unidades temáticas
Cada carpeta tiene un archivo Markdown ‑con extensión .md
‑ cuyo nombre
coincide con el de la carpeta y sirve como tabla de contenido de la carpeta
‑excepto que usa dos guiones bajos __
en lugar de uno para separar el número
del resto de nombre; esto para que quede ordenado antes de los demás archivos‑:
por ejemplo, la carpeta 4_Conceptos
tiene un archivo 4__Conceptos.md
.
Important
Mira la sección Nombres de archivos, más adelante en este documento, para conocer más detalles sobre las convenciones sobre los nombres de archivos y carpetas.
En algunas carpetas el contenido está organizado de manera jerárquica, pero no
utilizamos sub carpetas, sino que agregamos niveles a los nombres de archivos:
por ejemplo, el tema 5. Unidades temáticas
tiene algunos de los siguientes
niveles:
- 5. Unidades temáticas
- 5.1
- 5.1.1
- 5.1.2
- 5.2
- 5.2.1
- 5.1
Los nombres de los archivos en la carpeta 5_Unidades_tematicas
comienzan con:
5_Unidades_tematicas
5__Unidades_tematicas.md
5_1__⋯.md
5_1_1⋯.md
5_1_2⋯.md
5_2__⋯.md
5_2_1⋯.md
Respetamos la propiedad intelectual dando atribución al origen del contenido incluido en los documentos.
Cuando el contenido de un documento fue tomado de una fuente, incluimos el texto "Tomado de", seguido de una notas al pie, al final de la primera frase del documento.
Esta es la plantilla para un requerimiento funcional o no funcional. Tomado de 1.
Esta es la plantilla para un requerimiento funcional o no funcional. Tomado de [^1].
[^1]: Robertson, S. & Robertson, J. (2012). Mastering the Requirements Process:
Getting Requirements Right, 3<sup>rd</sup> Edition. Addison-Wesley Professional.
Note
Aunque las notas al pie aparecen al final del documento, en el documento en Markdown ponemos la referencia inmediatamente después de donde de usa, y no al final para que sea más fácil editar el documento.
En el caso de una imagen, el texto "Tomado de" va al final del pie de foto, seguido de una nota al pie.
Tip
Mira este link para tener más información sobre cómo crear notas al pie en Markdown.
Cuando usamos tablas en HTML no es posible agregar notas al pie. En ese caso las referencias las agregamos así:
Ver debajo ↓ |
Robertson, S. & Robertson, J. (2012). Mastering the Requirements Process: Getting Requirements Right, 3rd Edition. Addison-Wesley Professional.↩︎
<table>
<tr>
<td>
Ver debajo <span id="back_ref_1"><a href="#ref_1">↓</a></span>
</td>
</tr>
</table>
-----
<span id="ref_1">Robertson, S. & Robertson, J. (2012). Mastering the
Requirements Process: Getting Requirements Right, 3<sup>rd</sup> Edition.
Addison-Wesley Professional.</span><a href="#back_ref_1" title="Volver...">↩︎</a>
Al incluir figuras en un documento las acompañamos de una pequeña leyenda debajo que explica o describe brevemente la figura. Esa descripción se utiliza también como como texto alternativo al embeber la imagen. Lo mismo hacemos con las tablas cuando resulta necesario o conveniente.
Estas leyendas las incluimos en itálica, asegurándonos de asociarles un número
según la cantidad de figuras presentes hasta el momento en el documento,
empezando por uno —1—. Si hay figuras y tablas en un mismo documento, las
contamos por separado, por lo que puede haber una Tabla 1 y una Figura 1 en
un mismo documento. Figura
o Tabla
se separa del resto de la leyenda por :
—dos puntos—.
Antes de la imagen agregamos un elemento HTML anchor
cuyo identificar id
es
figura
o tabla
, según corresponda, seguido del número respectivo. Esto
permite hacer referencia a esa figura con [Figura N](#figura-n)
como se
muestra más abajo.
Al incluir las leyendas de las figuras y tablas de esta forma, podemos crear referencias desde dentro y fuera del documento.
Figura 1: El ciclo de vida DAD.
§
Ver Figura 1.
<a id="figura-1"/>
![El ciclo de vida DAD](/diagrams/DAD_Lifecycle.svg)
*Figura 1: El ciclo de vida DAD.*
§
Ver [Figura 1](#figura-1).
Note
Hay configurado un snippet figura
para insertar el código necesario para
incluir una figura.
Usamos el símbolo *
para las viñetas; no usamos -
.
Cuando queremos incluir en una frase un texto en forma de aclaración o
explicación ‑lo que en gramática se conoce como
inciso‑, usamos ‑
que corresponde con
la raya o EM DASH
, código Unicode U+2014
o
UTF-8 E28094
; no usamos -
o guión; una Github
Action reemplaza ese
carácter por NON-BREAKING HYPHEN
, código Unicode U+2011
o UTF-8 E28091
.
Puedes generar una raya:
- En Windows: con Ctrl + Alt + -
- En Mac: con Option + Shift + -
Cuando no existe una traducción ampliamente aceptada de una palabra en inglés u otro idioma al español, preferimos usar la palabra original; esa palabra la escribimos en cursiva.
Incluimos notas ‑notes‑, consejos ‑tips‑, avisos ‑warnings‑, etc. usando la notación de citas en bloque según se describe aquí.
Note
Destaca información que los usuarios deben tener en cuenta, incluso cuando hojean.
Tip
Información opcional para ayudar al usuario a tener más éxito.
Important
Información crucial necesaria para que los usuarios tengan éxito.
Warning
Contenido crítico que exige atención inmediata del usuario debido a riesgos potenciales.
Caution
Consecuencias potenciales negativas de una acción.
> [!NOTE]
> Destaca información que los usuarios deben tener en cuenta, incluso cuando hojean.
> [!TIP]
> Información opcional para ayudar al usuario a tener más éxito.
> [!IMPORTANT]
> Información crucial necesaria para que los usuarios tengan éxito.
> [!WARNING]
> Contenido crítico que exige atención inmediata del usuario debido a riesgos potenciales.
> [!CAUTION]
> Consecuencias potenciales negativas de una acción.
No usamos caracteres especiales o letras con tilde en los nombres de archivos.
Tampoco usamos espacios, separamos las palabras que componen el nombre con guión
bajo _
.
El nombre comienza con mayúscula.
Para manejar la lista de TODO usamos la extensión Todo Tree que permite ver los TODO directamente en el editor.
También usamos la GitHub action TODO to Issue para convertir los nuevos TODO en issues.
Note
La línea que ves debajo y el texto que le sigue son la nota al pie que mostramos en la sección de referencias.
Footnotes
-
Robertson, S. & Robertson, J. (2012). Mastering the Requirements Process: Getting Requirements Right, 3rd Edition. Addison-Wesley Professional. ↩