Canonical anunció la reelaboración de Snapcraft
Canonical dio a conocer recientemente sus planes que tiene para una próxima revisión importante del kit de herramientas Snapcraft, el cual es utilizado para generar, distribuir y actualizar el popular formato de paquetes Snap.
Cabe señalar que el código base actual de Snapcraft se ha declarado heredado y se aplicará cuando sea necesario utilizar tecnologías antiguas.
En su anuncio menciona que de los cambios drásticos que se planean ejecutar y de los cuales algunos de ellos que ya están en curso no afectarán el modelo de uso actual, ya que los proyectos relacionados con Ubuntu Core 18 y 20 continuarán usando el antiguo modelo Snapcraft monolítico.
Ademas de ello mencionan que el nuevo modelo modular de Snapcraft tienen planeado que este comenzará a aplicarse a partir de la rama Ubuntu Core 22.
En realidad, las cosas son más complejas y tienden a volverse más complejas a medida que pasa el tiempo. Durante los últimos seis años, el equipo de Snapcraft ha trabajado para hacer que su producto principal sea modular, eficiente y útil para los desarrolladores de Snap, ampliando su funcionalidad e introduciendo nuevas capacidades con el tiempo. En cierto modo, es un producto completo y cumple bien su propósito. Pero hay maneras de hacer las cosas aún mejor. Este artículo analiza el futuro de Snapcraft.
En cuanto a los motivos por el cual se pretende reemplazar al antiguo Snapcraft es debido a que se quiere ofrecer una opción nueva, más compacta y modular que facilitará a los desarrolladores la creación de paquetes Snap, sumando a esto que tambien se quiere eliminar de una vez por todas la molestia de crear paquetes portátiles que funcionen en todas las distribuciones.
La base del nuevo Snapcraft es el mecanismo Craft Parts, se menciona que ademas de permitir el poder ensamblar paquetes, tambien podra recibir datos de diferentes fuentes, procesarlos de diferentes formas y formar una jerarquía de directorios en el FS, apta para la implementación de paquetes.
Craft Parts implica el uso de componentes portátiles en el proyecto, que se pueden descargar, ensamblar e instalar de forma independiente.
El concepto básico gira en torno a dividir Snapcraft en componentes más pequeños, aún más modulares y reutilizables que se pueden utilizar en una gama de productos diferentes. La base común para este esfuerzo es un conjunto de Bibliotecas Craft, como ya hemos discutido en la publicación del blog Craft Parts . La teoría exige el uso de un generador de piezas genérico basado en proveedores de artesanía y piezas de artesanía, con la funcionalidad añadida de Snapcraft como una capa separada. La única pregunta es,¿Cuál es la velocidad aerodinámica de una golondrina? ¿Qué tan difícil sería diseñar e implementar esto?
Justo antes de la temporada navideña, el equipo de Snapcraft se dispuso a responder esa pregunta exacta y a examinar el alcance de la modularidad en su enfoque.
La elección de una implementación nueva o antigua de Snapcraft se llevará a cabo a través de un mecanismo de respaldo especial integrado en el proceso de construcción. Por lo tanto, los proyectos existentes podrán crear paquetes Snap sin cambios y requerirán modificaciones solo cuando los paquetes se transfieran a una nueva versión de la base del sistema Ubuntu Core.
En cuanto al trabajo que ya se ha realizado, se comparte un resumen muy rápido de ello:
- El código base actual de Snapcraft ahora se considera heredado.
- El punto de entrada principal de este paquete se ejecuta cuando se requiere un respaldo a Snapcraft heredado.
- Legacy Snapcraft mantiene los datos de configuración del proyecto en forma de diccionario.
- Esto se cambió para usar un modelo pydantic . Asimismo, el esquema JSON deberá mantenerse por separado.
- Se hizo un prototipo simple utilizando la base core22 (imagen de desarrollo), lo que resultó en un paquete instantáneo instalable que contenía una aplicación de prueba.
Finalmente si estás interesado en poder conocer más al respecto sobre la nota, puedes consultar el anuncio original en el siguiente enlace.