Ramificar Fedora IoT
Ramificada es el nombre que se le da a una versión de Fedora que se ha "ramificado" del árbol Rawhide y que se convertirá en la próxima versión estable de Fedora. Este documento detallará los pasos para ramificar Fedora IoT desde crudo oculto.
Para completar estos pasos y abrir cualquier tirador solicitado necesita una cuenta válida en Cuenta de Fedora.
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 cruda (principal)
En su bifurcación local, cree una nueva rama para los cambios en Ocultación cruda (main).
Actualizar la clave de firma para Ocultación cruda desde el principal Fedora Pungi repo. A partir de la ramificación de Fedora 40 se puede encontrar esto aquí.
Copie la clave utilizada en Ocultación cruda 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 permanecerá como “Ocultación cruda”, pero necesitamos actualizar el lanzamiento a la próxima versión de 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: Actualizar para ramificación" -s
Revisa los cambios y, si estás satisfecho, envíalos a tu bifurcación y abre una solicitud de tirador para que otros lo revisen. Example PR
Ramificado (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 rama de Fedora 40:
git checkout f40
En su bifurcación local, cree una rama nueva para los cambios.
Actualizar los enlaces simbólicos para asegurarse de que estamos utilizando la última composición de flujo superior completado en Fedora
sed -i 's|latest-Fedora-Rawhide|latest-Fedora-40|g' fedora-iot.conf
Actualice las URLS 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 bifurcación y abre uns solicitud de tirador 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
Crea la rama nueva y sube al repositiorio superior. Cambie $release
a la rama numérica nueva de Fedora:
git checkout main; git pull; git checkout -b f$release; git push --set-upstream upstream f$release
Ejemplo, utiliza para Fedora 40 (el lanzamiento estable siguiente de Fedora):
git checkout main; git pull; git checkout -b f40 ; git push --set-upstream upstream f40
Crudo oculto (principal)
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 bifurcación y abre una solicitud de tirador para que otros lo revisen.
Ramificado (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 bifurcación para el PR.
Cambia la 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 bifurcación y abre una solicitud de tirador para que otros lo revisen.
Comprobaciones adicionales
-
compruebe que la etiqueta de 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 porción iot)
-
A partir de Fedora 40 puede encontrar la sección relevante aquí.
-
Asegúrese de actualizar Ansible y crear una tarea cron para la versión de desarrollo (devel). Puedes encontrar tareas de cron 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 tarea de cron para composición de desarrollo IoT - nombre: 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 ›