Tea the new brew creator package manager

Tea

tea is creating new technologies that will change the way code is distributed

Max Howell, author of the popular package management system brew (Homebrew) of macOS, disclosed that is working on the development of a new package manager, called Tea, which is positioned as a continuation of brew development, going beyond the package manager and offering a unified package management infrastructure that works with decentralized repositories.

Tea is not conceptually like traditional package managers., and instead of the "I want to install a package" paradigm, it uses the "I want to use a package" approach.

En particular, Tea doesn't have a package install command as such, but instead uses environment generation to run package contents that do not overlap with the current system. Packages are placed in a separate ~/.tea directory and are not assigned to absolute paths (they can be moved).

Two basic modes are provided in Tea of operation: jumping into a command shell with access to an environment with packages installed and directly invoking package-related commands. For example, by running "tea +gnu.org/wget", the package manager will download the wget utility and all necessary dependencies, and then provide shell access in an environment where the installed wget utility is available.

The second option involves a direct launch: «tea +gnu.org/wget -qO- tea.xyz/white-paper | tea +charm.sh/glow glow – ", which will install the wget utility and run it immediately in a separate environment, downloading a file which will be rendered with glow. Complex chaining is possible, for example, to download the white-paper.pdf file and process it with the glow utility, you can use the following construct (if wget and glow are not present, they will be installed).

Similarly, you can directly run scripts, code samples and one-liners, automatically loading the tools needed for the job.

For no example, run:

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

It will install the Go language toolkit and run the colors.go script with the “–yellow” as argument.

In order not to call the tea command every time, it is possible to connect it as a universal manager of virtual environments and a driver of missing programs. In this case, if the running program is not available, it will be installed and, if previously installed, it will start in your environment.

In its current form, the packages available for Tea are collected in two collections, pantry.core and pantry.extra, which includes metadata describing package download sources, build scripts, and dependencies.

The pantry.core includes core libraries and utilities that Tea developers kept up to date and tested. pantry.extra contains packages that are not well stabilized or that are suggested by the community. A web interface is provided to navigate through the packages.

The process of creating packages for Tea is greatly simplified and reduced to creating a universal package.yml file (example), which does not require the package to be adapted for each new version. To discover new versions and download its code, the package can be linked to GitHub.

The file also describes dependencies and provides build scripts for supported platforms. Installed dependencies are immutable (version is fixed), which eliminates repeating situations similar to the left pad incident.

In the future, it is planned to create decentralized repositories thatue are not tied to any separate storage and use a distributed blockchain for metadata and a decentralized infrastructure to store packages. The versions will be directly certified by the maintainers and reviewed by the interested parties. It is possible to distribute cryptocurrency tokens to contribute to the maintenance, support, distribution and verification of packages.

Finally, it is worth mentioning that currently the project is initially developed as cross-platform (macOS and Linux are currently supported, Windows support is under development.) The project's code is written in TypeScript and is released under the Apache 2.0 license (brew was written in Ruby and shipped under a BSD license).

If you are interested in being able to learn more about it, you can consult Tea's details and user manual at the following link


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.