Ir al contenido

¿Cómo contribuir? 🚀

¡Bienvenido! Nos emociona que estés considerando 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.

Directrices completas

Para obtener directrices completas sobre contribuciones, consulta también la Guía oficial de contribución de Ultralytics en nuestra documentación principal.

Colaboradores de código abierto de Ultralytics

Ver: Contribución a Ultralytics

Guía de inicio rápido 🎯

¿Listo para contribuir? Sigue estos pasos:

  1. Lee nuestro Código de Conducta - Respeto, amabilidad y profesionalidad
  2. Haz un fork del repositorio al que deseas contribuir
  3. Crea una rama de función con un nombre descriptivo
  4. Realiza tus cambios siguiendo los estándares de codificación
  5. Escribe pruebas para la nueva funcionalidad
  6. Envía una solicitud de extracción (pull request) con una descripción clara
  7. Firma el CLA comentando en tu PR
  8. Responde a los comentarios de los revisores

Consulta el Flujo de trabajo de desarrollo para obtener información detallada sobre el proceso de PR.

Directrices de contribución 📋

Código de conducta 🤝

Todos los colaboradores deben adherirse a nuestro Código de Conducta, que se basa en el Pacto del Colaborador. Esto garantiza un entorno acogedor e inclusivo para todos. El respeto, la amabilidad y la profesionalidad son el corazón de nuestra comunidad.

Acuerdo de licencia de colaborador (CLA) 📝

Antes de que podamos fusionar tu PR, debes firmar nuestro CLA. Este acuerdo legal asegura que las contribuciones estén debidamente licenciadas bajo AGPL-3.0, protegiéndote tanto a ti como al proyecto.

Después de enviar tu PR, el bot de 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
  • Exclusión de garantías

Revisa el documento completo del CLA para conocer los términos completos.

Mejores prácticas ✨

Al contribuir con código:

  • Evita la duplicación: Reutiliza el código existente siempre que sea posible
  • Realiza cambios más pequeños: Modificaciones enfocadas en lugar de cambios a gran escala
  • Simplifica: Busca oportunidades de simplificación
  • Considere la compatibilidad: Evite romper el código existente
  • Utilice un formato consistente: Siga Ruff Formatter
  • Añada pruebas: Incluya pruebas para las nuevas funcionalidades
  • Actualice la documentación: Mantenga la documentación actualizada

Estándares de codificación 📐

  • Cadenas de documentación: Utilice cadenas de documentación al estilo de Google con tipos entre paréntesis
  • Ancho de línea: 120 caracteres como máximo
  • Importaciones: Use pathlib en lugar de os
  • Pruebas: Todas las PR deben pasar las pruebas de CI
  • Sugerencias de tipo: Utilícelas donde sea beneficioso

Consulte el Flujo de trabajo de desarrollo para conocer los estándares de codificación completos.

Formas de contribuir 🌟

Contribuciones de código 💻

Documentación 📚

  • Mejorar la documentación existente
  • Añadir tutoriales y guías para casos de uso específicos
  • Corregir errores tipográficos y errores
  • Traducir la documentación a otros idiomas

Pruebas 🧪

  • Escribir pruebas unitarias para nuevas funcionalidades
  • Probar nuevas funciones en diferentes modelos y tareas
  • Informar sobre las lagunas en la cobertura de las pruebas
  • Evaluación comparativa del rendimiento en diferentes plataformas

Soporte de la comunidad 💬

Informar de errores 🐞

Ayúdanos a mejorar informando de los errores a través de GitHub Issues:

Requisitos para informar de errores

  1. Comprueba los problemas existentes para evitar duplicados
  2. Crear un Ejemplo Mínimo Reproducible (EMR) - Código pequeño y autónomo que reproduce el problema
  3. Describe el entorno: SO, versión de Python, versiones de las bibliotecas, hardware (CPU/GPU)
  4. Explica el comportamiento esperado frente al real con mensajes de error y seguimientos de pila

Qué hace que un MRE sea bueno

Un Ejemplo Mínimo Reproducible debe:

  • Aislar el problema: Eliminar el código innecesario
  • Usar modelos y conjuntos de datos públicos: p. ej., yolov8n.pt y coco8.yaml
  • Incluir dependencias: Lista con yolo checks o pip list
  • Proporcionar una descripción clara: Comportamiento esperado vs. comportamiento real
  • Formatear correctamente: Usar bloques de código con triples comillas invertidas
  • Ser comprobable: Otros pueden ejecutarlo sin modificaciones

Consulta la Guía de EMR completa para obtener instrucciones detalladas.

