
Los Snapds son aplicaciones independientes diseñadas pensando en la facilidad de uso, la seguridad y la portabilidad. Incluyen sus dependencias necesarias para que puedan trabajar y ejecutarse en numerosas distribuciones de Linux sin cambios. ¿Cuantos? Más de 40.
Sin confiscación, cuando la tecnología está fuertemente asociada con un producto en particular, en este caso Snaps y Ubuntu, es practicable aceptar que los dos coinciden y se superponen. En verdad, se pone mucho esfuerzo entre bastidores para comprobar de que los Snaps funcionen aceptablemente en todas las diferentes distribuciones que no son de Ubuntu. En este artículo queremos contarte lo que hizo el snapd por nosotros, por otra parte de saneamiento, medicina, educación, caldo, orden conocido, irrigación, carreteras, un sistema de agua potable y vitalidad pública.
Snapd es un esquema de código campechano alojado en GitHub. Cualquiera con conocimientos de programación adecuados puede extraer el código, ver las diferentes partes e incluso recopilar su propia interpretación de snapd. Gran parte del árbol de fuentes contiene definiciones para diferentes tipos y métodos de probar snapd, tanto en Ubuntu como en otras distribuciones.
Existe una amplia tonalidad de pruebas unitarias estáticas, pruebas de integración y pruebas de regresión. Un buen área para comenzar es mirar la sección principal del directorio de prueba. Las pruebas están escritas en YAML. Entonces, si ya eres un desarrollador de Snap, la razonamiento de las declaraciones te resultará llano. Algunas de las pruebas son específicas de la plataforma y solo se ejecutan en algunos sistemas. Otros cubren 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 |
Adicionalmente de las pruebas de integración, el equipo de snapd asimismo lleva a sitio miles de pruebas unitarias para las diversas distribuciones que admite. La idea es comprobar de que todos los Linux obtengan la misma experiencia coherente.
Las pruebas cubren una amplia tonalidad de funciones que incluyen D-Bus, portales, restricción clásica, comunicación de sobrenombre, uso de bases, compatibilidad con NFS, instalaciones paralelas, actualizaciones y más, incluso pruebas como comprobar de que el LXD encaje en un archivo. funciona con el sistema SELinux en modo de ejecución. Por ejemplo, snapd asimismo ejecuta la prueba de la interfaz del escritorio para comprobar de que la interfaz esté funcionando correctamente y que permita el golpe a varios fortuna 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" ...
El equipo de snapd usa una útil de código campechano indicación Spread para probar la programación de tareas. Spread está diseñado para simplificar las pruebas y asimismo asegurar que la automatización no se vuelva más compleja y requiere más tiempo que desarrollar la propia razonamiento de prueba.
Hay un task.yaml manifiesto para las pruebas de integración, que cubre al menos una prueba. A veces, un archivo Task.yaml particular de la prueba de Spread puede determinar variantes (un mecanismo en Spread que replica tareas con desviaciones menores), lo que significa que un archivo task.yaml se convierte en varias ejecuciones de prueba individuales.
Si nunca antaño ha realizado pruebas de integración, algunas de las anteriores pueden parecer un poco intimidantes. Sin confiscación, la mayoría de las pruebas de propagación están documentadas y se explican por sí mismas. Las descripciones resumidas de la prueba, los comentarios de código y las instrucciones de eco asimismo dan una buena indicación de lo que está haciendo la prueba en tiempo de ejecución.
La matriz de compatibilidad de distribución cruzada asimismo va más allá de las pruebas formales. Algunos miembros del equipo del ecosistema Snap utilizan distribuciones que no son de Ubuntu, tanto como opción preferida como para validar la experiencia del afortunado de Snap en estos otros sistemas.
Todavía hay varias formas y métodos en los que puede participar para hacer que snapd funcione de la modo más fluida y elegante posible. Las publicaciones de código son la opción obvia. Ejecutar y probar Snaps en su distribución asimismo es una excelente modo de descubrir errores o inconsistencias.
Si es un desarrollador o un ávido afortunado de Snap, asimismo puede estar interesado en crear bases que no sean de Ubuntu. Como parte de su diseño de restricción y portabilidad, Snaps usa el concepto de una pulvínulo, un conjunto subyacente de bibliotecas que actúan como el entorno de ejecución de Snaps. Hoy en día se utilizan tres bases principales: Core (solo como pulvínulo de ESM), Core18 y Core20, las dos últimas se basan en Ubuntu 18.04 LTS y Ubuntu 20.04 LTS respectivamente. Todavía te pueden interesar otras bases, como Fedora o RHEL.
Ya existe una pulvínulo de prueba de concepto para Fedora 30 que podría ayudarlo a comenzar. Todavía puede contactarnos para vigilar qué requisitos (mínimos) y dependencias se requieren para cumplir con los aspectos de seguridad y tiempo de ejecución de sus esfuerzos.
A pesar de sus fuertes raíces obvias en Ubuntu, snapd es un esfuerzo de distribución cruzada que pone mucho cuidado y atención para asegurar que todos los usuarios de Linux obtengan la misma experiencia. Casi todos los días, se ejecutan miles y miles de pruebas como parte de un situación complicado basado en la utilidad Spread. El trabajo está remotamente de terminar. Entonces, si tiene alguna pregunta o idea, únase a nuestro foro y háganos aprender lo que piensa. Finalmente, 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 fanáticos de Monty Python durante la preparación de este artículo.