مجلة المعلوماتية مجلة المعلوماتية
المعرفة • البحث • التقنيةأعداد متاحة للقراءة الإلكترونية

كيف تستخدم بيانات ملايين المشروعات المفتوحة المصدر من Libraries.io؟

العددالعدد 63
تاريخ النشر
عدد القراءات1
اقتباس

الملخص:

يعرض المقال مجموعة بيانات Libraries.io وفكرتها في فهرسة المشروعات المفتوحة المصدر وروابط الاعتماد بينها، لتطوير الاكتشاف والتوصية وفهم المنظومة. ويشرح جمع البيانات من مديري الحزم ومستودعات المصدر، والتمييز بين المشروع والمستودع والإصدار، وتتبع التبعيات المباشرة والمتعدية. ويتناول استخدام هذه الروابط لتحديد المكونات واسعة الاستخدام أو الحاسمة التي تحتاج اهتمامًا أكبر. كما يعرض البحث العابر للمنصات وواجهات البرمجة وأدوات متابعة الاعتماديات والتنبيه إلى التقادم ومشكلات الصيانة والتراخيص. ويربط إتاحة البيانات بأولوية دعم البنية الرقمية المشتركة وتوجيه المساهمات إلى مشروعات مهمة ضعيفة الموارد. وتبقى أعداد المشروعات ومديري الحزم وأسماء الخدمات مرتبطة بتاريخ إصدار المجموعة، بينما يقدم المقال أفكارًا لإعادة استخدامها في التحليل وبناء الأدوات وتقوية المجتمعات.

الكلمات المفتاحية: Libraries.io، بيانات البرمجيات، الاعتماديات، اكتشاف المشروعات، استدامة المصدر المفتوح

مقدمة:

ماذا لو طبقنا على عالم البرمجيات المفتوحة المصدر التقنيات التي استخدمتها غوغل لفهرسة الإنترنت في 1998؟ هذه بالضبط فكرة أندرو نيسبيت في 2014، التي قادت إلى إنشاء Libraries.io، المشروع المفتوح المصدر لفهرسة المشروعات المفتوحة الأخرى. وأطلق هذا الشهر بيانات وصفية لأكثر من 25 مليون مشروع.

يمكن تنزيلها الآن من Zenodo، لكن ماذا نفعل بها؟ لفهم ما تحتويه المجموعة، سألقي نظرة سريعة على طريقة جمعها.

كيف تجمع البيانات؟

يبدأ كل شيء في Libraries.io من مديري الحزم. نفهرس البيانات الوصفية للمشروعات من 33 مدير حزم، ونكمل الثغرات من مستودعات المصدر حيث أمكن. ونحلل ملفات بيان المشروع، مثل gemfile أو package.json أو ما شابه، التي تدرج شفرة من مشروعات أخرى، ونخزن الروابط بينها.

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

تبعيات المستودعات، وعددها أكثر من 100 مليون، هي جوهر المجموعة. فهي تحدد الروابط بين المستودعات والمشروعات التي تبنى عليها. ومن خلالها نكشف بسهولة أكثر المشروعات استخدامًا في المصدر المفتوح، ويمكن الذهاب أبعد.

تحدد التبعيات روابط المشروعات، ولكل مشروع تبعياته؛ وتعرف بالتبعيات المتعدية أو العميقة. ويمكننا اجتياز البنى الشجرية الناتجة لاكتشاف أكثر المشروعات قيمة في المصدر المفتوح.

وكان هذان الاستخدامان حلقة الوصل بين أندرو وبيني: فقد بنى Libraries.io لحل مشكلة الاكتشاف والتوصية، بينما كنت أبحث عن تحديد المشروعات المفتوحة الحاسمة بعد مشكلة Heartbleed في OpenSSL.

وبالطبع لا توجد برمجية ثابتة لا تتغير. تحدد النسخ إصدارات المشروع التي تقابلها التبعيات، ولكل نسخة شجرتها. وقد يحدد المستودع تبعية على نسخة واحدة مثبتة، أو على نطاق إصدارات، مثل >1.1.5. وإذا كان مدير الحزم لا يدعم مفهوم النسخة، تستخدم الوسوم لتتبع الإصدارات، وتسحب الإصدارات الموسومة من المصدر.

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