Revisar las solicitudes de extracción 👀

La revisión de las "PR" es una valiosa contribución:

  • Comprueba las pruebas unitarias: Verifica las pruebas para las nuevas funciones
  • Revisa la documentación: Asegúrate de que la documentación está actualizada
  • Evalúa el rendimiento: Considera el impacto en la velocidad/memoria
  • Verifica las pruebas de CI: Confirma que todas las pruebas pasan
  • Proporciona comentarios constructivos: Sé específico y útil
  • Reconoce el esfuerzo: Agradece a los colaboradores

Información de la licencia 📜

Licencia AGPL-3.0

Ultralytics utiliza AGPL-3.0 para los repositorios. Esto promueve la apertura, la transparencia y la mejora colaborativa.

Usando YOLO en su proyecto

Si utilizas modelos o código de Ultralytics YOLO en tu proyecto, AGPL-3.0 requiere que toda tu obra derivada también sea de código abierto bajo AGPL-3.0.

Por qué es importante el cumplimiento:

  • Mantiene el software abierto para el beneficio de la comunidad
  • Requisito legal al utilizar código AGPL-3.0
  • Fomenta la colaboración y la transparencia

Alternativa: Si prefieres no hacer de código abierto tu proyecto, obtén una Licencia Empresarial.

¿Cómo cumplir con AGPL-3.0?

Haz que el código fuente completo esté disponible públicamente bajo AGPL-3.0:

  1. Elige el punto de partida:

  2. Licencia tu proyecto:

    • Añadir LICENSE archivo con el texto completo de AGPL-3.0
    • Añade un aviso de licencia en la parte superior de los archivos de código fuente
  3. Publica el código fuente incluyendo:

    • Aplicación/sistema completo
    • Modificaciones al código de Ultralytics
    • Scripts de entrenamiento/validación/inferencia
    • Pesos del modelo si se han modificado
    • Archivos de configuración y conjuntos de datos utilizados
    • Código de backend/frontend
    • Bibliotecas de terceros modificadas
    • Datos de entrenamiento si son redistribuibles
  4. Documenta claramente:

    • Indica la licencia AGPL-3.0 en README.md
    • Incluye instrucciones de configuración
    • Atribuye Ultralytics YOLO apropiadamente

Consulta el Repositorio de Plantillas de Ultralytics para ver un ejemplo de estructura.

Nuestro equipo de desarrollo 👥

No dudes en ponerte en contacto con los miembros del equipo para obtener ayuda:

Nombre Perfil de GitHub
Abrish Sabri asabri97
Abirami Vina abirami-vina
Alexis Schutzger picsalex
Burhan Qaddoumi Burhan-Q
Fatih Akyon fcakyon
Francesco Mattioli ambitious-octopus
Giovanni Dal Zillio ggg-dz-ultralytics
Glenn Jocher glenn-jocher
Hannah Streif HannahStreif
Jake Qian fengqianjake
Jing Qiu Laughing-q
Joey Tjon NoCodeJoey
Jordan Cooper JCoops1
Kasim Acikbas kayselmecnun
Kirill Viarbitski Kverbitski
Kiryl Oblikau munknex
Kristian Sommer sokrisba
Lakshantha Dissanayake lakshanthad
Marius Keiser Skillnoob
Mohammed Yasin Y-T-G
Muhammad Rizwan Munawar RizwanMunawar
Mykola Boiko mykolaxboiko
Nicolai Nielsen niconielsen32
Nuvola Ladi NLadi
Onuralp Sezer onuralpszr
Pablo Karnbaum pablokarnbaum
Paula Derrenger pderrenger
Prateek Bhatnagar prateek-ultralytics
Rick Hou Bovey0809
Ryan Leonel Somali ryanleonels
Sergiu Waxmann sergiuwaxmann
Thomas Chuang chuang091
William Beaven william-beaven
Yogendra Singh yogendrasinghx
Tigran Hakobyan tthakz
Zinnia Pourdad zinnialp
Shuai (Louis) Lyu ShuaiLYU
Abi Anderson UltralyticsAbi
Jin Xu laodouya
Zuzana Kontrikova zkontri
Miles Deans miles-deans-ultralytics
Mengyu (Mason) Liu lmycross

Obtener soporte 💬

¿Tienes preguntas o necesitas ayuda?

¡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.

Nos entusiasma ver tus ideas hacerse realidad y agradecemos tu compromiso para avanzar en la tecnología de detección de objetos. ¡Juntos, sigamos creciendo e innovando! 🚀🌟

Recursos 📚



📅 Creado hace 1 mes ✏️ Actualizado hace 5 días