Ramificar Fedora IoT
Branched is the name given to a version of Fedora that has "branched" from the rolling Rawhide tree and will become the next stable Fedora release. This document will detail the steps for branching Fedora IoT from Rawhide.
To complete these steps and open any pull requests you need a valid Fedora account.
Trabajar con el repositorio pungi-iot
Clone y bifurque el repositorio Fedora IoT Pungi para realizar cambios a los archivos de configuración utilizados para construir Fedora IoT.
git clone https://pagure.io/fedora-iot/pungi-iot.git
Cree la nueva rama y envíela al repositorio upstream. Cambie $release
a la nueva rama numérica de Fedora. Esto no se hace como un PR y debe ser empujado directamente al repositorio upstream, para ello necesitará permisos de commit.
git checkout main; git pull; git checkout -b f$release; git push --set-upstream upstream f$release
Ejemplo, utilizado para Fedora 40:
git checkout main; git pull; git checkout -b f40 ; git push --set-upstream upstream f40
Ocultación (principal).
En su bifurcación local, cree una nueva rama para los cambios en Rawhide (main).
Update the signing key for Rawhide from the main Fedora Pungi repo. As of Fedora 40 branching you can find this here.
Copie la clave utilizada en Rawhide en fedora-iot.conf
, sustituyendo la clave anterior.
Ejemplo:
sed -i 's|$OLD_SIGNING_KEY|$NEW_RAWHIDE_KEY|g' fedora-iot.conf
Ejemplo utilizado en la ramificación de Fedora 40:
sed -i 's|a15B79cc|e99d6ad1]|g' fedora-iot.conf
Main will remain as "Rawhide", but we need to update the release to the next version of Fedora.
sed -i 's|40|41|g' fedora-iot.conf nightly.sh sync-release.sh twoweek-nightly.sh
Confirme los cambios:
git commit -a -m "F-41: Update for branching" -s
Revisa los cambios y, si estás satisfecho, envíalos a tu fork y abre un pull request para que otros lo revisen. Example PR
Branched (la próxima versión estable de Fedora)
Ahora necesitamos trabajar en la nueva versión, o rama de Fedora que creamos al principio, y especificar el número de versión (por ejemplo '40') en lugar de 'Rawhide'.
Ejemplo:
git checkout f$release
Utilizado en la ramificación de Fedora 40:
git checkout f40
En su bifurcación local, cree una rama nueva para los cambios.
Update symlinks to ensure we are using the latest completed upstream compose in Fedora
sed -i 's|latest-Fedora-Rawhide|latest-Fedora-40|g' fedora-iot.conf
Actualice las URL de Fedora con 'branched':
sed -i 's|compose/rawhide|compose/branched|g' fedora-iot.conf
Actualiza los repos de iot para usar 'devel' en lugar de 'rawhide':
sed -i 's|fedora/rawhide/|fedora/devel/|g' fedora-iot.conf
Actualiza las instancias de 'main' a la versión:
sed -i 's|main|f40|g' fedora-iot.conf
Tendrá que cambiar manualmente los repos comps y bootc base-images a main. No hay ramas en comps o base-images . (Los archivos comps son archivos XML utilizados por varias herramientas de Fedora para realizar la agrupación de paquetes en grupos funcionales. Para más información, visite haga clic aquí.
|
Actualiza la 'global_ksurl':
sed -i 's|=HEAD|=origin/f40|g' fedora-iot.conf
Actualice la ubicación en la que se copia el comunicado durante el proceso de composición, y alojado para su descarga y rsync’ing a las distintas réplicas de Fedora. Esta ruta se crea cuando se ejecuta twoweek-nightly.sh
y puede encontrarse en Proyecto Fedora master mirror.
sed -i 's|/pub/alt/iot/rawhide/|/pub/alt/iot/branched/|g' twoweek-nightly.sh
Confirme los cambios:
git commit -a -m "F-40: Actualización para la ramificación" -s
Revisa los cambios y, si estás satisfecho, envíalos a tu fork y abre un pull request para que otros lo revisen. Ejemplo PR
Trabajar con el repositorio OStree
Este repositorio se utiliza para configurar el ostree de Fedora IoT e incluye los paquetes, servicios y varias configuraciones incluyendo selinux y unified-core.
Clonar y bifurcar el upstream del repo ostree:
git clone https://pagure.io/fedora-iot/ostree.git
Create the new branch and push to the upstream repository. Change $release
to the new numeric branch of Fedora:
git checkout main; git pull; git checkout -b f$release; git push --set-upstream upstream f$release
Example, used for Fedora 40 (the next stable release of Fedora):
git checkout main; git pull; git checkout -b f40 ; git push --set-upstream upstream f40
Cuero crudo (proincipal)
Crea una rama en tu bifurcación local y realiza los siguientes cambios para Rawhide:
sed -i 's|40|41|g' config.ini fedora-40.repo fedora-iot-base.yaml fedora-iot.yaml mv fedora-40.repo fedora-41.repo git add fedora-41.repo git commit -a -m "IoT: Actualizar el cuero crudo para F-41" -s
Revisa los cambios y, si estás satisfecho, envíalos a tu fork y abre un pull request para que otros lo revisen.
Branched (la próxima versión estable de Fedora)
Revisa la rama recién creada para la próxima versión estable de Fedora y crea una rama en tu fork para el PR.
Cambia las urls de development/rawhide
a development/40
:
sed -i 's|development/rawhide|development/40|g' config.ini
Actualizar instancias de rawhide
, sustituyendo por devel
:
sed -i 's|rawhide|devel|g' config.ini fedora-40.repo fedora-iot-base.yaml fedora-iot.yaml fedora-iot-updates-stable.yaml fedora-iot-updates-testing.yaml
Escribe el mensaje de confirmación:
git commit -a -m "Configuración para ramificaciones de F-40" -s
Revisa los cambios y, si estás satisfecho, envíalos a tu fork y abre un pull request para que otros lo revisen.
Comprobaciones adicionales
-
compruebe que la etiqueta Fedora IoT se ha creado en koji. Para verificarlo necesitará instalar el paquete
koji
en Fedora-
Verifica que las etiquetas están listadas para las nuevas ramas
koji list-tags|grep f*-iot
-
-
asegúrese de que la clave de firma se ha actualizado en Ansible (busque la parte iot)
-
A partir de Fedora 40 puede encontrar la sección correspondiente aquí.
-
Asegúrese de actualizar Ansible y crear una tarea cron para la versión de desarrollo (devel). Puedes encontrar cron jobs aquí.
-
Crea un árbol de archivo en los repositorios
base-images
yfedora-iot-bootc
apuntando al lanzamiento de la nuevamente ramificada. Esto puede estar obsoleto con el mover a Konflux. Un ejemplo del árbol de archivo utilizado para composiciones de Fedora 41 pueden ser encontradas en aquí. Composiciones ramificadas utilizanfedora-devel
.
Usted tendrá que crear el archivo, ya que se elimina en Final. Ejemplo para devel-iot
(IMPORTANTE - Asegúrese de actualizar el ramificado utilizado, en el ejemplo es f41
):
# composición de desarrollo IoT MAILTO=releng-cron@lists.fedoraproject.org 00 14 * * * root touch /tmp/fedora-compose-devel-iot && TMPDIR=`mktemp -d /tmp/devel.XXXXXX` && cd $TMPDIR && git clone https://pagure.io/fedora-iot/pungi-iot.git && cd pungi-iot && git checkout f41 && ./twoweek-nightly.sh RC-$(date "+\%Y\%m\%d").0 && rm /tmp/fedora-compose-devel-iot
Añádelo a la sección IoT de main.yml que se encuentra en here:
# poner cron job para IoT devel compose - name: IoT devel compose cron ansible.builtin.copy: src: devel-iot dest: /etc/cron.d/devel-iot mode: "644" when: inventory_hostname.startswith('compose-iot01.iad2')
Want to help? Learn how to contribute to Fedora Docs ›