Ubuntu

¿Qué ha hecho Snapd por otras distribuciones?

¿Qué ha hecho Snapd por otras distribuciones?

Los snaps son aplicaciones independientes diseñadas pensando en la facilidad de uso, la seguridad y la portabilidad. Incluyen sus dependencias necesarias para que puedan funcionar y ejecutarse sin modificaciones en numerosas distribuciones de Linux. ¿Cuantos? Más de 40.

Sin embargo, a menudo, cuando la tecnología está fuertemente asociada con un producto en particular, en este caso snaps y Ubuntu, es fácil asumir que los dos coinciden y se superponen. En realidad, detrás de escena, se pone un gran esfuerzo para asegurarse de que las instantáneas funcionen bien en todas las diferentes distribuciones que no son de Ubuntu. En este artículo, queremos contarle lo que el snapd ha hecho por nosotros, además del saneamiento, la medicina, la educación, el vino, el orden público, el riego, las carreteras, un sistema de agua potable y la salud pública.

Encuentra la fuente, Tux

Snapd es un proyecto de código abierto, alojado en GitHub. Cualquiera, con suficientes habilidades de codificación, puede tomar el código, mirar las diferentes partes e incluso compilar su propia versión de snapd. Una gran parte del árbol de fuentes incluye definiciones para diferentes formas y métodos de probar snapd, tanto en Ubuntu como en otras distribuciones.

Existe una amplia gama de pruebas unitarias estáticas, pruebas de integración y pruebas de regresión. Un buen lugar para comenzar es mirar el sección principal del directorio de prueba. Las pruebas están escritas en YAML, por lo que si ya eres un desarrollador instantáneo, la lógica de las declaraciones te resultará familiar. Algunas de las pruebas son específicas de la plataforma y solo se ejecutarán en algunos sistemas. Otros cubrirán todas las distribuciones admitidas. En la mayoría de los casos, estamos hablando de cientos de pruebas. Por ejemplo:

Distribución Número de pruebas de integración
Arch Linux 440
CentOS 7 427
Debian 10 468
Fedora 34 443
openSUSE 15.2 436

Además de las pruebas de integración, el equipo de snapd también ejecuta miles de pruebas unitarias en las diferentes distribuciones admitidas. La idea es garantizar que todos los Linux obtengan la misma experiencia coherente.

Las pruebas incluyen una amplia gama de funcionalidades, incluyendo D-Bus, portales, confinamiento clásico, declaración de alias, el uso de bases, soporte NFS, instalaciones paralelas, actualizaciones y más, incluso pruebas como asegurarse de que el complemento LXD funcione en un sistema usando SELinux en modo de ejecución. Por ejemplo, snapd también ejecuta el prueba de interfaz de escritorio, para garantizar que la interfaz funcione correctamente y permita el acceso a diferentes recursos específicos del escritorio.

summary: Ensure that the desktop interface works.
details: |
    The desktop interface allows access to different resources.
    The test-snapd-desktop snap checks files and dirs are accessible through the
    desktop interface.
systems:
    - -amazon-linux-2-*
    - -centos-7-*
    - -ubuntu-14.04-*
    - -ubuntu-core-*
prepare: |
    echo "Given the desktop snap is installed"
    snap try "$TESTSLIB"/snaps/test-snapd-desktop
    tests.session -u test prepare
restore: |
    tests.session -u test restore
execute: |
    dirs="/var/cache/fontconfig /usr/share/icons /usr/share/pixmaps"
    files="/etc/xdg/user-dirs.conf /etc/xdg/user-dirs.defaults"
...

Prueba de propagación

El equipo de snapd usa una herramienta de código abierto llamada propagar para probar la programación de tareas. Spread está diseñado para simplificar las pruebas y también garantizar que la automatización no se vuelva más compleja y requiera más tiempo que el desarrollo de la propia lógica de prueba.

Para las pruebas de integración, hay un task.yaml declarado, que cubre al menos una prueba. A veces, un archivo task.yaml de prueba de propagación específico puede declarar variantes (un mecanismo de propagación que replica tareas con variaciones menores), lo que significa que un task.yaml termina convirtiéndose en múltiples ejecuciones de prueba individuales en su lugar.

Si nunca ha realizado pruebas de integración, algunas de las anteriores pueden parecer un poco intimidantes. Sin embargo, la mayoría de las pruebas de propagación están documentadas y se explican por sí mismas. La descripción resumida de la prueba, los comentarios de código y las declaraciones de eco también proporcionan una buena indicación de lo que está haciendo la prueba en tiempo de ejecución.

Involucrado

La matriz de compatibilidad entre distribuciones también va más allá de las pruebas formales. Algunos miembros del equipo del ecosistema Snap ejecutan distribuciones que no son de Ubuntu, tanto como una opción preferida como para ayudar a validar la experiencia del usuario Snap en estos otros sistemas.

También hay varias formas y métodos en los que puede participar para garantizar que snapd funcione de la manera más fluida y elegante posible. Las contribuciones de código son la opción obvia. Ejecutar y probar instantáneas en su distribución también es una buena forma de exponer cualquier error o inconsistencia.

Si es un desarrollador o un usuario entusiasta de snap, también puede estar interesado en construir bases que no sean de Ubuntu. Como parte de su diseño de confinamiento y portabilidad, los broches utilizan el concepto de base, un conjunto subyacente de bibliotecas que actúa como entorno de ejecución para las instantáneas. Hoy en día, hay tres bases principales en uso: núcleo (solo como Base ESM), core18 y core20, los dos últimos basados ​​en Ubuntu 18.04 LTS y Ubuntu 20.04 LTS, respectivamente. Pero también te pueden interesar otras bases, como Fedora o quizás RHEL.

Ya existe una base de prueba de concepto de Fedora 30, que podría ayudarlo a comenzar. También puede comunicarse para averiguar qué requisitos (mínimos) y dependencias son necesarios para satisfacer los aspectos de seguridad y tiempo de ejecución de su esfuerzo.

Resumen

A pesar de sus raíces obvias y sólidas en Ubuntu, snapd es un esfuerzo de distribución cruzada, con una gran cantidad de cuidado y atención invertidos en asegurarse de que todos los usuarios de Linux tengan la misma experiencia. Casi a diario, se ejecutan miles y miles de pruebas, como parte de un marco complejo construido sobre la utilidad de propagación. El trabajo está lejos de estar terminado, así que si tiene alguna pregunta o idea, únase nuestro foroy háganos saber lo que piensa. Después de todo, no preguntes qué puede hacer snapd por tu distribución, ¡pregunta qué puede hacer tu distribución por snapd!

PD: No se compilaron o probaron fans de Monty Python durante la preparación de este artículo.

Leave a Comment

You may also like