brew creator sviluppa un nuovo gestore di pacchetti di tè

Max Howell, autore del popolare sistema di gestione dei pacchetti macOS brew (Homebrew), sta sviluppando un nuovo gestore di pacchetti, Tea, posizionato come una continuazione dello sviluppo di brew, andando oltre il gestore di pacchetti e offrendo un'infrastruttura di gestione dei pacchetti unificata che funziona con repository decentralizzati. Il progetto è inizialmente sviluppato come multipiattaforma (attualmente sono supportati macOS e Linux, il supporto Windows è in fase di sviluppo). Il codice del progetto è scritto in TypeScript e distribuito con licenza Apache 2.0 (brew è stato scritto in Ruby e distribuito con licenza BSD).

Tea non è concettualmente come i gestori di pacchetti tradizionali e invece del paradigma "voglio installare un pacchetto", utilizza il paradigma "voglio usare un pacchetto". In particolare, Tea non dispone di un comando di installazione del pacchetto in quanto tale, ma utilizza invece la generazione dell'ambiente per eseguire il contenuto del pacchetto che non si sovrappone al sistema corrente. I pacchetti vengono inseriti in una directory ~/.tea separata e non sono mappati su percorsi assoluti (possono essere spostati).

Vengono fornite due modalità di funzionamento di base: passare a una shell dei comandi con accesso a un ambiente con pacchetti installati e richiamare direttamente i comandi relativi ai pacchetti. Ad esempio, durante l'esecuzione di "tea +gnu.org/wget", il gestore di pacchetti scaricherà l'utilità wget e tutte le dipendenze necessarie, quindi fornirà l'accesso alla shell in un ambiente in cui è disponibile l'utilità wget installata. La seconda opzione implica un avvio diretto - "tea +gnu.org/wget wget https://some_webpage", che installerà l'utilità wget e la avvierà immediatamente in un ambiente separato. È possibile un concatenamento complesso, ad esempio, per scaricare il file white-paper.pdf ed elaborarlo con l'utilità glow, è possibile utilizzare la seguente costruzione (se wget e glow non sono presenti, verranno installati): tea +gnu. org/wget wget -qO- https:/ /tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - oppure puoi usare la sintassi più semplice: tea -X wget -qO- tea.xyz/white-paper | tè -X bagliore

Allo stesso modo, puoi eseguire direttamente script, esempi di codice e one-liner, caricando automaticamente gli strumenti necessari per il loro lavoro. Ad esempio, l'esecuzione di "tea https://gist.githubusercontent.com/i0bj/…/raw/colors.go --yellow" installerà il toolkit del linguaggio Go ed eseguirà lo script colors.go con l'argomento --yellow.

Per non chiamare ogni volta il comando tea, è possibile collegarlo come gestore universale di ambienti virtuali e gestore di programmi mancanti. In questo caso, se il programma in esecuzione non è disponibile, verrà installato e, se è stato installato in precedenza, verrà avviato nel suo ambiente. $ deno zsh: comando non trovato: deno $ cd my-project $ deno tea: installazione deno.land^1.22 deno 1.27.0 > ^D

Nella sua forma attuale, i pacchetti disponibili per Tea sono raccolti in due raccolte, pantry.core e pantry.extra, che includono metadati che descrivono le fonti di download dei pacchetti, gli script di compilazione e le dipendenze. La raccolta pantry.core include librerie e utilità di base che vengono mantenute aggiornate e testate dagli sviluppatori di Tea. pantry.extra contiene pacchetti non ben stabilizzati o suggeriti dalla community. Viene fornita un'interfaccia Web per la navigazione tra i pacchetti.

Il processo di creazione dei pacchetti per Tea è notevolmente semplificato e si riduce alla creazione di un file package.yml universale (esempio), che non richiede l'adattamento del pacchetto per ogni nuova versione. Per scoprire nuove versioni e scaricare il loro codice, il pacchetto può collegarsi a GitHub. Il file descrive anche le dipendenze e fornisce script di compilazione per le piattaforme supportate. Le dipendenze installate sono immutabili (la versione è fissa), il che elimina la ripetizione di situazioni simili all'incidente del pad sinistro.

In futuro, si prevede di creare repository decentralizzati che non siano legati ad alcun archivio separato e utilizzare una blockchain distribuita per i metadati e un'infrastruttura decentralizzata per l'archiviazione dei pacchetti. I rilasci saranno certificati direttamente dai manutentori e revisionati dalle parti interessate. È possibile distribuire token di criptovaluta per il contributo alla manutenzione, al supporto, alla distribuzione e alla verifica dei pacchetti.

brew creator sviluppa un nuovo gestore di pacchetti di tè


Fonte: opennet.ru

Aggiungi un commento