1. Introducción
  2. Guía de Contribución

Reportes de Errores

Para fomentar la colaboración activa, Laravel anima fuertemente las solicitudes de extracción, no solo los informes de errores. Las solicitudes de extracción solo se revisarán cuando se marquen como "listas para revisar" (no en el estado "borrador") y todas las pruebas de las nuevas funciones estén pasando. Las solicitudes de extracción no activas que permanezcan en el estado "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 un ejemplo de código que muestre el problema. El objetivo de un informe de error es facilitarte, a ti y a otros, replicar el error y desarrollar una solución.

Recuerda, los informes de errores se crean con la esperanza de que otros con el mismo problema puedan colaborar contigo en solucionarlo. No esperes que el informe de errores vea automáticamente alguna actividad o que otros se apresuren a solucionarlo. Crear un informe de errores sirve para ayudarte a ti mismo y a otros a empezar en el camino de solucionar el problema. Si quieres contribuir, puedes ayudar corrigiendo cualquier error listado en nuestros rastreadores de problemas. Debes estar autenticado con GitHub para ver todos los problemas de Laravel.

Si notas bloques de documentación incorrectos, advertencias de PHPStan o IDE mientras usas Laravel, no crees un problema en GitHub. En su lugar, 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, usa uno de los siguientes canales:

Discusión sobre Desarrollo del Núcleo

Puedes proponer nuevas funciones o mejoras de comportamientos existentes de Laravel en el foro de discusión de GitHub del repositorio de Laravel. Si propones una nueva característica, por favor, esté dispuesto a implementar al menos parte del código necesario para completar la función.

La discusión informal sobre errores, nuevas funciones e implementación de funciones 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 los días laborables de 8 a.m. a 5 p.m. (UTC-06:00 o América/Chicago) y esporádicamente presente en el canal en otros momentos.

¿Cuál Rama?

Todas las correcciones de errores deben enviarse a la última versión que admita correcciones de errores (actualmente 10.x). Las correcciones de errores nunca deben enviarse a la rama master a menos que corrijan características que existan solo en la próxima versión.

Características menores que son totalmente compatibles hacia atrás con la versión actual pueden enviarse a la última rama estable (actualmente 10.x).

Nuevas características principales o características con cambios que rompen siempre deben enviarse a la rama master, que contiene la próxima versión.

Recursos Compilados

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 envíes los archivos compilados. Debido a su gran tamaño, no pueden ser revisados realísticamente 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 enviados 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 [email protected]. Todas las vulnerabilidades de seguridad se abordarán de inmediato.

Estilo de Codificación

Laravel sigue las normas de codificación PSR-2 y la norma de carga automática PSR-4.

PHPDoc

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

/**
* Registrar un enlace con el contenedor.
*
* @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:

/**
* Ejecutar el trabajo.
*/
public function handle(AudioProcessor $processor): void
{
//
}

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

/**
* Obtener los archivos adjuntos para el mensaje.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [
Attachment::fromStorage('/path/to/file'),
];
}

StyleCI

¡No te preocupes si tu estilo de código no es perfecto! StyleCI fusionará automáticamente cualquier corrección de estilo en el repositorio de Laravel después de que se fusionen las solicitudes de extracción. Esto nos permite centrarnos en el contenido de la contribución y no en el estilo de 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 informada a Taylor Otwell ([email protected]):

  • Los participantes serán tolerantes con opiniones opuestas.
  • Los participantes deben asegurarse de que su lenguaje y acciones estén libres de ataques personales y comentarios despectivos.
  • Al interpretar las palabras y acciones de los demás, los participantes deben asumir siempre buenas intenciones.
  • No se tolerará el comportamiento que pueda considerarse razonablemente acoso.