Banyak waktu telah berlalu sejak kita berbicara tentang apa yang baru di negara ular. Mamba masih cepat, mendukung lebih banyak operasi Conda dan telah mengembangkan ekor yang lebih panjang (backend) berkat perubahan libsolv.
Mempercepat ular!Apa itu Mamba?
Mamba adalah pengganti drop-in untuk Conda, manajer paket lintas platform yang mengagumkan. Menurut pendapat kami, Conda memiliki satu kesalahan fatal: itu terlalu lambat ketika banyak paket sudah diinstal atau ketika menginstal beberapa paket pada saat yang sama. Mamba masih menggunakan Conda untuk hampir semua hal kecuali menyelesaikan dependensi. Kami mengganti bagian Conda ini dengan implementasi alternatif yang disebut libsolv - C library, yang sudah menjadi dasar manajer paket pada sistem Linux seperti dnf di Fedora atau zypper di OpenSuse.
Antarmuka baris perintah, bekerja dengan lingkungan, format file paket, proses instalasi, format repodata dan yang lainnya adalah satu-satu seperti di Conda dan dijalankan pada kode Python yang sama dengan Conda. Jadi perbedaannya, dan kebenaran, hanya dalam menyelesaikan dependensi!
Apa yang baru?
Berita baik pertama adalah bahwa suntingan libsolv kami untuk Dukungan Windows (MSVC) telah ditambahkan ke hulu. Ini berarti bahwa sekarang libsolv berfungsi dengan baik pada semua sistem operasi utama (Windows, Linux, dan OS X). Selain itu, Michael Schröder dari OpenSUSE banyak membantu kami dengan mengintegrasikan dukungan Conda ke libsolv itu sendiri!
Versi terbaru dari Mamba dapat digunakan tidak hanya untuk instalasi, tetapi juga untuk memperbarui dan menghapus modul.
Misalnya, sekarang tim
$ mamba update xtensor -c conda-forge
dan
$ mamba remove numpy
bekerja tanpa masalah dan jauh lebih cepat daripada di Conda.
Berkat dukungan Conda di tingkat libsolv, paket sekarang akan cocok dengan algoritma yang persis sama seperti di Python. Anda dapat menggunakan argumen "kompleks" pada baris perintah, misalnya:
$ mamba install "blas=*=openblas"
Terima kasih kepada teman-teman kami di Binder / repo2docker, kami mulai mendukung instalasi dari file yml juga! Saya senang mengumumkan bahwa dia lulus semua tes dari repo2docker!
$ mamba env create -f xstack.yml
Di mana xstack.yml adalah file yml yang sesuai dengan format Conda.
Terakhir, Mamba tidak lagi berstatus alfa. Sekarang ini dapat diunduh dari saluran conda-forge default:
conda install mamba -c conda-forge # or ... <br />mamba update mamba -c conda-forge # of course ;)
Mamba dalam Mini: minimamba!
Sama seperti Conda memiliki miniconda untuk instalasi dasar minimal, sekarang kami memiliki minimamba menggunakan mekanisme yang sama untuk mempersiapkan instalasi Mamba. Ini sangat keren, karena segera Mamba dapat digunakan di CI, di mana ia dapat secara signifikan mempercepat perakitan!
Halaman Unduh
Rencana selanjutnya
Meskipun kami sudah sangat senang dengan Mamba, karena kami menggunakannya dalam kegiatan sehari-hari, masih ada pekerjaan yang harus dilakukan:
- Refactor kode untuk mencapai kompatibilitas langsung dengan kelas resolusi ketergantungan Conda untuk menjalankan tesnya
- Tambahkan informasi tentang proses pengunduhan data repositori
- Tambahkan dukungan untuk pemilihan fitur dan pelacakan
- Izinkan memperbarui semua paket yang diinstal (sekarang Anda dapat memperbarui hanya paket yang dipilih, mis. `Mamba update xtensor numpy`)
Dan beberapa perubahan seperti ini - tidak terlalu rumit, tetapi membutuhkan waktu untuk diimplementasikan. Kami masih berpikir untuk meluncurkan kampanye di KickStarter atau semacamnya untuk memastikan pembiayaan yang stabil.
Jika Anda ingin berkontribusi, Mamba tinggal di sini.
Jika Anda ingin tetap up to date: https://twitter.com/wuoulf