La kreinto de brew disvolvas novan pakaĵmanaĝeron teon

Max Howell, la aŭtoro de la populara macOS-paka administradsistemo brew (Homebrew), disvolvas novan pakaĵmanaĝeron nomitan Teo, poziciigitan kiel daŭrigon de la evoluo de brew, irante preter la pakaĵmanaĝero kaj ofertanta unuigitan pakaĵadministrad-infrastrukturon kiu funkcias. kun malcentralizitaj deponejoj. La projekto estas komence evoluigita kiel plurplatforma projekto (macOS kaj Linukso estas nuntempe subtenataj, Vindozo-subteno estas en evoluo). La projektkodo estas skribita en TypeScript kaj distribuita sub la Apache 2.0 permesilo (biero estis skribita en Ruby kaj distribuita sub la BSD-licenco).

Teo estas koncipe ne kiel tradiciaj pakaĵadministrantoj kaj anstataŭ la paradigmo "Mi volas instali pakaĵon", ĝi uzas la paradigmon "Mi volas uzi pakaĵon". Aparte, Tea ne havas komandon por instali pakaĵon kiel tia, sed anstataŭe uzas mediogeneradon por ekzekuti la pakaĵenhavojn kiuj ne interkovras kun la nuna sistemo. Pakoj estas metitaj en aparta ~/.tea dosierujo kaj ne estas ligitaj al absolutaj vojoj (ili povas esti movitaj).

Du ĉefaj manieroj de operacio estas provizitaj: iri al komanda ŝelo kun aliro al la medio kun instalitaj pakaĵoj, kaj rekte voki pakaĵ-rilatajn komandojn. Ekzemple, dum ekzekuto de "tea +gnu.org/wget", la pakaĵmanaĝero elŝutos la wget-ilaĵon kaj ĉiujn necesajn dependencojn, kaj poste disponigos ŝelan aliron en la medio en kiu la instalita wget-ilaĵo estas disponebla. La dua opcio implikas rektan lanĉon - "tea +gnu.org/wget wget https://some_webpage", en kiu la ilo wget estos instalita kaj tuj lanĉita en aparta medio. Eblas formi kompleksajn ĉenojn, ekzemple, por elŝuti la blankan paperon.pdf-dosieron kaj prilabori ĝin per la brila utileco, vi povas uzi la jenan konstruon (se wget kaj glow mankas, ili estos instalitaj): teo + gnu.org/wget wget -qO- https://tea.xyz/white-paper.pdf | teo +charm.sh/glow glow - aŭ vi povas uzi pli simplan sintakson: tea -X wget -qO- tea.xyz/blank-paper | teo -X brilo -

Simile, vi povas rekte ruli skriptojn, kodekzemplojn kaj unu-liniojn, aŭtomate ŝarĝante la ilojn necesajn por ilia funkciado. Ekzemple, ruli "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow" instalos la ilaron Go kaj ekzekutos la skripton colors.go kun la argumento "-flava".

Por ne ĉiufoje voki la tean komandon, eblas konekti ĝin kiel universala administranto de virtualaj medioj kaj pritraktilo por mankantaj programoj. En ĉi tiu kazo, se la funkcianta programo ne estas disponebla, ĝi estos instalita, kaj se ĝi estis instalita antaŭe, ĝi estos lanĉita en sia medio. $ deno zsh: komando ne trovita: deno $ cd mia-projekto $ deno tea: instalante deno.land^1.22 deno 1.27.0 > ^D

En ĝia nuna formo, la disponeblaj pakaĵoj por Teo estas kolektitaj en du kolektoj - pantry.core kaj pantry.extra, kiuj inkluzivas metadatenojn priskribantajn pakaĵajn elŝutajn fontojn, konstruskriptojn kaj dependencojn. La kolekto pantry.core inkluzivas la ĉefajn bibliotekojn kaj ilojn, ĝisdatigitajn kaj provitajn de Tea-programistoj. Pantry.extra enhavas pakaĵojn kiuj ne estas sufiĉe stabiligitaj aŭ kiuj estas proponitaj de membroj de la komunumo. Reta interfaco estas provizita por navigi tra la pakaĵoj.

La procezo de kreado de pakaĵoj por Teo estas tre simpligita kaj konsistas en krei unu universalan package.yml-dosieron (ekzemplo), kiu ne postulas adapti la pakaĵon por ĉiu nova versio. Pako povas ligi al GitHub por malkovri novajn versiojn kaj elŝuti ilian kodon. La dosiero ankaŭ priskribas dependecojn kaj provizas konstruajn skriptojn por subtenataj platformoj. La instalitaj dependecoj estas neŝanĝeblaj (la versio estas fiksita), kio forigas la ripeton de situacioj similaj al la incidento de maldekstra-kuseneto.

En la estonteco, estas planite krei malcentralizitajn deponejojn kiuj ne estas ligitaj al iu aparta stokado kaj uzi distribuitan blokĉenon por metadatenoj, kaj malcentralizita infrastrukturo por stoki pakaĵojn. Eldonoj estos atestitaj rekte de prizorgantoj kaj reviziitaj de koncernatoj. Eblas distribui kriptajn monerojn por kontribuoj al la bontenado, subteno, distribuo kaj kontrolo de pakaĵoj.

La kreinto de brew disvolvas novan pakaĵmanaĝeron teon


fonto: opennet.ru

Aldoni komenton