Proceso de Nuevo Paquete para Nuevos Colaboradores

Esta es una versión larga del Proceso de Nuevo Paquete, contiene más detalles de modo que los nuevos colaboradores lo puedan seguir más fácilmente. También se incluye un paso obligatorio de patrocinador.

Instalar Herramientas de Empaquetador

Comprobar si el paquete ya existe

Si algún software útil no está incluido ya en Fedora puede enviarlo como un nuevo paquete. El paquete que envíe puede ser de cualquier proyecto Libre y de Código Abierto.

Antes de crear su paquete, compruebe que el software no está ya en el repositorio Fedora:

Hacer un Paquete

Suba Su Paquete

Suba sus archivos SRPM y SPEC en algún lugar de Internet para que otros puedan recuperarlos. Este puede ser cualquier lugar al que se pueda acceder mediante una URL, pero es importante que los archivos sean directamente accesibles, no escondidos en algún lugar que haga esperar a la gente para descargar cosas o redireccione a través de páginas publicitarias.

Si desea que las compilaciones estén accesibles para los usuarios mientras ingresa el paquete en los repositorios oficiales, considere usar Copr. Es un sistema de compilación automatizado liviano que puede crear repositorios utilizando el SRPM que usted carga. Puede usar este espacio Copr para indicar a los revisores su src.rpm y sus especificaciones.

Crear Su Solicitud de Revisión

  • Antes de enviar su petición, asegúrese de que no hay peticiones previas para el mismo paquete. Hay una conveniente caja de búsqueda en la página de estado de revisión de paquete.

  • Asegúrese de que pone el nombre del paquete (excluyendo número de versión y de lanzamiento) en el campo Review Summary, junto con un muy breve resumen de lo que es el paquete.

  • Ponga una descripción de su paquete (normalmente, esto puede ser lo mismo que ha puesto en la especificación %description) en el campo Review Description. Incluya las URLs a sus archivos SRPM y SPEC.

  • Explique en el ticket que este es su primer paquete y que necesita un patrocinador. También, incluya cualquier información que pueda ayudar a los posibles patrocinadores. Si ha estado activo en otro trabajo de revisión, incluya enlaces. Si es el mantenedor upstream, asegúrese de decirlo.

  • Para obtener puntos de bonificación, incluya un enlace a una construcción koji exitosa para que todos sepan que hizo toda su tareas.

El proceso de revisión se describe en detalle en la página Proceso de Revisión del Paquete.

Informar al Upstream

El Proyecto Fedora prefiere Mantenerse Cerca de los Proyectos Upstream. Informe a los desarrolladores que está empaquetando el software. Puede hacer esto enviándoles un correo electrónico presentándose y señalándoles la solicitud de revisión. Esto prepara el escenario para futuras conversaciones. Por lo general anunciarán el hecho de que su software es ahora parte de Fedora o querrán informarle sobre errores importantes en la versión existente, hoja de ruta futura, etc.

Esté Atento a los Comentarios

Mire el informe Bugzilla para su primer paquete. Debería recibir notificaciones de cambios por correo electrónico. Corrija los obstáculos que los revisores señalen.

Obtener Patrocinio

Cuando el paquete es APROBADO por el revisor, debe obtener patrocinio de miembros por separado para poder registrarse y crear su paquete. El patrocinio no es automático y puede requerir que usted participe de otras maneras para demostrar su comprensión de las directrices de empaquetamiento. La claves para llegar a ser patrocinado es que convenza a un miembro con nivel de patrocinador de que entiende y sigue las directrices y procesos del proyecto.

Vea Como Obtener Patrocinio en el Grupo Empaquetador para más información sobre el proceso para llegar a ser patrocinado.

Su patrocinador le puede añadir al grupo empaquetador. Debería recibir un correo electrónico de confirmación de su patrocinio.

Añadir un Paquete al sistema de Administración de Código Fuente (SCM) y Establecer el Propietario

Antes de proceder, sincronice su cuenta accediendo a las Fuentes de Paquetes Fedora usando sus credenciales FAS.

Si se convierte en mantenedor de un nuevo paquete, en lugar de comantenedor, use fedpkg para solicitar un nuevo repositorio git para su paquete. El subcomando es fedpkg request-repo que incluye texto de ayuda para configurar el token API de Pagure que el comando requiere. Al crear su clave API elija alternar todo para las ACLs. Debe especificar el nombre del repositorio y revisar el número de error. Por ejemplo:

fedpkg request-repo python-prometheus_client 1590452

La solicitud será revisada y procesada automáticamente. Después del procesamiento, tendrá acceso para confirmar y compilar el paquete. En el caso de que la automatización no funcione, puede reportar el problema al rastreador de cuestiones Toddlers.

fedpkg request-repo solo crea una rama para Rawhide. Para solicitar ramas para otras versiones de Fedora, use fedpkg request-branch:

  1. fedpkg request-branch --repo python-prometheus_client f38

Necesitará ejecutar esto para cada rama no rawhide.
 Sí lo desea, también puede usar la bandera `--all-releases`
 para pedir ramas para todas las versiones actuales de Fedora.