هذا ما نملكه للعمل. وماذا نفعل به؟ يقدم Libraries.io أمثلة.

البحث

ليس مفاجئًا أن ينتج نقل نهج غوغل إلى البرمجيات المفتوحة محرك بحث ممتازًا.

Libraries.io أساسًا محرك بحث عابر للمنصات، يستخدم مقاييس الشعبية والقيمة لتقديم المكونات الأوسع استخدامًا. ويدعم أيضًا البحث على مواقع أخرى، مثل مدير الحزم Bower ومحرك DuckDuckGo.

الهدف بناء منظومة مفتوحة المصدر أقوى. ونحقق ذلك أسرع بأن نصبح مرفقًا لخدمات موجهة إلى المطورين. ويمكن استخدام إصدار البيانات لرسم الخريطة، وواجهة API لتحديثها. ويهتم الفريق خصوصًا بمساندة مديري الحزم الآخرين الذين يواجهون صعوبات في البحث.

أدوات المطورين

يتسارع إنتاج البرمجيات وتعقيدها، ويعتمد المطورون على أدوات لأتمتة عمليات كثيرة كانت ستستهلك وقت حل المشكلات الجديدة والممتعة.

ويساعد Libraries.io المطورين على مجاراة التبعيات المتغيرة باستمرار في أساس تطبيقاتهم، وينبه القائمين على الصيانة إلى مشكلات محتملة، كبرمجيات قديمة أو متقادمة أو غير مصانة، ومشروعات بتراخيص غير متوافقة. وتدمج أداتنا الناشئة للتكامل المستمر DependencyCI.com هذه الفحوص في التطوير، وتدعم تطوير Libraries.io في الوقت نفسه.

الأولويات والمساهمة

يعمل Libraries.io بالفعل مع منظمات تقلقها المشكلات التي أبرزها تقرير ناديا إقبال «الطرق والجسور» لمؤسسة فورد، وهي إحدى مؤسستين تدعمان الفريق. وقد كشف التقرير ضعف دعم بعض المشروعات المفتوحة الأساسية التي نعتمد عليها جميعًا، في العمل والمنزل وما بينهما. والعالم ينتبه إلى المشكلة، وLibraries.io مورد محوري لمعالجتها.

خلال العامين الماضيين، كنا نجرب البيانات بأنفسنا. وبنينا صفحات تبرز مشروعات مهمة لا تلقى اهتمامًا كافيًا ولا تملك عددًا كافيًا من المساهمين. وتسليط الضوء عليها، والتوصية بها لمن يريد أثرًا لوقته أو منفعة مباشرة من مساهمته، أحد مناهج Libraries.io لتقوية المنظومة ورفع جودة البرمجيات جميعًا.

إذا أردت استخدام بيانات Libraries.io، فنزلها الآن من Zenodo. وللمزيد، راجع التوثيق المشار إليه في إحالات الأصل.

المراجع

  • https://libraries.io/
  • https://zenodo.org/record/808273
  • https://libraries.io/data#projects
  • https://libraries.io/data#repositories
  • https://libraries.io/data#repository_dependencies
  • https://libraries.io/data#dependencies
  • https://libraries.io/data#
  • https://libraries.io/data#versions
  • https://libraries.io/data#tags
  • https://libraries.io/data#projects_with_repository_fields
  • https://libraries.io/api
  • https://dependencyci.com
  • https://www.fordfoundation.org/library/reports-and-studies/roads-and-bridges-the-unseen-labor-behind-our-digital-infrastructure/
  • https://libraries.io/data

اقتبس هذا المقال

بنجامين نيكولز (2018). «كيف تستخدم بيانات ملايين المشروعات المفتوحة المصدر من Libraries.io؟». مجلة المعلوماتية، العدد 63. https://informaticsjournal.net/?p=50392

مشاركة:

مقالات ذات صلة