Skip to content

Latest commit

 

History

History
85 lines (63 loc) · 3.77 KB

File metadata and controls

85 lines (63 loc) · 3.77 KB

Contribuyendo a Zen C

¡Primero que nada, gracias por considerar contribuir a Zen C! Son personas como tú las que hacen grande a este proyecto.

Damos la bienvenida a todas las contribuciones, ya sea arreglando bugs, añadiendo documentación, proponiendo nuevas características, o simplemente reportando problemas.

Cómo Contribuir

El flujo de trabajo general para contribuir es:

  1. Haz un Fork del Repositorio: Usa el flujo de trabajo estándar de GitHub para hacer un fork del repositorio a tu propia cuenta.
  2. Crea una Rama de Característica: Crea una nueva rama para tu característica o corrección de errores. Esto mantiene tus cambios organizados y separados de la rama principal.
    git checkout -b feature/NuevaCosa
  3. Haz Cambios: Escribe tu código o cambios de documentación.
  4. Verifica: Asegúrate de que tus cambios funcionen como se espera y no rompan la funcionalidad existente (ver Ejecutando Pruebas).
  5. Envía un Pull Request: Empuja tu rama a tu fork y envía un Pull Request (PR) al repositorio principal de Zen C.

Problemas (Issues) y Solicitudes de Extracción (Pull Requests)

Usamos GitHub Issues y Pull Requests para rastrear errores y características. Para ayudarnos a mantener la calidad:

  • Use Plantillas: Al abrir un Issue o PR, use las plantillas proporcionadas.
    • Reporte de Error: Para reportar errores.
    • Solicitud de Función: Para sugerir nuevas características.
    • Solicitud de Extracción: Para enviar cambios de código.
  • Sea Descriptivo: Proporcione tantos detalles como sea posible.
    • Comprobaciones Automatizadas: Tenemos un flujo de trabajo automatizado que verifica la longitud de la descripción de nuevos Issues y PRs. Si la descripción es demasiado corta (< 50 caracteres), se cerrará automáticamente. Esto es para asegurar que tenemos suficiente información para ayudarle.

Guías de Desarrollo

Estilo de Código

  • Sigue el estilo de C existente que se encuentra en el código base. La consistencia es clave.
  • Puedes usar el archivo .clang-format proporcionado para formatear tu código.
  • Mantén el código limpio y legible.

Estructura del Proyecto

Si estás buscando extender el compilador, aquí hay un mapa rápido del código base:

  • Parser: src/parser/ - Contiene la implementación del parser de descenso recursivo.
  • Codegen: src/codegen/ - Contiene la lógica del transpilador que convierte Zen C a GNU C/C11.
  • Biblioteca Estándar: std/ - Los módulos de la biblioteca estándar, escritos en el propio Zen C.

Ejecutando Pruebas

La suite de pruebas es tu mejor amiga al desarrollar. Por favor, asegúrate de que todas las pruebas pasen antes de enviar un PR.

Ejecutar Todas las Pruebas

Para ejecutar la suite de pruebas completa usando el compilador por defecto (usualmente GCC):

make test

Ejecutar Prueba Específica

Para ejecutar un solo archivo de prueba para ahorrar tiempo durante el desarrollo:

./zc run tests/test_match.zc

Probar con Diferentes Backends

Zen C soporta múltiples compiladores de C como backends. Puedes ejecutar pruebas contra ellos específicamente:

Clang:

./tests/run_tests.sh --cc clang

Zig (cc):

./tests/run_tests.sh --cc zig

TCC (Tiny C Compiler):

./tests/run_tests.sh --cc tcc

Proceso de Pull Request

  1. Asegúrate de haber añadido pruebas para cualquier nueva funcionalidad.
  2. Asegúrate de que todas las pruebas existentes pasen.
  3. Actualiza la documentación (archivos Markdown en docs/, translations/ o README.md) si es apropiado.
  4. Describe tus cambios claramente en la descripción del PR. Enlaza a cualquier issue relacionado.

¡Gracias por tu contribución!