Panimon luoja kehittää uutta pakkausmanagerin teetä

Max Howell, suositun macOS-paketinhallintajärjestelmäbrew'n (Homebrew) kirjoittaja, kehittää uutta Tea-nimistä paketinhallintaa, joka on jatkoa panimon kehitykselle, ylittää paketinhallinnan ja tarjoaa toimivan yhtenäisen paketinhallintainfrastruktuurin. hajautettujen tietovarastojen kanssa. Projektia kehitetään alun perin monialustaisena projektina (macOS ja Linux ovat tällä hetkellä tuettuja, Windows-tuki on kehitteillä). Projektikoodi on kirjoitettu TypeScriptillä ja jaettu Apache 2.0 -lisenssillä (brew kirjoitettiin Rubylla ja jaettiin BSD-lisenssillä).

Tee on käsitteellisesti erilainen kuin perinteiset paketinhallintaohjelmat, ja "Haluan asentaa paketin" -paradigman sijaan se käyttää "Haluan käyttää pakettia" -paradigmaa. Erityisesti Tealla ei ole komentoa paketin asentamiseen sellaisenaan, vaan se käyttää ympäristön generointia suorittaakseen paketin sisällön, joka ei ole päällekkäinen nykyisen järjestelmän kanssa. Paketit sijoitetaan erilliseen ~/.tea-hakemistoon, eivätkä ne ole sidottu absoluuttisiin polkuihin (ne voidaan siirtää).

Tarjolla on kaksi päätoimintatapaa: siirtyminen komentokulkoon, joka pääsee käsiksi ympäristöön asennettujen pakettien kanssa, ja kutsua suoraan pakettiin liittyviä komentoja. Esimerkiksi suoritettaessa "tea +gnu.org/wget", paketinhallinta lataa wget-apuohjelman ja kaikki tarvittavat riippuvuudet ja tarjoaa sitten käyttöliittymän ympäristössä, jossa asennettu wget-apuohjelma on käytettävissä. Toinen vaihtoehto sisältää suoran käynnistämisen - "tea +gnu.org/wget wget https://some_webpage", jossa wget-apuohjelma asennetaan ja käynnistetään välittömästi erillisessä ympäristössä. On mahdollista muodostaa monimutkaisia ​​ketjuja, esimerkiksi ladata white-paper.pdf-tiedosto ja käsitellä sitä glow-apuohjelmalla, voit käyttää seuraavaa rakennetta (jos wget ja glow puuttuvat, ne asennetaan): tea + gnu.org/wget wget -qO- https:/ /tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - tai voit käyttää yksinkertaisempaa syntaksia: tea -X wget -qO- tea.xyz/white-paper | tee -X hehku -

Samalla tavalla voit suorittaa suoraan komentosarjoja, koodiesimerkkejä ja yksirivisisiä ohjelmia lataamalla automaattisesti niiden toimintaan tarvittavat työkalut. Esimerkiksi "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go -yellow" asentaa Go-työkalusarjan ja suorittaa värit.go-komentosarjan argumentilla "-yellow".

Jotta tea-komentoa ei kutsuttaisi joka kerta, se on mahdollista yhdistää virtuaaliympäristöjen universaaliksi johtajaksi ja puuttuvien ohjelmien käsittelijäksi. Tässä tapauksessa, jos käynnissä olevaa ohjelmaa ei ole saatavilla, se asennetaan, ja jos se on asennettu aiemmin, se käynnistetään ympäristössään. $ deno zsh: komentoa ei löydy: deno $ cd projektini $ deno tea: asennetaan deno.land^1.22 deno 1.27.0 > ^D

Nykyisessä muodossaan Tealle saatavilla olevat paketit on koottu kahteen kokoelmaan - pantry.core ja pantry.extra, jotka sisältävät pakettien latauslähteitä, koontiskriptejä ja riippuvuuksia kuvaavia metatietoja. Pantry.core-kokoelma sisältää tärkeimmät kirjastot ja apuohjelmat, joita Tea-kehittäjät pitävät ajan tasalla ja testaavat. Pantry.extra sisältää paketteja, joita ei ole vakautettu tarpeeksi tai joita yhteisön jäsenet ovat ehdottaneet. Pakettien välillä on web-käyttöliittymä.

Teen pakettien luontiprosessi on huomattavasti yksinkertaistettu, ja siinä luodaan yksi universaali package.yml-tiedosto (esimerkki), joka ei vaadi paketin mukauttamista jokaista uutta versiota varten. Paketti voi linkittää GitHubiin uusien versioiden löytämiseksi ja niiden koodin lataamiseksi. Tiedosto kuvaa myös riippuvuuksia ja tarjoaa koontiskriptejä tuetuille alustoille. Asennetut riippuvuudet ovat muuttumattomia (versio on kiinteä), mikä eliminoi vasen-tyynyn tapauksen kaltaisten tilanteiden toistumisen.

Jatkossa on tarkoitus luoda hajautettuja arkistot, joita ei ole sidottu mihinkään erilliseen tallennustilaan ja jotka käyttävät hajautettua lohkoketjua metatiedoille sekä hajautettua infrastruktuuria pakettien tallentamiseen. Ylläpitäjät sertifioivat julkaisut suoraan ja sidosryhmät tarkastavat ne. Kryptovaluuttatokeneita on mahdollista jakaa pakettien ylläpitoon, tukeen, jakeluun ja todentamiseen.

Panimon luoja kehittää uutta pakkausmanagerin teetä


Lähde: opennet.ru

Lisää kommentti