Saltar contenido

Guía de Contribución

Informes de errores

Para fomentar la colaboración activa, Laravel anima fuertemente a realizar solicitudes de extracción, no solo informes de errores. Las solicitudes de extracción solo serán revisadas cuando estén marcadas como "listo para revisión" (no en estado de "borrador") y todas las pruebas para nuevas funciones estén pasando. Las solicitudes de extracción no activas que queden en estado de "borrador" se cerrarán después de unos días. Sin embargo, si presentas un informe de error, tu problema debe contener un título y una descripción clara del problema. También debes incluir tanta información relevante como sea posible y una muestra de código que demuestre el problema. El objetivo de un informe de errores es facilitarte a ti - y a otros - la replicación del error y el desarrollo de una solución. Recuerda que los informes de errores se crean con la esperanza de que otros con el mismo problema puedan colaborar contigo en su solución. No esperes que el informe de errores vea automáticamente alguna actividad o que otros se apuren a solucionarlo. Crear un informe de errores sirve para ayudarte a ti mismo y a otros a comenzar en el camino de solucionar el problema. Si deseas contribuir, puedes ayudar solucionando cualquiera de los errores listados en nuestros rastreadores de problemas. Debes estar autenticado con GitHub para ver todos los problemas de Laravel. Si notas un DocBlock inapropiado, advertencias de PHPStan o del IDE mientras utilizas Laravel, no crees un problema en GitHub. En su lugar, por favor, envía una solicitud de extracción para solucionar el problema. El código fuente de Laravel se gestiona en GitHub, y hay repositorios para cada uno de los proyectos de Laravel:

Preguntas de Soporte

Los rastreadores de problemas de GitHub de Laravel no están destinados a proporcionar ayuda o soporte de Laravel. En su lugar, utiliza uno de los siguientes canales:

Discusión sobre el Desarrollo Central

Puedes proponer nuevas características o mejoras del comportamiento existente de Laravel en el tablero de discusión de GitHub del repositorio del framework Laravel. Si propones una nueva característica, por favor, está dispuesto a implementar al menos parte del código que se necesitaría para completar la característica. La discusión informal sobre errores, nuevas características e implementación de características existentes tiene lugar en el canal #internals del servidor de Discord de Laravel. Taylor Otwell, el mantenedor de Laravel, suele estar presente en el canal de lunes a viernes de 8 a.m. a 5 p.m. (UTC-06:00 o America/Chicago), y está presente de manera esporádica en el canal en otros momentos.

¿Qué rama?

Todas las correcciones de errores deben enviarse a la última versión que admite correcciones de errores (actualmente 10.x). Las correcciones de errores nunca deben enviarse a la rama master a menos que arreglen funciones que existan solo en la próxima versión. Funciones menores que son totalmente compatibles con la versión actual pueden ser enviadas a la última rama estable (actualmente 11.x). Nuevas características importantes o características con cambios importantes deben enviarse siempre a la rama master, que contiene la próxima versión.

Activos Compuestos

Si estás enviando un cambio que afectará a un archivo compilado, como la mayoría de los archivos en resources/css o resources/js del repositorio laravel/laravel, no comités los archivos compilados. Debido a su gran tamaño, no pueden ser revisados de manera realista por un mantenedor. Esto podría ser explotado como una forma de inyectar código malicioso en Laravel. Para prevenir esto de manera defensiva, todos los archivos compilados serán generados y comprometidos por los mantenedores de Laravel.

Vulnerabilidades de Seguridad

Si descubres una vulnerabilidad de seguridad dentro de Laravel, por favor envía un correo electrónico a Taylor Otwell a taylor@laravel.com. Todas las vulnerabilidades de seguridad serán atendidas de inmediato.

Estilo de Codificación

Laravel sigue el estándar de codificación PSR-2 y el estándar de autoloading PSR-4.

PHPDoc

A continuación, se muestra un ejemplo de un bloque de documentación de Laravel válido. Tenga en cuenta que el atributo @param está seguido de dos espacios, el tipo de argumento, dos espacios más y, finalmente, el nombre de la variable:

/**
* Register a binding with the container.
*
* @param string|array $abstract
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
*
* @throws \Exception
*/
public function bind($abstract, $concrete = null, $shared = false)
{
// ...
}

Cuando los atributos @param o @return son redundantes debido al uso de tipos nativos, se pueden eliminar:

/**
* Execute the job.
*/
public function handle(AudioProcessor $processor): void
{
//
}

Sin embargo, cuando el tipo nativo es genérico, por favor especifica el tipo genérico mediante el uso de los atributos @param o @return:

/**
* Get the attachments for the message.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [
Attachment::fromStorage('/path/to/file'),
];
}

StyleCI

¡No te preocupes si el estilo de tu código no es perfecto! StyleCI fusionará automáticamente cualquier arreglo de estilo en el repositorio de Laravel después de que se hayan fusionado las solicitudes de extracción. Esto nos permite centrarnos en el contenido de la contribución y no en el estilo del código.

Código de Conducta

El código de conducta de Laravel se deriva del código de conducta de Ruby. Cualquier violación del código de conducta puede ser reportada a Taylor Otwell (taylor@laravel.com):

  • Participants will be tolerant of opposing views.
  • Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
  • When interpreting the words and actions of others, participants should always assume good intentions.
  • Behavior that can be reasonably considered harassment will not be tolerated.