الشاي مدير الحزم المبتكر الجديد

الشاي

يُنشئ الشاي تقنيات جديدة من شأنها تغيير طريقة توزيع الكود

أعلن ماكس هاول، مؤلف نظام إدارة الحزم المنزلي الشهير لنظام macOS، brew ، أنه يعمل على تطوير مدير حزم جديد يسمى Tea، والذي تم وضعه كامتداد لتطوير brew، ويتجاوز مدير الحزم ويقدم بنية تحتية موحدة لإدارة الحزم تعمل مع المستودعات اللامركزية.

لا يشبه برنامج Tea من الناحية المفاهيمية برامج إدارة الحزم التقليدية ، وبدلاً من نموذج "أريد تثبيت حزمة"، فإنه يستخدم نهج "أريد استخدام حزمة".

على وجه التحديد، لا يحتوي برنامج Tea على أمر تثبيت حزم بالمعنى الحرفي؛ بل يستخدم إنشاء بيئة لتشغيل محتويات الحزم التي لا تتداخل مع النظام الحالي. توضع الحزم في مجلد ~/.tea منفصل ولا تُخصص لها مسارات مطلقة (يمكن نقلها).

يوفر برنامج Tea نمطين أساسيين للتشغيل: الانتقال إلى واجهة سطر الأوامر مع إمكانية الوصول إلى بيئة تحتوي على حزم مثبتة، واستدعاء أوامر متعلقة بالحزم مباشرةً. على سبيل المثال، سيؤدي تشغيل الأمر "tea +gnu.org/wget" إلى قيام مدير الحزم بتنزيل أداة wget وجميع التبعيات اللازمة، ثم توفير إمكانية الوصول إلى واجهة سطر الأوامر في بيئة تتوفر فيها أداة wget المثبتة.

الخيار الثاني يتضمن تشغيلًا مباشرًا: ` tea+gnu.org/wget-qO-tea.xyz/white-paper | tea+charm.sh/glow glow-` ، والذي سيقوم بتثبيت أداة wget وتشغيلها فورًا في بيئة منفصلة، ​​لتنزيل ملف سيتم عرضه لاحقًا باستخدام glow. يُمكن اتباع سلسلة أكثر تعقيدًا؛ على سبيل المثال، لتنزيل الملف `white-paper.pdf` ومعالجته باستخدام أداة glow، يُمكنك استخدام الأمر التالي (إذا لم تكن wget و glow مثبتتين بالفعل، فسيتم تثبيتهما).

وبالمثل، يمكنك تشغيل البرامج النصية وأمثلة التعليمات البرمجية والعبارات الذكية مباشرة، مع تحميل الأدوات اللازمة للمهمة تلقائيًا.

على سبيل المثال ، قم بتشغيل:

tea https://gist.githubusercontent.com/i0bj/2b3afbe07a44179250474b5f36e7bd9b/raw/colors.go --yellow
tea: installing go 1.18.3
go: installing deps
go: running colors.go

سيقوم بتثبيت مجموعة أدوات لغة Go وتشغيل البرنامج النصي colours.go مع "–yellow" كوسيطة.

لتجنب استدعاء أمر tea في كل مرة، يمكنك ربطه كمدير بيئة افتراضية شامل ومعالج للبرامج المفقودة. في هذه الحالة، إذا كان البرنامج قيد التشغيل غير متوفر، فسيتم تثبيته، وإذا كان مثبتًا مسبقًا، فسيتم تشغيله في بيئتك.

في شكلها الحالي، يتم تجميع الحزم المتاحة لـ Tea في مجموعتين ، pantry.core و pantry.extra ، والتي تتضمن بيانات وصفية تصف مصادر تنزيل الحزمة، وبرامج البناء، والتبعيات.

تتضمن مجموعة pantry.core المكتبات الأساسية والأدوات المساعدة التي يحرص مطورو Tea على تحديثها واختبارها باستمرار. أما مجموعة pantry.extra فتحتوي على حزم لم تستقر بعد أو مقترحة من قبل المجتمع. وتتوفر واجهة ويب لتصفح هذه الحزم.

يتم تبسيط عملية إنشاء حزم الشاي إلى حد كبير وتقليلها إلى إنشاء ملف package.yml عالمي (مثال) ، والذي لا يتطلب تكييف الحزمة لكل إصدار جديد. لاكتشاف الإصدارات الجديدة وتنزيل الكود الخاص بها ، يمكن ربط الحزمة بـ GitHub.

يصف الملف أيضًا التبعيات ويوفر نصوصًا برمجية للبناء للأنظمة الأساسية المدعومة. التبعيات المثبتة غير قابلة للتغيير (الإصدار ثابت) ، مما يلغي المواقف المتكررة المشابهة لحادثة اللوحة اليسرى.

في المستقبل، توجد خطط لإنشاء مستودعات لامركزية غير مرتبطة بأي وحدة تخزين منفصلة، ​​واستخدام تقنية سلسلة الكتل الموزعة للبيانات الوصفية، وبنية تحتية لامركزية لتخزين الحزم. سيتم اعتماد الإصدارات مباشرةً من قِبل القائمين على الصيانة، ومراجعتها من قِبل الجهات المعنية. وقد يكون من الممكن توزيع رموز العملات المشفرة للمساهمة في صيانة الحزم ودعمها وتوزيعها والتحقق منها.

وأخيرًا، تجدر الإشارة إلى أن المشروع قيد التطوير حاليًا كتطبيق متعدد المنصات (يدعم حاليًا نظامي macOS وLinux، بينما يجري العمل على دعم نظام Windows). كُتب كود المشروع بلغة TypeScript ويُوزع بموجب ترخيص Apache 2.0 (بينما كُتب برنامج brew بلغة Ruby وصدر بموجب ترخيص BSD).

إذا كنت مهتمًا بمعرفة المزيد، يمكنك الاطلاع على التفاصيل ودليل المستخدم الخاص بـ Tea على الرابط التالي.


أضف كمصدر مفضل في جوجل