لقد مر الكثير من الوقت منذ أن تحدثنا عن الجديد في بلد أفعواني. لا يزال Mamba سريعًا ، ويدعم المزيد من عمليات Conda ، وقد نما ذيل طويل (خلفية) بفضل التغييرات في libsolv.
تسريع الثعبان!ما هو مامبا؟
Mamba بديل بديل لـ Conda ، مدير الحزمة عبر منصة رهيبة. في رأينا ، كوندا لديه عيب قاتل واحد: إنه بطيء للغاية عندما يتم تثبيت العديد من الحزم بالفعل أو عند تثبيت حزم متعددة في نفس الوقت. لا يزال مامبا يستخدم كوندا لكل شيء تقريبًا باستثناء حل التبعيات. لقد استبدلنا هذا الجزء من كوندا بتطبيق بديل يسمى مكتبة libsolv - C ، والذي يعد بالفعل أساسًا لمديري الحزم على أنظمة Linux مثل dnf في Fedora أو zypper في OpenSuse.
واجهة سطر الأوامر ، التي تعمل مع البيئة ، وتنسيق ملف الحزمة ، وعملية التثبيت ، وتنسيق repodata وكل شيء آخر يشبه في كوندا وتعمل على نفس رمز بيثون مثل كوندا. إذن الاختلاف والحقيقة هو فقط في حل التبعيات!
ما الجديد؟
الأخبار الجيدة الأولى هي أن تعديلاتنا على libsolv لدعم Windows (MSVC) قد تمت إضافتها إلى البيانات الأولية. هذا يعني أن libsolv يعمل الآن بشكل جيد على جميع أنظمة التشغيل الرئيسية (Windows و Linux و OS X). بالإضافة إلى ذلك ، ساعدنا Michael Schröder من OpenSUSE كثيرًا من خلال دمج دعم Conda في libsolv نفسها!
لا يمكن استخدام أحدث إصدار من Mamba للتثبيت فحسب ، ولكن أيضًا لتحديث الوحدات النمطية وإزالتها.
على سبيل المثال ، الآن الفرق
$ mamba update xtensor -c conda-forge
و
$ mamba remove numpy
العمل دون مشاكل وأسرع بكثير مما كانت عليه في كوندا.
بفضل دعم كوندا على مستوى libsolv ، ستتطابق الحزم الآن وفقًا لنفس الخوارزمية تمامًا كما في بيثون. يمكنك استخدام الوسائط "المعقدة" في سطر الأوامر ، على سبيل المثال:
$ mamba install "blas=*=openblas"
بفضل أصدقائنا في Binder / repo2docker ، بدأنا في دعم التثبيت من ملفات yml أيضًا! يسعدني أن أعلن أنها تجتاز جميع الاختبارات من repo2docker!
$ mamba env create -f xstack.yml
حيث xstack.yml هو ملف yml مطابق لتنسيق Conda.
أخيرًا وليس آخرًا ، لم تعد Mamba في حالة ألفا. الآن يمكن تنزيله من قناة conda-forge الافتراضية:
conda install mamba -c conda-forge # or ... <br />mamba update mamba -c conda-forge # of course ;)
مامبا في ميني: مينيمامبا!
تمامًا مثل كوندا لديها miniconda للحصول على الحد الأدنى من التثبيت الأساسي ، والآن لدينا minimamba باستخدام نفس الآلية للتحضير لتثبيت Mamba. هذا رائع جدًا ، حيث يمكن استخدام Mamba قريبًا في CI ، حيث يمكنه تسريع التجميع بشكل كبير!
تحميل الصفحة
خطط أخرى
على الرغم من أننا سعداء بالفعل بممبا ، حيث أننا نستخدمها في الأنشطة اليومية ، لا يزال هناك عمل يتعين القيام به:
- Refactor رمز لتحقيق التوافق المباشر مع فئة دقة التبعية كوندا لتشغيل اختباراتها
- أضف معلومات حول عملية تنزيل بيانات المستودع
- إضافة دعم لاختيار الميزة والتتبع
- السماح بتحديث جميع الحزم المثبتة (يمكنك الآن تحديث الحزم المحددة فقط ، أي تحديث mamba xtensor numpy`)
وبعض التغييرات مثل هذه - ليست معقدة للغاية ، ولكن تتطلب وقتا لتنفيذها. ما زلنا نفكر في إطلاق حملة على KickStarter أو شيء من هذا القبيل لضمان تمويل الاستقرار.
إذا كنت ترغب في المساهمة ، تعيش مامبا هنا.
إذا كنت تريد البقاء على اطلاع: https://twitter.com/wuoulf