teh sedang mencipta teknologi baharu yang akan mengubah cara kod diedarkan
Max Howell, pengarang sistem pengurusan pakej yang popular bancuh (Homebrew) macOS, mendedahkannya sedang mengusahakan pembangunan pengurus pakej baharu, yang dipanggil Teh, yang diletakkan sebagai kesinambungan pembangunan minuman, melangkaui pengurus pakej dan menawarkan infrastruktur pengurusan pakej bersatu yang berfungsi dengan repositori terdesentralisasi.
Teh tidak secara konseptual seperti pengurus pakej tradisional., dan bukannya paradigma "Saya mahu memasang pakej", ia menggunakan pendekatan "Saya mahu menggunakan pakej".
Secara khusus Teh tidak mempunyai arahan pemasangan pakej demikian, tetapi sebaliknya menggunakan penjanaan persekitaran untuk menjalankan kandungan pakej yang tidak bertindih dengan sistem semasa. Pakej diletakkan dalam direktori ~/.tea yang berasingan dan tidak diberikan kepada laluan mutlak (ia boleh dialihkan).
Dua mod asas disediakan dalam Teh operasi: Lompat ke shell arahan dengan akses kepada persekitaran dengan pakej dipasang dan terus menggunakan arahan berkaitan pakej. Contohnya, dengan menjalankan "tea +gnu.org/wget", pengurus pakej akan memuat turun utiliti wget dan semua kebergantungan yang diperlukan, dan kemudian menyediakan akses shell dalam persekitaran di mana utiliti wget yang dipasang tersedia.
Pilihan kedua melibatkan pelancaran langsung: «teh +gnu.org/wget -qO- tea.xyz/white-paper | teh +charm.sh/glow glow – ", yang akan memasang utiliti wget dan menjalankannya serta-merta dalam persekitaran yang berasingan, memuat turun fail yang akan dipaparkan dengan glow. Rantaian kompleks adalah mungkin, sebagai contoh, untuk memuat turun fail white-paper.pdf dan memprosesnya dengan utiliti cahaya, anda boleh menggunakan binaan berikut (jika wget dan glow tidak hadir, ia akan dipasang).
Begitu juga, anda boleh terus menjalankan skrip, sampel kod dan satu pelapis, memuatkan alatan yang diperlukan secara automatik untuk kerja itu.
Tanpa contoh, jalankan:
tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go
…
Ia akan memasang kit alat bahasa Go dan menjalankan skrip colors.go dengan “–kuning” sebagai hujah.
Agar tidak memanggil arahan teh setiap kali, adalah mungkin untuk menyambungkannya sebagai pengurus sejagat persekitaran maya dan pemacu program yang hilang. Dalam kes ini, jika program yang sedang berjalan tidak tersedia, ia akan dipasang dan, jika dipasang sebelum ini, ia akan bermula dalam persekitaran anda.
Dalam bentuknya sekarang, pakej yang tersedia untuk Teh dikumpulkan dalam dua koleksi, pantri.teras dan pantri.tambahan, yang termasuk metadata yang menerangkan sumber muat turun pakej, skrip binaan dan kebergantungan.
Koleksi pantry.core termasuk perpustakaan teras dan utiliti yang pembangun Teh sentiasa dikemas kini dan diuji. pantry.extra mengandungi pakej yang tidak stabil atau yang dicadangkan oleh masyarakat. Antara muka web disediakan untuk menavigasi pakej.
Proses mencipta pakej untuk Teh sangat dipermudahkan dan dikurangkan kepada mencipta fail package.yml universal (contoh), yang tidak memerlukan pakej disesuaikan untuk setiap versi baharu. Untuk menemui versi baharu dan memuat turun kodnya, pakej boleh dipautkan ke GitHub.
Fail ini juga menerangkan kebergantungan dan menyediakan skrip binaan untuk platform yang disokong. Kebergantungan yang dipasang tidak boleh diubah (versi ditetapkan), yang menghapuskan situasi berulang yang serupa dengan kejadian pad kiri.
Pada masa hadapan, ia dirancang untuk mewujudkan repositori terdesentralisasi yangue tidak terikat dengan mana-mana storan berasingan dan menggunakan rantaian blok yang diedarkan untuk metadata dan infrastruktur terdesentralisasi untuk menyimpan pakej. Versi akan diperakui terus oleh penyelenggara dan disemak oleh pihak yang berminat. Adalah mungkin untuk mengedarkan token mata wang kripto untuk menyumbang kepada penyelenggaraan, sokongan, pengedaran dan pengesahan pakej.
Akhirnya, ia patut disebut pada masa ini projek ini pada mulanya dibangunkan sebagai platform silang (macOS dan Linux kini disokong, sokongan Windows sedang dibangunkan.) Kod projek ditulis dalam TypeScript dan dikeluarkan di bawah lesen Apache 2.0 (brew ditulis dalam Ruby dan dihantar di bawah lesen BSD).
Jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh merujuk butiran Tea dan manual pengguna di pautan berikut.