Secciones

Nuevo Pull Request (PR)


A pull request for Phalcon must be against our main repository cphalcon. Es una colección de cambios en el código que:

  • arreglar un error (problema actual)
  • introducir nuevas funcionalidades o mejoras.

pull request debe incluir:

  • Apunte a la rama correcta.
  • Una actualización al CHANGELOG.md
  • Contiene pruebas unitarias
  • Actualizaciones a la documentación y ejemplos de uso según sea necesario
  • Su código debe respetar los estándares de codificación que utiliza Phalcon. For PHP code we use PSR-12 while for Zephir code, we have an .editorconfig file available at the root of the repository to help you follow the standards.

NOTE: We do not accept Pull Requests to the master branch

Si el pull request es para corregir un problema o error, se debe incluir el número de la incidencia (issue). En Github hay una plantilla disponible que se puede utilizar para presentar el pull request. Si la incidencia no existe aún, se debe crear primero.

For new functionality, we will need to have an issue created and referenced. Si esta nueva funcionalidad choca con la filosofía e implementación de Phalcon, el pull request será rechazado.

Additionally, any new functionality that introduces breaking changes will not be accepted for the current release but instead will need to be updated to target the next major version.

It is highly recommended to discuss your NFR and PR with the core team and most importantly with the community to get feedback, guidance and to work on a release plan that will benefit everyone.

Rama y Commits

Se recomiendan los siguientes pasos, pero no son obligatorios.

Si está trabajando en un problema, tenga en cuenta el número del problema que está abajo. Supongamos que el problema es:

#12345 - Create New Object

  • Checkout the 5.0.x branch
  • Crear una nueva rama: T12345-create-new-object

El nombre de la rama comienza con T, seguido por el número del problema y luego el título de la cuestión como un slug.

En tu carpeta cphalcon ir a .git/hooks

Crea un nuevo archivo llamado commit-msg y pega el código de abajo y guárdelo:

#!/bin/bash
if [ -z "$BRANCHES_TO_SKIP" ]; then
  BRANCHES_TO_SKIP=(master develop)
fi
BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_NAME="${BRANCH_NAME##*/}"
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$")
BRANCH_IN_COMMIT=$(grep -c "\[$BRANCH_NAME\]" $1)
if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT -ge 1 ]]; then
  ISSUE="$(echo $BRANCH_NAME | cut -d'-' -f 1)"
  ISSUE="${ISSUE/T/#}"
  sed -i.bak -e "1s/^/[$ISSUE] - /" $1
fi

Asegúrese de que el archivo es ejecutable

chmod a+x commit-msg

Cualquier commit que añadas ahora a su rama aparecerá atado al problema 12345.

Hacer lo anterior permite a todos ver qué commits se relacionan con qué problema.