تمت ترجمة المحتوى الموجود على هذا الموقع باستخدام الذكاء الاصطناعي (AI) أو تقنية الترجمة الآلية، وقد تحتوي على أخطاء.

Skip to content
Systems

تحليل واسع النطاق للإصدارات الدلالية في NPM

Author

دونالد بينكني (نورث إيسترن)، فيديريكو كاسانو (نورث إيسترن)، أرجون غوها (نورث إيسترن وروبوكس)، وجوناثان بيل (نورث إيسترن)

Venue

مستودعات برمجيات التعدين (MSR) 2023

Abstract

يحتوي مستودع حزم NPM على أكثر من مليوني حزمة ويقدم عشرات المليارات من التنزيلات أسبوعيًا. تستخدم جميع تطبيقات JavaScript تقريبًا مدير حزم NPM لتثبيت الحزم من مستودع NPM. يعتمد NPM على نظام "الإصدارات الدلالية" (semver) للحفاظ على نظام بيئي سليم، حيث يتم توصيل إصلاحات الأخطاء بشكل موثوق إلى الحزم النهائية بأسرع وقت ممكن، بينما تتطلب التغييرات الجذرية تدخلًا يدويًا من قبل مسؤولي صيانة الحزم النهائية. من أجل فهم كيفية استخدام المطورين لـ semver، قمنا بإنشاء مجموعة بيانات تحتوي على كل إصدار من كل حزمة على NPM ونحلل تدفق التحديثات عبر النظام البيئي. قمنا بإنشاء أداة حل التبعيات عبر الزمن لـ NPM، والتي تسمح لنا بتحديد الإصدارات التي كان من الممكن حلها في أوقات مختلفة لكل تبعية بدقة. نقسم تحليلنا للسماح بتحليل مباشر للتحديثات ذات الصلة بالأمان (تلك التي تقدم أو تصحح الثغرات الأمنية) مقارنة ببقية النظام البيئي. وجدنا أنه عندما يستخدم المطورون semver بشكل صحيح، يمكن أن تتدفق التحديثات الحرجة مثل تصحيحات الأمان بسرعة كبيرة إلى التبعيات النهائية في معظم الحالات (90.09٪)، ولكن هذا لا يحدث دائمًا، بسبب الاستخدام غير الكامل من قبل المطورين لكل من قيود إصدارات semver وزيادات أرقام إصدارات semver. نتائجنا لها آثار على المطورين والباحثين على حد سواء. نجعل بنيتنا التحتية ومجموعة البيانات متاحة للجمهور بموجب ترخيص مفتوح المصدر.