[#check_out_the_distgit_repository]
== [[check_out_the_module]] Consultar el repositorio de distgit

Usted _podría_ consultar su repositorio distgit ahora, pero antes de hacer esto, considere hacer `mkdir ~/fedora-scm ; cd ~/fedora-scm` — de esta forma, todos sus archivos estarán dentro de un único directorio. También, ejecute `ssh-add`, para que no tenga que seguir escribiendo su clave contraseña.

Ahora está preparado para consultar su repositorio distgit desde el SCM:
fedpkg clone your-package
[#test_your_package]
== Probar Su Paquete

Vea https://fedoraproject.org/wiki/Using_Mock_to_test_package_builds[Usar Mock para probar las compilaciones de paquete] y xref:Using_the_Koji_Build_System.adoc#scratch_builds[Koji Scratch Builds] para más información sobre las pruebas de su paquete. Mock usa su sistema local, mientras que la herramienta en línea de comando Koji usar el servidor del sistema de compilación Fedora.

[#import_commit_and_build_your_package]
== Importar, confirmar y crear su paquete

Ahora que ha comprobado su repositorio distgit (vacío) con `fedpkg`, acceda a la rama principal del repositorio:

cd <packagename>

Ejecute fedpkg para importar los contenido del SRPM en el SCM:

fedpkg import PATH_TO_SRPM


Review Changes, press 'q' to stop; Revert with: git reset --hard HEAD git commit -m "Initial import (fedora#XXXXXX)." git push fedpkg build

Obviamente, reemplazar `PATH_TO_SRPM` con la ruta completa
 (no URL)
 para su SRPM aprobado
 y `XXXXXX` con el número de error del paquete revisado.

Si su paquete está usando _autochangelog_, escribiendo el número de error como se ha especificado
 hará que el sistema de actualización de Fedora cierre automáticamente el error cuando su paquete se
 envíe al repositorio Rawhide estable.

This imports into, commits, and builds only the *main*
(xref:releases::rawhide.adoc[Rawhide])
branch.

Si el envío falla con este tipo de mensaje:

W access for why DENIED to YOUR_ACCOUNT fatal: The remote end hung up unexpectedly Could not push: Command '['git', 'push']' returned non-zero exit status 128

Es que usted no tiene los derechos necesarios para modificar esta rama del paquete.
 Vea `\https://src.fedoraproject.org/rpms/PACKAGE_NAME` para solicitar esos derechos.

Para más información sobre el uso del sistema de mantenimiento de paquetes de Fedora,
 vea la xref:Package_Maintenance_Guide.adoc[Guía de mantenimiento de paquetes].

[#update_your_branches]
== Actualizar Sus Ramas (si lo desea)

Las ramas son `f#` (anteriormente `F-#` y antes de eso `FC-#`), `main`, etc. Así, So `f` is the branch for Fedora.

Cambie a una rama primero:

fedpkg switch-branch BRANCH

(por ejemplo`f{MAJOROSVER}`)

Fusione la confirmación inicial de principal (Rawhide),
 creando una confirmación idéntica en la rama:

git merge rawhide

Lleve los cambios al servidor:

git push

Compile el paquete:

fedpkg build

Si hay otra rama con la que trabajar
 repita _Cambie a una rama_
 e importe y confirme cada rama.

Si todo va bien,
 debería poner en cola su rama para la construcción,
 el paquete se construirá limpiamente
 y ¡listo!

Si falla la construcción,
 el sistema de compilación le enviará un correo electrónico
 para informar del fallo
 y le mostrará los registros.
 Confirme los cambios necesarios en git,
 aumente el número de versión de SPEC
 y solicite una nueva construcción.

[#submit_package_as_update_in_bodhi]
=== Entregar Paquete como Actualización en Bodhi

El sistema de actualización de Fedora llamado https://bodhi.fedoraproject.org[Bodhi] se utiliza para enviar actualizaciones, clasificar paquetes, etc. Usted no necesita envíar actualizaciones para Rawhide (principal) manualmente porque estas son creadas automáticamente para usted cuando la compilación se completa. Para las otras ramas, debe enviar manualmente las actualizaciones de todas las construcciones que desee hacer disponibles para los usuarios.

Puede enviar una actualización usando Bodhi por medio de la línea de comandos usando esto en cada rama:

fedpkg update

A menudo es más fácil completar las compilaciones para todas sus ramas
 y después enviar una única actualización por medio de la https://bodhi.fedoraproject.org/updates/new[interfaz web de Bodhi].
 Bodhi es lo suficientemente inteligente como para dividir su actualización en actualizaciones individuales,
 una por cada rama de versión de Fedora.

También puede seleccionar múltiples compilaciones de diferentes paquetes
 para incluir una única actualización usando la interfaz web.
 Esto es útil cuando desea enviar compilaciones vinculadas,
 por ejemplo: un paquete de aplicación y sus dependencias
 que son necesarias para que se ejecute correctamente.

Vea más detalles en la xref:Package_Update_Guide.adoc[Guía de Actualización de Paquetes].

[#make_the_package_available_in_comps_files]
== Hacer que el paquete esté disponible en archivos "comps"

Si es apropiado para el paquete, hágalo disponible en archivos "comps" de modo que pueda ser seleccionado durante la instalación e incluido en las operaciones del grupo de paquetes dnf. Vea https://fedoraproject.org/wiki/How_to_use_and_edit_comps.xml_for_package_groups?rd=PackageMaintainers/CompsXml[Como usar y editar comps.xml para grupos de paquete} para más información.

[#watch_for_updates]
=== Atento a las actualizaciones

Fedora tiene una infraestructura disponible para monitorizar nuevas versiones del desarrollador del software que está empaquetando. Vea más detalles en xref:Upstream_Release_Monitoring.adoc[Monitorizar Versiones del Desarrollador].