twórca browaru opracowuje nowego menedżera pakietów herbaty

Max Howell, autor popularnego systemu zarządzania pakietami dla systemu macOS Brew (Homebrew), opracowuje nowy menedżer pakietów o nazwie Tea, pozycjonowany jako kontynuacja rozwoju Brew, wykraczający poza menedżera pakietów i oferujący ujednoliconą infrastrukturę zarządzania pakietami, która działa ze zdecentralizowanymi repozytoriami. Projekt jest początkowo rozwijany jako projekt wieloplatformowy (obecnie obsługiwane są macOS i Linux, obsługa Windows jest w fazie rozwoju). Kod projektu napisany jest w języku TypeScript i rozpowszechniany na licencji Apache 2.0 (brew został napisany w języku Ruby i rozpowszechniany na licencji BSD).

Herbata koncepcyjnie nie przypomina tradycyjnych menedżerów pakietów i zamiast paradygmatu „Chcę zainstalować pakiet” używa paradygmatu „Chcę użyć pakietu”. W szczególności Tea nie ma polecenia instalującego pakiet jako taki, lecz zamiast tego korzysta z generowania środowiska w celu wykonania zawartości pakietu, która nie pokrywa się z bieżącym systemem. Pakiety umieszczane są w oddzielnym katalogu ~/.tea i nie są przypisane do ścieżek bezwzględnych (można je przenosić).

Dostępne są dwa główne tryby działania: przejście do powłoki poleceń z dostępem do środowiska z zainstalowanymi pakietami oraz bezpośrednie wywoływanie poleceń związanych z pakietami. Na przykład podczas wykonywania „tea +gnu.org/wget” menedżer pakietów pobierze narzędzie wget i wszystkie niezbędne zależności, a następnie zapewni dostęp do powłoki w środowisku, w którym dostępne jest zainstalowane narzędzie wget. Druga opcja polega na bezpośrednim uruchomieniu - „tea +gnu.org/wget wget https://some_webpage”, w którym narzędzie wget zostanie zainstalowane i natychmiast uruchomione w osobnym środowisku. Możliwe jest komponowanie złożonych łańcuchów, np. pobranie pliku white-paper.pdf i przetworzenie go za pomocą narzędzia glow, można zastosować następującą konstrukcję (jeśli brakuje wget i glow, zostaną one zainstalowane): herbata + gnu.org/wget wget -qO- https:/ /tea.xyz/white-paper.pdf | herbata +charm.sh/glow glow - lub możesz użyć prostszej składni: herbata -X wget -qO- tea.xyz/white-paper | herbata -X blask —

W podobny sposób możesz bezpośrednio uruchamiać skrypty, przykłady kodu i one-linery, automatycznie ładując narzędzia niezbędne do ich działania. Na przykład uruchomienie „tea https://Gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow” spowoduje zainstalowanie zestawu narzędzi Go i wykonanie skryptu Colours.go z argumentem „-yellow”.

Aby nie wywoływać za każdym razem komendy tea, można ją podłączyć jako uniwersalnego menedżera środowisk wirtualnych i obsługi brakujących programów. W takim przypadku, jeśli uruchomiony program nie jest dostępny, zostanie on zainstalowany, a jeśli był wcześniej zainstalowany, zostanie uruchomiony w swoim środowisku. $ deno zsh: nie znaleziono polecenia: deno $ cd mój-projekt $ deno herbata: instalowanie deno.land^1.22 deno 1.27.0 > ^D

W obecnej formie pakiety dostępne dla Tea zebrane są w dwie kolekcje - pantry.core i pantry.extra, które zawierają metadane opisujące źródła pobierania pakietów, skrypty kompilacji i zależności. Kolekcja pantry.core zawiera główne biblioteki i narzędzia, aktualizowane i testowane przez programistów Tea. Pantry.extra zawiera pakiety, które nie są wystarczająco ustabilizowane lub są sugerowane przez członków społeczności. Dostępny jest interfejs sieciowy umożliwiający poruszanie się po pakietach.

Proces tworzenia pakietów dla Tea jest znacznie uproszczony i sprowadza się do stworzenia jednego uniwersalnego pliku package.yml (przykład), który nie wymaga dostosowywania pakietu dla każdej nowej wersji. Pakiet może łączyć się z GitHubem, aby odkryć nowe wersje i pobrać ich kod. Plik opisuje również zależności i udostępnia skrypty kompilacji dla obsługiwanych platform. Zainstalowane zależności są niezmienne (wersja jest naprawiona), co eliminuje powtarzanie się sytuacji podobnych do incydentu z lewym padem.

W przyszłości planowane jest utworzenie zdecentralizowanych repozytoriów, które nie są powiązane z żadnym wydzielonym magazynem i wykorzystują rozproszony blockchain dla metadanych oraz zdecentralizowaną infrastrukturę do przechowywania pakietów. Wersje będą certyfikowane bezpośrednio przez opiekunów i przeglądane przez zainteresowane strony. Istnieje możliwość dystrybucji tokenów kryptowaluty w zamian za wkład w utrzymanie, wsparcie, dystrybucję i weryfikację pakietów.

twórca browaru opracowuje nowego menedżera pakietów herbaty


Źródło: opennet.ru

Dodaj komentarz