Secciones

Contribuciones


Cómo contribuir en Phalcon

Phalcon es un proyecto de código abierto que depende en gran medida de los esfuerzos y contribuciones voluntarias. ¡Por lo que son bienvenidas las contribuciones de todos!

Por favor, lea con calma este documento para compenetrarse con el proceso de colaboración, de tal manera que sea lo más transparente y eficiente posible para toda la comunidad. Al seguir estas guías será posible resolver los problemas más rápido, mejorar la comunicación y ¡avanzar con el proyecto hacia adelante entre todos!

El código fuente de Phalcon (junto con la documentación, sitios web, etc.) se almacena en GitHub. Los repositorios se encuentran disponibles en nuestra página de organización.

Para contribuir en Phalcon es suficiente con crear un pull request en GitHub.

Hay una plantilla muy útil para crear el pull request. Es muy importante y útil para la comunidad, incluir las pruebas del pull request. Cada pull request será revisado por un colaborador central (alguien con permiso para fusionar los pull requests). Basado en el tipo y contenido del pull request, podría ser:

  • fusionado inmediatamente o
  • puesto en espera, donde el revisor requiere cambios (estilo, pruebas, etc.)
  • puesto en espera, si una discusión es necesaria (comunidad, equipo central, etc.)
  • rechazado

NOTA: Por favor, asegúrese que la rama de destino a la que envía el pull request es la correcta y que ya ha rebasado su código. Tenga en cuenta que los pull requests a la rama master no están permitidos.

Documentación

Si la programación en Zephir le parece desalentadora, hay muchas otras áreas en las cuales se puede contribuir. Por ejemplo, se puede revisar o corregir la documentación, en caso que se presente algún error tipográfico o de contenido. También es posible mejorar la documentación contribuyendo con más ejemplos en las páginas correspondientes.

El procedimiento es muy sencillo: solo hay que ir al repositorio de docs, hacer un fork, realizar los cambios y enviar el pull request.

NOTA: solo es posible hacer cambios en el repositorio de docs en la versión en inglés, que se encuentra en la carpeta en.

Traducciones

Para contribuir con la traducción de los documentos de Phalcon a su lengua materna puede utilizar el excelente servicio de nuestros amigos de Crowdin. Nuestro proyecto está ubicado aquí. Si su idioma no está listado, por favor, envíenos un mensaje para que podamos añadirlo.

Preguntas y ayuda

NOTA: Solo aceptamos reportes de errores; las solicitudes de nuevas funcionalidades y pull requests se deben hacer en GitHub. Para hacer preguntas sobre el uso del framework o para solicitar ayuda visite el foro oficial o nuestro servidor en Discord.

Lista de verificación para reporte de errores

  • Verificar que se está utilizando la última versión de Phalcon antes de reportar un incidente en GitHub.
  • Solo se revisarán los errores encontrados en la última versión publicada de Phalcon.
  • Utilizar la plantilla para reportar problemas, incluyendo todos los pasos necesarios para que el equipo principal pueda reproducirlos y resolverlos. El detalle en estos pasos reduce de manera significativa el tiempo necesario para identificar la causa del problema y resolverlo. Agradecemos también (si es posible) que se incluya el código de las pruebas con errores. Para más información, por favor, revise la guía para crear pruebas reproducibles.
  • Como parte del reporte, por favor incluya información adicional, como el sistema operativo, versión de PHP, versión de Phalcon, servidor web, memoria, etcétera.
  • Si se trata de un error de violación de acceso (Segmentation Fault) es necesario incluir el registro de seguimiento (backlog). Por favor consulte la guía de generación de traza inversa para obtener más información.

Generar una traza inversa

A veces, debido a un error de violación de acceso (Segmentation Fault), Phalcon podría bloquear algunos procesos de su servidor web. Para ayudarnos a encontrar la causa de esta violación, es necesario incluir la traza inversa de la caída del sistema.

Por favor consulte los siguientes enlaces para obtener instrucciones sobre cómo generar dicha traza:

Lista de verificación para Pull Request(s)

  • No se aceptan pull requests a la rama master. Por favor haga un fork del repositorio y cree su rama (branch) de la rama “fuente” necesaria, por ejemplo 4.0.x. Si es el caso, por favor haga un rebase de su rama antes de enviar el pull request. En caso de que se presenten conflictos, le pediremos que por favor vuelva a hacer el rebase de su rama.
  • Agregar pruebas al pull request o ajustar las existentes. Es muy importante hacerlo porque básicamente es la justificación del pull request. Por favor, revise la página de pruebas para saber cómo configurar un entorno de pruebas y cómo escribirlas.
  • Dado que Phalcon está escrito en Zephir, por favor, no envíe commits que modifiquen los archivos creados en C directamente
  • Phalcon sigue una guía de estilo. Por favor, instale el complemento editorconfig en su entorno de desarrollo integrado (IDE) que se encuentra en el archivo .editorconfig del repositorio, así no tendrá que preocuparse por las normas de codificación. Todas las pruebas en código PHP se ajustan a la normativa PSR-2
  • Suprimir cualquier cambio hecho a los archivos ext/kernel, *.zep.c y *.zep.h antes de enviar su pull request
  • Más información aquí.

Antes de enviar una nueva funcionalidad, por favor cree una Solicitud de Nueva Funcionalidad (New Feature Request, NFR) en GitHub para debatir el impacto de incluiarla o el de los cambios necesarios en la extensión principal. Una vez que la funcionalidad sea aprobada, confirme que su pull request (PR) contiene lo siguiente:

  • Una actualización al CHANGELOG.md
  • Pruebas Unitarias
  • Documentación o Ejemplos de Uso

Obtener Ayuda

Si tiene alguna pregunta sobre cómo utilizar Phalcon, consulte la página de soporte.

Solicitar Funcionalidades

Si tienes algún cambio o nuevas características en mente, por favor rellena una Solicitud de Nueva Funcionalidad (NFR).

¡Gracias!

<3 Phalcon Team