Link to this sectionCómo contribuir 🚀#
¡Bienvenido! Estamos encantados de que consideres contribuir a los proyectos de código abierto de Ultralytics. Tu participación ayuda a mejorar la calidad de nuestros repositorios y beneficia a toda la comunidad de visión artificial.
Para obtener guías de contribución exhaustivas, consulta también la Guía oficial de contribución de Ultralytics en nuestra documentación principal.
Link to this sectionVídeo: Cómo contribuir a Ultralytics#
Link to this sectionGuía de inicio rápido 🎯#
¿Listo para contribuir? Sigue estos pasos:
- Lee nuestro Código de conducta: respeto, amabilidad y profesionalidad
- Haz un fork del repositorio al que quieras contribuir
- Crea una rama de funcionalidades con un nombre descriptivo
- Realiza tus cambios siguiendo los estándares de programación
- Escribe pruebas para la nueva funcionalidad
- Envía una pull request con una descripción clara
- Firma el CLA comentando en tu PR
- Responde a los comentarios de los revisores
Consulta el Flujo de trabajo de desarrollo para ver el proceso detallado de las PR.
Link to this sectionGuías de contribución 📋#
Link to this sectionCódigo de conducta 🤝#
Todos los colaboradores deben cumplir nuestro Código de conducta, basado en el Contributor Covenant. Esto garantiza un entorno acogedor e inclusivo para todos. El respeto, la amabilidad y la profesionalidad son el corazón de nuestra comunidad.
Link to this sectionAcuerdo de licencia de colaborador (CLA) 📝#
Antes de que podamos fusionar tu PR, debes firmar nuestro CLA. Este acuerdo legal garantiza que las contribuciones tengan la licencia adecuada bajo AGPL-3.0, protegiéndote tanto a ti como al proyecto.
Tras enviar tu PR, el bot del CLA te guiará. Para firmar, comenta:
I have read the CLA Document and I sign the CLA
El CLA cubre:
- Licencias de derechos de autor y patentes para tus contribuciones
- Derechos de Ultralytics para usar y distribuir tu trabajo
- Declaraciones de que posees los derechos de tus contribuciones
- Exención de garantías
Revisa el documento del CLA completo para ver todos los términos.
Link to this sectionBuenas prácticas ✨#
Cuando contribuyas con código:
- Evita la duplicación: reutiliza el código existente siempre que sea posible
- Haz cambios pequeños: prioriza las modificaciones específicas sobre cambios a gran escala
- Simplifica: busca oportunidades de simplificación
- Considera la compatibilidad: evita romper el código existente
- Usa un formato consistente: sigue Ruff Formatter
- Añade pruebas: incluye tests para las nuevas funcionalidades
- Actualiza la documentación: mantén la documentación al día
Link to this sectionEstándares de programación 📐#
- Docstrings: utiliza docstrings al estilo Google con los tipos entre paréntesis
- Ancho de línea: máximo 120 caracteres
- Imports: usa
pathliben lugar deos - Testing: todas las PR deben superar las pruebas de CI
- Type hints: úsalos donde sea beneficioso
Consulta el Flujo de trabajo de desarrollo para conocer los estándares de programación completos.
Link to this sectionFormas de contribuir 🌟#
Link to this sectionContribuciones de código 💻#
- Nuevas funcionalidades y mejoras para los modelos YOLO
- Corrección de errores y resolución de problemas
- Optimización del rendimiento para entrenamiento e inferencia
- Soporte de formatos de exportación para diversas opciones de despliegue
- Mejoras de compatibilidad de plataforma
Link to this sectionDocumentación 📚#
- Mejora la documentación existente
- Añade tutoriales y guías para casos de uso específicos
- Corrige erratas y errores
- Traduce la documentación a otros idiomas
Link to this sectionTesting 🧪#
- Escribe pruebas unitarias para nuevas funcionalidades
- Prueba nuevas funcionalidades en diferentes modelos y tareas
- Informa sobre lagunas en la cobertura de pruebas
- Benchmarking de rendimiento entre plataformas
Link to this sectionSoporte comunitario 💬#
- Responde preguntas en GitHub Discussions
- Ayuda a otros usuarios en Discord
- Revisa pull requests
- Clasifica issues
Link to this sectionInformar de errores 🐞#
Ayúdanos a mejorar informando de errores a través de GitHub Issues:
Link to this sectionRequisitos para informar de errores#
- Comprueba si ya existen issues para evitar duplicados
- Crea un MRE (Ejemplo Mínimo Reproducible): código pequeño y autónomo que reproduzca el error
- Describe el entorno: SO, versión de Python, versiones de librerías, hardware (CPU/GPU)
- Explica el comportamiento esperado frente al real con mensajes de error y trazas
Link to this sectionQué hace que un MRE sea bueno#
Un Ejemplo Mínimo Reproducible debería:
- Aislar el problema: elimina código innecesario
- Usar modelos y datasets públicos: p. ej.,
yolo26n.ptycoco8.yaml - Incluir dependencias: lístalas con
yolo checksopip list - Proporcionar una descripción clara: comportamiento esperado frente al real
- Formatear correctamente: usa bloques de código con tres comillas invertidas
- Ser ejecutable: que otros puedan ejecutarlo sin modificaciones
Consulta la Guía de MRE completa para obtener instrucciones detalladas.
Link to this sectionRevisar pull requests 👀#
Revisar PRs es una contribución valiosa:
- Comprueba las pruebas unitarias: verifica las pruebas de nuevas funcionalidades
- Revisa la documentación: asegúrate de que esté actualizada
- Evalúa el rendimiento: considera el impacto en velocidad/memoria
- Verifica las pruebas de CI: confirma que todas las pruebas pasen
- Proporciona feedback constructivo: sé específico y servicial
- Reconoce el esfuerzo: agradece a los colaboradores
Link to this sectionInformación de licencia 📜#
Link to this sectionLicencia AGPL-3.0#
Ultralytics utiliza AGPL-3.0 para sus repositorios. Esto promueve la apertura, la transparencia y la mejora colaborativa.
Link to this sectionUso de YOLO en tu proyecto#
Si utilizas modelos o código de Ultralytics YOLO en tu proyecto, la AGPL-3.0 requiere que tu trabajo derivado completo también sea de código abierto bajo AGPL-3.0.
Por qué es importante el cumplimiento:
- Mantiene el software abierto para beneficio de la comunidad
- Es un requisito legal al usar código bajo AGPL-3.0
- Fomenta la colaboración y la transparencia
Alternativa: Si prefieres no hacer que tu proyecto sea de código abierto, obtén una Enterprise License.
Link to this sectionCómo cumplir con AGPL-3.0#
Haz que el código fuente completo esté disponible públicamente bajo AGPL-3.0:
-
Elige el punto de partida:
- Crea un fork del repositorio Ultralytics YOLO
- Usa el repositorio de plantillas de Ultralytics
-
Licencia tu proyecto:
- Añade un archivo
LICENSEcon el texto completo de AGPL-3.0 - Añade el aviso de licencia en la parte superior de los archivos fuente
- Añade un archivo
-
Publica el código fuente incluyendo:
- La aplicación/sistema completo
- Las modificaciones al código de Ultralytics
- Scripts de entrenamiento/validación/inferencia
- Los pesos del modelo si han sido modificados
- Archivos de configuración y los datasets utilizados
- Código del backend/frontend
- Librerías de terceros modificadas
- Datos de entrenamiento si son redistribuibles
-
Documenta claramente:
- Indica la licencia AGPL-3.0 en el
README.md - Incluye las instrucciones de configuración
- Atribuye Ultralytics YOLO adecuadamente
- Indica la licencia AGPL-3.0 en el
Consulta el repositorio de plantillas de Ultralytics para ver una estructura de ejemplo.
Link to this sectionNuestro equipo de desarrollo 👥#
Siéntete libre de contactar a los miembros del equipo para obtener orientación:
| Nombre | Perfil de GitHub |
|---|---|
| Abi Anderson | UltralyticsAbi |
| Abirami Vina | abirami-vina |
| Alex Wong | UltraAlex118 |
| Alexis Schutzger | picsalex |
| Altaïr Kabunda-Margalet | altair-jpg |
| Anastasiia Khrapal | nastijakh |
| Andrei Banica | banica-ultralytics |
| Antonina Poludena | Antonina2111 |
| Craig Johnston | craigjohnston1 |
| Craig Maxwell | craig-ships-it |
| Esat Kalfaoglu | artest08 |
| Fatih Akyon | fcakyon |
| Francesco Mattioli | ambitious-octopus |
| Giovanni Dal Zillio | ggg-dz-ultralytics |
| Glenn Jocher | glenn-jocher |
| Hannah Streif | HannahStreif |
| Jake Qian | fengqianjake |
| Jianing Qi (Jalyn) | jianing-Jalyn |
| Jin Xu | laodouya |
| Jing Qiu | Laughing-q |
| Joey Tjon | NoCodeJoey |
| Kasim Acikbas | kayselmecnun |
| Kirill Verbitsky | Kverbitski |
| Kristian Sommer | sokrisba |
| Lakshantha Dissanayake | lakshanthad |
| Leo Samsinger | lsamsinger |
| Marius Keiser | Skillnoob |
| Matt Bristow | matt-ultralytics |
| Mengyu (Mason) Liu | lmycross |
| Miles Deans | miles-deans-ultralytics |
| Mohammed Yasin | Y-T-G |
| Muhammad Rizwan Munawar | RizwanMunawar |
| Mykola Boiko | mykolaxboiko |
| Nicolai Nielsen | niconielsen32 |
| Nuvola Ladi | NLadi |
| Olivia Wang | ziyue-olivia |
| Onuralp Sezer | onuralpszr |
| Pablo Karnbaum | pablokarnbaum |
| Paula Derrenger | pderrenger |
| Rick Hou | Bovey0809 |
| Sergiu Waxmann | sergiuwaxmann |
| Shuai (Louis) Lyu | ShuaiLYU |
| Thomas Chuang | chuang091 |
| Yogendra Singh | yogendrasinghx |
| Tigran Hakobyan | t-hakobyan |
| Zinnia Pourdad | zinnialp |
| Zuzana Kontrikova | zkontri |
Link to this sectionObtén asistencia 💬#
¿Tienes preguntas o necesitas ayuda?
- Abre una incidencia en GitHub
- Únete a GitHub Discussions
- Conecta en Discord
- Consulta la documentación
- Visita el Centro de ayuda
- Explora el Blog de Ultralytics para obtener tutoriales y guías
- Explora las Soluciones para aplicaciones específicas de la industria
Link to this section¡Gracias! 🎉#
Gracias por tu interés en contribuir a los proyectos de código abierto de Ultralytics. Tu participación es esencial para dar forma al futuro de nuestro software y construir una comunidad vibrante de innovación y colaboración.
Estamos emocionados de ver cómo cobran vida tus ideas y agradecemos tu compromiso con el avance de la tecnología de detección de objetos. ¡Juntos, sigamos creciendo e innovando! 🚀🌟
Link to this sectionRecursos 📚#
- Guía oficial de contribución - Directrices completas de contribución
- Flujo de trabajo de desarrollo - Proceso de PR y estándares de código
- CI/Testing - Pruebas y controles de calidad
- Flujo de trabajo de documentación - Redacción de documentos
- Código de conducta - Estándares de la comunidad
- Documento CLA - Acuerdo de licencia de colaborador
- Guía MRE - Mejores prácticas para informar de errores
- Blog de Ultralytics - Tutoriales y casos prácticos
- Eventos de la comunidad - Seminarios web y conferencias
- Historias de clientes - Aplicaciones del mundo real
