Una buena señal de madurez y confianza en el software es cuando ese software utiliza sus propios componentes para el desarrollo y la potenciación futuros. Snapcraft es una utilidad de línea de comandos que los desarrolladores pueden usar para empaquetar y distribuir sus aplicaciones como instantáneas. ¡Pero Snapcraft en sí también se vende como Snap y se construye de la misma manera!
Hoy, Snapcraft está construido con Core18, que se basa en Ubuntu 18.04 LTS. Snapcraft se trasladará a la última base LTS, core20, muy pronto para proporcionar soporte y actualizaciones, así como aprovechar varias mejoras en el ecosistema Snappy. Esta migración traerá una serie de cambios importantes, por lo que nos gustaría compartir con usted nuestra hoja de ruta y plan para Snapcraft y cómo estos cambios pueden afectarlo.
Ubuntu 20.04 LTS introduce soporte para una nueva familia de arquitecturas de CPU, riscv64. Al mismo tiempo, la compatibilidad con i386 se ha reducido a una lista básica de bibliotecas de compatibilidad de 32 bits. Esto significa que la migración de Snapcraft a Core20 implicaría la inclusión de riscv64 y la eliminación de i386 de la lista de arquitecturas de construcción y ejecución compatibles.
Esto puede sonar alarmante al principio, pero no lo es:
- Snapcraft ya mantiene dos pistas en paralelo, la versión principal en la última pista, comenzando con la versión 5.x, y la pista heredada 4.x, que fue especialmente desarrollada para desarrolladores y editores que usan ESM-Basis (Core). y no puede migrar a las bases más nuevas. La pista heredada admite Core y la arquitectura i386.
- De manera similar, las compilaciones para core20 ya están configuradas para no usarse y compiladas para la arquitectura i386, lo que reduce la posible interrupción de los flujos de trabajo de desarrollo para aquellos que ya están construyendo sus instantáneas con core20.
El cambio afecta principalmente a aquellos editores y desarrolladores que crean sus Snaps con core18 y apuntan a la arquitectura i386. Sin embargo, al igual que con la introducción del soporte de ESM para Ubuntu 16.04 LTS, queremos que la transición sea lo más fluida posible. De hecho, las bibliotecas de compatibilidad de 32 bits permanecen en los archivos de Ubuntu 20.04 y no se ven afectadas por esta migración.
La última versión de Snapcraft utilizará Core20 y se lanzará en la pista 6.x. El conjunto de funciones disponible en la pista 5.x se congelará en el momento de la división, y todas las funciones y opciones nuevas se lanzarán en la pista 6.x.
Launchpad enviará automáticamente las compilaciones core18 + i386 a través de un nuevo canal 5.x / estable, mientras que otras compilaciones core18 se enviarán con 6.x. La versión de Snapcraft en este canal seguirá estando basada en Core18 y seguirá siendo compatible con i386.
Los editores individuales tienen la opción de permanecer en la vía 5.x con sus características y capacidades o pasar a core20 y adaptar o editar las arquitecturas que desean admitir, lo que esencialmente les daría la opción de cancelar i386 -Support. Mantener la compatibilidad con 5.x (para i386) significa que los editores no podrán aprovechar ninguna función nueva (como nuevas palabras clave o mejoras) que puedan estar disponibles en el canal 6.x en el futuro.
Para la mayoría de los desarrolladores y editores, el lanzamiento de Snapcraft 6.x no provocará ningún cambio en sus procesos existentes. Podrá crear Snaps como antes y aprovechar las últimas funciones del canal 6.x. Para aquellos que aún necesitan admitir la arquitectura i386, pueden usar el canal 5.x. Además, Launchpad conserva la capacidad de distribuir tareas Core18 con o sin una arquitectura i386.
Esperamos que el plan descrito aclare cualquier pregunta que pueda surgir en relación con Snapcraft 6.xy que continúe teniendo una experiencia buena y eficiente con Snaps. Si tiene alguna inquietud o sugerencia, comuníquese con nosotros a través del foro. Siempre estamos interesados en aprender más sobre cómo podemos mejorar nuestros productos.
Foto de Pravin Rahangdale en Unsplash.