Pencipta minuman sedang mengembangkan teh manajer paket baru

Max Howell, penulis sistem manajemen paket macOS brew (Homebrew) yang populer, sedang mengembangkan manajer paket baru bernama Tea, yang diposisikan sebagai kelanjutan dari pengembangan brew, melampaui manajer paket dan menawarkan infrastruktur manajemen paket terpadu yang berfungsi dengan repositori terdesentralisasi. Proyek ini awalnya dikembangkan sebagai proyek multi-platform (saat ini didukung macOS dan Linux, dukungan Windows sedang dalam pengembangan). Kode proyek ditulis dalam TypeScript dan didistribusikan di bawah lisensi Apache 2.0 (brew ditulis dalam Ruby dan didistribusikan di bawah lisensi BSD).

Teh secara konseptual tidak seperti pengelola paket tradisional dan alih-alih menggunakan paradigma "Saya ingin menginstal sebuah paket", teh menggunakan paradigma "Saya ingin menggunakan sebuah paket". Secara khusus, Tea tidak memiliki perintah untuk menginstal paket seperti itu, melainkan menggunakan pembuatan lingkungan untuk mengeksekusi konten paket yang tidak tumpang tindih dengan sistem saat ini. Paket ditempatkan di direktori ~/.tea terpisah dan tidak terikat pada jalur absolut (dapat dipindahkan).

Dua mode operasi utama disediakan: masuk ke shell perintah dengan akses ke lingkungan dengan paket yang diinstal, dan langsung memanggil perintah terkait paket. Misalnya, saat menjalankan "tea +gnu.org/wget", manajer paket akan mengunduh utilitas wget dan semua dependensi yang diperlukan, lalu memberikan akses shell di lingkungan tempat utilitas wget yang diinstal tersedia. Opsi kedua melibatkan peluncuran langsung - β€œtea +gnu.org/wget wget https://some_webpage”, di mana utilitas wget akan diinstal dan segera diluncurkan di lingkungan terpisah. Dimungkinkan untuk membuat rantai yang kompleks, misalnya, untuk mengunduh file white-paper.pdf dan memprosesnya dengan utilitas glow, Anda dapat menggunakan konstruksi berikut (jika wget dan glow tidak ada, maka akan diinstal): tea + gnu.org/wget wget -qO- https://tea.xyz/white-paper.pdf | tea +charm.sh/glow glow - atau Anda dapat menggunakan sintaksis yang lebih sederhana: tea -X wget -qO- tea.xyz/white-paper | teh -X bersinar β€”

Dengan cara serupa, Anda dapat langsung menjalankan skrip, contoh kode, dan satu baris, secara otomatis memuat alat yang diperlukan untuk pengoperasiannya. Misalnya, menjalankan "tea https://Gist.githubusercontent.com/i0bj/…/raw/colors.go -Yellow" akan menginstal toolkit Go dan menjalankan skrip Colors.go dengan argumen "-Yellow".

Agar tidak memanggil perintah teh setiap saat, dimungkinkan untuk menghubungkannya sebagai pengelola universal lingkungan virtual dan penangan untuk program yang hilang. Dalam hal ini, jika program yang berjalan tidak tersedia, maka akan diinstal, dan jika telah diinstal sebelumnya, maka akan diluncurkan di lingkungannya. $ deno zsh: perintah tidak ditemukan: deno $ cd proyek saya $ deno tea: menginstal deno.land^1.22 deno 1.27.0 > ^D

Dalam bentuknya saat ini, paket yang tersedia untuk Tea dikumpulkan dalam dua koleksi - pantry.core dan pantry.extra, yang mencakup metadata yang menjelaskan sumber pengunduhan paket, skrip build, dan dependensi. Koleksi pantry.core mencakup perpustakaan dan utilitas utama, dipelihara hingga saat ini dan diuji oleh pengembang Teh. Pantry.extra berisi paket yang kurang stabil atau disarankan oleh anggota komunitas. Antarmuka web disediakan untuk menavigasi paket.

Proses pembuatan paket untuk Tea sangat disederhanakan dan dilakukan dengan membuat satu file universal package.yml (contoh), yang tidak memerlukan adaptasi paket untuk setiap versi baru. Sebuah paket dapat ditautkan ke GitHub untuk menemukan versi baru dan mengunduh kodenya. File ini juga menjelaskan dependensi dan menyediakan skrip build untuk platform yang didukung. Ketergantungan yang diinstal tidak dapat diubah (versinya sudah diperbaiki), sehingga menghilangkan pengulangan situasi yang mirip dengan kejadian di panel kiri.

Di masa depan, direncanakan untuk membuat repositori terdesentralisasi yang tidak terikat pada penyimpanan terpisah dan menggunakan blockchain terdistribusi untuk metadata, dan infrastruktur terdesentralisasi untuk menyimpan paket. Rilisan akan disertifikasi langsung oleh pengelola dan ditinjau oleh pemangku kepentingan. Dimungkinkan untuk mendistribusikan token mata uang kripto untuk kontribusi terhadap pemeliharaan, dukungan, distribusi, dan verifikasi paket.

Pencipta minuman sedang mengembangkan teh manajer paket baru


Sumber: opennet.ru

Tambah komentar