te skaber nye teknologier, der vil ændre den måde, kode distribueres på
Max Howell, forfatter af det populære pakkehåndteringssystem bryg (Hjemmebryg) af macOS, afslørede det arbejder på udviklingen af ​​en ny pakkemanager, kaldet Tea, som er positioneret som en fortsættelse af brygudvikling, der går ud over pakkehåndteringen og tilbyder en samlet pakkehåndteringsinfrastruktur, der fungerer med decentraliserede repositories.
Te er ikke konceptuelt som traditionelle pakkeforvaltere., og i stedet for "Jeg vil installere en pakke"-paradigmet, bruger den tilgangen "Jeg vil bruge en pakke".
Især Tea har ikke en pakkeinstallationskommando som sådan, men bruger i stedet miljøgenerering til at køre pakkeindhold, der ikke overlapper med det nuværende system. Pakker placeres i et separat ~/.tea-bibliotek og er ikke tildelt absolutte stier (de kan flyttes).
To grundlæggende tilstande findes i Tea operation: Hop ind i en kommandoskal med adgang til et miljø med pakker installeret og påkald direkte pakke-relaterede kommandoer. For eksempel, ved at køre "tea +gnu.org/wget", vil pakkehåndteringen downloade wget-værktøjet og alle nødvendige afhængigheder og derefter give shell-adgang i et miljø, hvor det installerede wget-værktøj er tilgængeligt.
Den anden mulighed involverer en direkte lancering: «te +gnu.org/wget -qO- tea.xyz/white-paper | te +charm.sh/glow glød – ", som vil installere værktøjet wget og køre det med det samme i et separat miljø og downloade en fil, som vil blive gengivet med glød. Kompleks kæde er mulig, for eksempel for at downloade white-paper.pdf-filen og behandle den med glow-værktøjet, kan du bruge følgende konstruktion (hvis wget og glow ikke er til stede, vil de blive installeret).
Tilsvarende du kan køre scripts direkte, kodeeksempler og one-liners, der automatisk indlæser de nødvendige værktøjer til jobbet.
For intet eksempel, kør:
tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go
…
Det vil installere Go-sprogværktøjssættet og køre colors.go-scriptet med "–gul" som argument.
For ikke at kalde te-kommandoen hver gang, er det muligt at forbinde den som en universel manager af virtuelle miljøer og en driver af manglende programmer. I dette tilfælde, hvis det kørende program ikke er tilgængeligt, vil det blive installeret, og hvis det tidligere er installeret, vil det starte i dit miljø.
I sin nuværende form pakkerne til te er samlet i to samlinger, pantry.core og pantry.extra, som inkluderer metadata, der beskriver pakkedownloadkilder, build-scripts og afhængigheder.
Samlingen pantry.core inkluderer kernebiblioteker og hjælpeprogrammer, som Tea-udviklere holdes ajour og testet. pantry.extra indeholder pakker, der ikke er godt stabiliserede eller som er foreslået af fællesskabet. Der er en webgrænseflade til at navigere gennem pakkerne.
Processen med at oprette pakker til Tea er meget forenklet og reduceret til at skabe en universel package.yml-fil (eksempel), som ikke kræver, at pakken skal tilpasses til hver ny version. For at opdage nye versioner og downloade dens kode kan pakken linkes til GitHub.
Filen beskriver også afhængigheder og giver build-scripts til understøttede platforme. Installerede afhængigheder er uforanderlige (versionen er fast), hvilket eliminerer gentagne situationer, der ligner hændelsen til venstre pad.
I fremtiden er det planen at skabe decentrale depoter, derue er ikke bundet til noget separat lager og bruger en distribueret blockchain til metadata og en decentral infrastruktur til at gemme pakker. Versionerne vil blive direkte certificeret af vedligeholderne og gennemgået af de interesserede parter. Det er muligt at distribuere cryptocurrency-tokens for at bidrage til vedligeholdelse, support, distribution og verifikation af pakker.
Endelig er det værd at nævne, at pt projektet er i første omgang udviklet på tværs af platforme (macOS og Linux understøttes i øjeblikket, Windows-support er under udvikling.) Projektets kode er skrevet i TypeScript og er udgivet under Apache 2.0-licensen (bryg blev skrevet i Ruby og sendt under en BSD-licens).
Hvis du er interesseret i at kunne lære mere om det, kan du se Teas detaljer og brugermanual på følgende link.