Ir al contenido

Contribución a los proyectos de código abierto Ultralytics

Le damos la bienvenida. Estamos encantados de que estés considerando contribuir a nuestros Ultralytics proyectos de código abierto. Su participación no sólo ayuda a mejorar la calidad de nuestros repositorios, sino que también beneficia a toda la comunidad. Esta guía proporciona directrices claras y buenas prácticas para ayudarle a empezar.

Ultralytics colaboradores de código abierto

Código de conducta

Para garantizar un entorno acogedor e integrador para todos, todos los colaboradores deben cumplir nuestro Código de Conducta. El respeto, la amabilidad y la profesionalidad están en el corazón de nuestra comunidad.

Contribución mediante Pull Requests

Agradecemos enormemente las contribuciones en forma de pull requests. Para que el proceso de revisión sea lo más fluido posible, siga estos pasos:

  1. Haz un fork del repositorio: Empieza por bifurcar el repositorio Ultralytics YOLO en tu cuenta de GitHub.

  2. Crea una rama: Crea una nueva rama en tu repositorio con un nombre claro y descriptivo que refleje tus cambios.

  3. Haz tus cambios: Asegúrate de que tu código se ajusta a las directrices de estilo del proyecto y no introduce nuevos errores o advertencias.

  4. Pruebe los cambios: Antes de enviar los cambios, pruébalos localmente para confirmar que funcionan como esperabas y que no causan nuevos problemas.

  5. Confirme los cambios: Confirma tus cambios con un mensaje conciso y descriptivo. Si los cambios se refieren a un problema concreto, incluye el número de problema en el mensaje de confirmación.

  6. Crear un pull request: Envía un pull request desde tu repositorio bifurcado al repositorio principal Ultralytics YOLO . Proporciona una explicación clara y detallada de tus cambios y de cómo mejoran el proyecto.

Firma del CLA

Antes de que podamos fusionar su pull request, debe firmar nuestro Acuerdo de Licencia de Colaborador (CLA). Este acuerdo legal garantiza que sus contribuciones están debidamente licenciadas, lo que permite que el proyecto siga distribuyéndose bajo la licencia AGPL-3.0 .

Después de enviar su pull request, el bot CLA le guiará a través del proceso de firma. Para firmar el CLA, simplemente añada un comentario en su PR indicando:

I have read the CLA Document and I sign the CLA

Google-Estilo Docstrings

Cuando añada nuevas funciones o clases, incluya documentación al estilo de Google. Estos docstrings proporcionan documentación clara y estandarizada que ayuda a otros desarrolladores a entender y mantener su código.

Ejemplo de cadenas de documentos

Este ejemplo ilustra un docstring del estilo de Google. Asegúrese de que tanto la entrada como la salida types van siempre entre paréntesis, p. ej, (bool).

def example_function(arg1, arg2=4):
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1 (int): The first argument.
        arg2 (int): The second argument, with a default value of 4.

    Returns:
        (bool): True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

Este ejemplo incluye tanto un docstring al estilo Google como sugerencias de tipo para argumentos y retornos, aunque también es aceptable utilizar cualquiera de los dos de forma independiente.

