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