Noticia Tea el nuevo administrador de paquetes del creador de brew

Tea

tea está creando nuevas tecnologías que cambiarán la forma en que se distribuye el codigo



Max Howell, autor del popular sistema de administración de paquetes brew (Homebrew) de macOS, dio a conocer que se encuentra trabajando en el desarrollo de un nuevo administrador de paquetes, llamado Tea, el cual está posicionado como una continuación del desarrollo de brew, que va más allá del administrador de paquetes y ofrece una infraestructura de administración de paquetes unificada que funciona con repositorios descentralizados.

Tea no es conceptualmente como los administradores de paquetes tradicionales, y en lugar del paradigma «Quiero instalar un paquete», utiliza el enfoque «Quiero usar un paquete».



En particular, Tea no tiene un comando de instalación de paquetes como tal, sino que utiliza la generación de entornos para ejecutar los contenidos del paquete que no se superponen con el sistema actual. Los paquetes se colocan en un directorio ~/.tea separado y no se asignan a rutas absolutas (se pueden mover).

En Tea se proporcionan dos modos básicos de operación: saltar a un shell de comandos con acceso a un entorno con paquetes instalados e invocar directamente comandos relacionados con paquetes. Por ejemplo, al ejecutar «tea +gnu.org/wget», el administrador de paquetes descargará la utilidad wget y todas las dependencias necesarias, y luego proporcionará acceso de shell en un entorno donde la utilidad wget instalada esté disponible.

La segunda opción implica un lanzamiento directo: «tea +gnu.org/wget -qO- tea.xyz/white-paper | tea +charm.sh/glow glow – «, que instalará la utilidad wget y la ejecutará inmediatamente en un entorno separado, descargando un archivo el cual será renderizado con glow. Es posible un encadenamiento complejo, por ejemplo, para descargar el archivo white-paper.pdf y procesarlo con la utilidad glow, puede usar la siguiente construcción (si wget y glow no están presentes, se instalarán).


Del mismo modo, se puede ejecutar directamente secuencias de comandos, ejemplos de código y frases ingeniosas, cargando automáticamente las herramientas necesarias para el trabajo.

Para no Por ejemplo, ejecutar:

Código:
tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go
…

Se instalará el kit de herramientas del lenguaje Go y ejecutará el script colors.go con el «–yellow «como argumento.


Para no llamar al comando tea cada vez, es posible conectarlo como un administrador universal de entornos virtuales y un controlador de programas faltantes. En este caso, si el programa en ejecución no está disponible, se instalará y, si se instaló anteriormente, se iniciará en su entorno.

En su forma actual, los paquetes disponibles para Tea se recopilan en dos colecciones, pantry.core y pantry.extra, que incluyen metadatos que describen las fuentes de descarga de paquetes, los scripts de compilación y las dependencias.

La colección pantry.core incluye bibliotecas principales y utilidades que los desarrolladores de Tea mantienen actualizadas y probadas. pantry.extra contiene paquetes que no están bien estabilizados o que son sugeridos por la comunidad. Se proporciona una interfaz web para navegar a través de los paquetes.

El proceso de creación de paquetes para Tea se simplifica enormemente y se reduce a crear un archivo universal package.yml (ejemplo), que no requiere que el paquete se adapte para cada nueva versión. Para descubrir nuevas versiones y descargar su código, el paquete puede vincularse a GitHub.

El archivo también describe las dependencias y proporciona scripts de compilación para plataformas compatibles. Las dependencias instaladas son inmutables (la versión es fija), lo que elimina la repetición de situaciones similares al incidente del pad izquierdo.

En el futuro, está previsto crear repositorios descentralizados que no estén vinculados a ningún almacenamiento separado y utilizar una cadena de bloques distribuida para metadatos y una infraestructura descentralizada para almacenar paquetes. Las versiones serán certificadas directamente por los mantenedores y revisadas por las partes interesadas. Es posible distribuir tokens de criptomonedas para contribuir al mantenimiento, soporte, distribución y verificación de paquetes.

Finalmente cabe mencionar que actualmente el proyecto se desarrolla inicialmente como multiplataforma (actualmente se admiten macOS y Linux, el soporte de Windows está en desarrollo). El código del proyecto está escrito en TypeScript y se distribuye bajo la licencia Apache 2.0 (brew se escribió en Ruby y se envió bajo una licencia BSD).

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles y manual de uso de Tea en el siguiente enlace.

Continúar leyendo...