def example_function(arg1: int, arg2: int = 4) -> bool:
    """
    Example function demonstrating Google-style docstrings.

    Args:
        arg1: The first argument.
        arg2: The second argument, with a default value of 4.

    Returns:
        True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

Para funciones más pequeñas o sencillas, puede bastar con una docstring de una sola línea. La docstring debe utilizar tres comillas dobles, ser una frase completa, empezar con mayúscula y terminar con un punto.

def example_small_function(arg1: int, arg2: int = 4) -> bool:
    """Example function with a single-line docstring."""
    return arg1 == arg2

Acciones de GitHub Pruebas CI

Todas las pull requests deben pasar las pruebas de Integración Continua (IC) de las Acciones de GitHub antes de ser fusionadas. Estas pruebas incluyen linting, pruebas unitarias y otras comprobaciones para asegurar que tus cambios cumplen los estándares de calidad del proyecto. Revise los resultados de la integración continua y solucione los problemas que surjan.

Notificación de errores

Valoramos mucho los informes de errores, ya que nos ayudan a mantener la calidad de nuestros proyectos. Cuando informe de un error, proporcione un Ejemplo Mínimo Reproducible, unejemplo de código sencillo y claro que reproduzca el problema de forma coherente. Esto nos permite identificar y resolver rápidamente el problema.

Licencia

Ultralytics utiliza la Licencia Pública General Affero GNU v3.0 (AGPL-3.0 ) para sus repositorios. Esta licencia promueve la apertura, la transparencia y la mejora colaborativa en el desarrollo de software. Garantiza que todos los usuarios tengan libertad para utilizar, modificar y compartir el software, fomentando una sólida comunidad de colaboración e innovación.

Animamos a todos los colaboradores a familiarizarse con los términos de la licencia AGPL-3.0 para contribuir de forma eficaz y ética a la comunidad de código abierto Ultralytics .

Open-Sourcing de sus proyectos con YOLO y AGPL-3.0 Compliance

Si está planeando desarrollar y publicar su propio proyecto utilizando modelos de YOLO , la Licencia Pública General Affero de GNU v3.0 (AGPL-3.0 ) garantiza que todos los trabajos derivados permanezcan abiertos y accesibles. Esta sección proporciona orientación, incluyendo pasos, mejores prácticas y requisitos, para ayudarle a abrir su proyecto cumpliendo con AGPL-3.0.

Opciones para iniciar su proyecto

Puede poner en marcha su proyecto utilizando uno de estos métodos:

  1. Fork del repositorio Ultralytics YOLO
    Fork del repositorio oficial Ultralytics YOLO directamente desde https://github.com/ultralytics/ ultralytics.

    • Utilice esta opción si planea construir directamente sobre la última implementación de YOLO .
    • Modifique el código bifurcado según sea necesario, garantizando al mismo tiempo el cumplimiento de AGPL-3.0.
  2. Empezar desde el repositorio de plantillas Ultralytics
    Utilice el repositorio de plantillas Ultralytics disponible en https://github.com/ultralytics/template.

    • Ideal para iniciar un proyecto limpio y modular con las mejores prácticas preconfiguradas.
    • Esta opción ofrece un punto de partida ligero para proyectos que integren o amplíen los modelos de YOLO .

Lo que necesita para el código abierto

Para cumplir con AGPL-3.0, debe poner a disposición del público los siguientes componentes de su proyecto:

  1. Todo el código fuente de su proyecto:

    • Incluya todo el código del proyecto más amplio que contiene sus modelos, scripts y utilidades de YOLO .
  2. Pesos del modelo (si se modifica):

    • Comparta los pesos del modelo ajustados o modificados como parte del proyecto de código abierto.
  3. Archivos de configuración:

    • Proporcionar archivos de configuración como .yaml o .json que definen la configuración de entrenamiento, los hiperparámetros o las configuraciones de despliegue.
  4. Datos de entrenamiento (si se pueden redistribuir):

    • Si incluye datos preprocesados o generados que son redistribuibles, asegúrese de que forman parte del repositorio o están claramente enlazados.
  5. Componentes de aplicaciones web:

    • Incluya todo el código fuente de backend y frontend si su proyecto es una aplicación web, especialmente los componentes del lado del servidor.
  6. Documentación:

    • Incluya documentación clara sobre cómo utilizar, construir y ampliar su proyecto.
  7. Scripts de compilación y despliegue:

    • Comparta scripts para configurar el entorno, crear la aplicación y desplegarla, como por ejemplo Dockerfiles, requirements.txto Makefiles.
  8. Marco de pruebas:

    • Cree casos de prueba de código abierto, como pruebas unitarias y de integración, para garantizar la reproducibilidad y la fiabilidad.
  9. Modificaciones de terceros:

    • Proporcione el código fuente de cualquier biblioteca de terceros que haya modificado.

Pasos para que su proyecto sea de código abierto

  1. Elija su punto de partida:

    • Fork del repositorio Ultralytics YOLO o empezar desde el repositorio de plantillas Ultralytics .
  2. Establezca su licencia:

    • Añadir un LICENSE que contiene el texto AGPL-3.0 .
  3. Acreditar las contribuciones anteriores:

    • Incluya la atribución a Ultralytics YOLO en su README. Por ejemplo:
      This project builds on [Ultralytics YOLO](https://github.com/ultralytics/ultralytics), licensed under AGPL-3.0.
      
  4. Haga público su código:

    • Empuje su proyecto completo (incluyendo los componentes mencionados anteriormente) a un repositorio público de GitHub.
  5. Documente su proyecto:

    • Escriba un texto claro README.md con instrucciones de configuración, uso y contribuciones.
  6. Permitir contribuciones:

    • Establezca un gestor de incidencias y directrices de contribución para fomentar la colaboración.

Si sigues estos pasos y te aseguras de incluir todos los componentes necesarios, cumplirás con AGPL-3.0 y contribuirás de forma significativa a la comunidad de código abierto. ¡Sigamos fomentando juntos la colaboración y la innovación en visión por computador! 🚀

Ejemplo de estructura de un repositorio

A continuación se muestra un ejemplo de estructura para un proyecto AGPL-3.0 . Consulte https://github.com/ultralytics /template para más detalles.

my-yolo-project/
├── LICENSE               # AGPL-3.0 license text
├── README.md             # Project overview and license information
├── src/                  # Source code for the project
│   ├── model.py          # YOLO-based model implementation
│   ├── utils.py          # Utility scripts
│   └── ...
├── pyproject.toml        # Python dependencies
├── tests/                # Unit and integration tests
├── .github/              # GitHub Actions for CI
│   └── workflows/
│       └── ci.yml        # Continuous integration configuration
└── docs/                 # Project documentation
    └── index.md

Siguiendo esta guía, puedes asegurarte de que tu proyecto sigue cumpliendo con AGPL-3.0 a la vez que contribuyes a la comunidad de código abierto. Su adhesión refuerza el espíritu de colaboración, transparencia y accesibilidad que impulsa el éxito de proyectos como YOLO.

Conclusión

Gracias por su interés en contribuir a Ultralytics proyectos de código abierto de YOLO . Su participación es esencial para dar forma al futuro de nuestro software y construir una vibrante comunidad de innovación y colaboración. Ya sea mejorando el código, informando de errores o sugiriendo nuevas funciones, sus contribuciones son inestimables.

Nos entusiasma ver cómo sus ideas cobran vida y apreciamos su compromiso con el avance de la tecnología de detección de objetos. Juntos, sigamos creciendo e innovando en este apasionante viaje de código abierto. ¡Feliz programación! 🚀🌟

PREGUNTAS FRECUENTES

¿Por qué debería contribuir a los repositorios de código abierto de Ultralytics YOLO ?

Contribuir a los repositorios de código abierto de Ultralytics YOLO mejora el software, haciéndolo más robusto y rico en funciones para toda la comunidad. Las contribuciones pueden incluir mejoras del código, correcciones de errores, mejoras de la documentación e implementaciones de nuevas funciones. Además, contribuir le permite colaborar con otros desarrolladores cualificados y expertos en la materia, mejorando sus propias habilidades y reputación. Para más información sobre cómo empezar, consulte la sección Contribuir mediante Pull Requests.

¿Cómo firmo el Acuerdo de Licencia de Contribuidor (CLA) para Ultralytics YOLO ?

Para firmar el Acuerdo de Licencia de Contribuidor (CLA), siga las instrucciones proporcionadas por el bot CLA después de enviar su pull request. Este proceso garantiza que sus contribuciones están debidamente licenciadas bajo la licencia AGPL-3.0 , manteniendo la integridad legal del proyecto de código abierto. Añada un comentario en su pull request indicando:

I have read the CLA Document and I sign the CLA.

Para más información, consulte la sección Firma CLA.

¿Qué son los docstrings de estilo Google y por qué son necesarios para las contribuciones a Ultralytics YOLO ?

Google-proporcionan documentación clara y concisa para funciones y clases, mejorando la legibilidad y el mantenimiento del código. Estos docstrings describen el propósito de la función, los argumentos y los valores de retorno con reglas de formato específicas. Cuando contribuya a Ultralytics YOLO , siga el estilo de documentación de Google y se asegurará de que sus aportaciones estén bien documentadas y sean fáciles de entender. Para ver ejemplos y directrices, visite la sección Google-Style Docstrings.

¿Cómo puedo asegurarme de que mis cambios superan las pruebas de GitHub Actions CI?

Antes de que tu pull request pueda fusionarse, debe superar todas las pruebas de Integración Continua (IC) de las Acciones de GitHub. Estas pruebas incluyen linting, pruebas unitarias, y otras comprobaciones para asegurar que el código cumple

las normas de calidad del proyecto. Revise la salida de CI y solucione cualquier problema. Para obtener información detallada sobre el proceso de CI y consejos para solucionar problemas, consulte la sección Pruebas de CI de las acciones de GitHub.

¿Cómo puedo informar de un error en los repositorios de Ultralytics YOLO ?

Para informar de un fallo, proporcione un Ejemplo Mínimo Reproducible claro y conciso junto con su informe de fallo. Esto ayuda a los desarrolladores a identificar y solucionar rápidamente el problema. Asegúrese de que su ejemplo es mínimo pero suficiente para reproducir el problema. Para obtener información más detallada sobre la notificación de errores, consulte la sección Notificación de errores.

Creado hace 1 año ✏️ Actualizado hace 10 días

Comentarios