FAQ
- either
brew upgrade tea
- or
tea@latest
Depending on how you installed
tea
originallyUnless otherwise instructed,
tea
executes the latest version of pkgs that are installed. The first time you run a pkg the latest version will be installed, but after that updates will only be fetched if requested.tea deno@latest
If you install tea/gui we can have it automatically install updates.
You can update committed pkgs by
tea +pkg@latest && tea install
A
pkg
(package) is:- a plain tarball containing a single project for a single platform and architecture compiled from that project’s sources
- a bundle of metadata (
package.yml
) from the [pantry]
Relative to other pkging systems:
- no scripts are executed post install
- packages must work as is from any location provided their deps are installed in parallel (we say our pkgs are “relocatable“)
The commonly used
@
syntax would pin the pkg to v20.1.x (@20.1.3
).To provide more control we support the full semantic version range syntax. So for the given example we would use the caret (
^
):$ tea node^20.1.3 --version
v20.1.5
Which will match node v20.1.3 up to but not including v21.
+pkg
syntax is a way to include additional pkgs in your environment. Typing tea +deno
dumps the environment to the terminal, if you add additional commands then those commands are invoked in that environment.Coming soon.
For now, all packages are encapsulated in individual, versioned folders in
~/.tea
just like brew
.Open source is ever moving and somebody needs to keep up with it. You may need to contribute to the pantry.
Everything goes in
~/.tea
. eg. Deno v1.2.3 installs an independent POSIX prefix to ~/.tea/deno.land/v1.2.3
, thus the deno
executable is at ~/.tea/deno.land/v1.2.3/bin/deno
.We also install symlinks for majors, minors and latest:
$ cd ~/.tea/deno.land
$ ls -la
v* -> v1.2.3
v1 -> v1.2.3
v1.2 -> v1.2.3
Open source is vast and unregulated, thus we use fully-qualified naming scheme to ensure pkgs can be disambiguated.
Yes! Our pkgs are relocatable.
We would love to support all platforms. All that is holding is back from new platforms is expertise. Will you help? Let’s talk [discussions].
Eventually we will support describing how to build or obtain distributables for your package via your repo so you can just add a
tea.yaml
and users can use tea to use your package automatically.$ tea your-package --args
You can also recommend our shell one-liner if you like:
sh <(curl tea.xyz) +your-package sh
Will for example install tea and your pkg then open a new shell with it available to the environment.
We removed “magic” from tea at v1 because it had a number of unsolvable issues. If you want it back however fortunately the shellcode is simple:
function command_not_found_handle {
tea -- "$*"
}
tea uninstall tea
This will uninstall tea, all package caches and deintegrate your
~/.shellrc
files as well.Last modified 19d ago