या साइटवरील सामग्री कृत्रिम बुद्धिमत्ता (AI) किंवा मशीन भाषांतर तंत्रज्ञानाचा वापर करून भाषांतरित केली आहे आणि त्यात त्रुटी असू शकतात.

Skip to content
Systems

NPM मधील सेमॅंटिक वर्जनिंगचे मोठ्या प्रमाणावर विश्लेषण

Author

डोनाल्ड पिंकनी (नॉर्थईस्टर्न), फेडेरिको कॅसानो (नॉर्थईस्टर्न), अर्जुन गुहा (नॉर्थईस्टर्न आणि रॉब्लॉक्स), आणि जोनाथन बेल (नॉर्थईस्टर्न)

Venue

मायनिंग सॉफ्टवेअर रिपॉझिटरीज (MSR) २०२३

Abstract

NPM पॅकेज रिपॉझिटरीमध्ये दोन दशलक्षाहून अधिक पॅकेजेस आहेत आणि ती दर आठवड्याला दहा अब्जाहून अधिक डाउनलोड पुरवते. जवळजवळ प्रत्येक जावास्क्रिप्ट अनुप्रयोग NPM रिपॉझिटरीमधून पॅकेजेस स्थापित करण्यासाठी NPM पॅकेज मॅनेजरचा वापर करतो. NPM निरोगी इकोसिस्टम राखण्यासाठी "सेमॅंटिक वर्जनिंग" ('semver') या योजनेवर अवलंबून आहे, ज्यात बग-फिक्स शक्य तितक्या लवकर डाउनस्ट्रीम पॅकेजेसपर्यंत विश्वासार्हपणे पोहोचवले जातात, तर ब्रेकिंग चेंजेससाठी डाउनस्ट्रीम पॅकेज देखभालकर्त्यांकडून मॅन्युअल हस्तक्षेप आवश्यक असतो. विकसक semver कसे वापरतात हे समजून घेण्यासाठी, आम्ही NPM वरील प्रत्येक पॅकेजच्या प्रत्येक आवृत्तीचा समावेश असलेला एक डेटासेट तयार करतो आणि संपूर्ण परिसंस्थेत अद्यतनांचा प्रवाह विश्लेषित करतो. आम्ही NPM साठी एक टाइम-ट्रॅव्हलिंग डिपेंडन्सी रिझोल्व्हर तयार करतो, जो आम्हाला विविध वेळी कोणत्या आवृत्त्या रिझोल्व्ह झाल्या असत्या हे अचूकपणे ठरवू देतो. आम्ही आमचे विश्लेषण विभागतो, ज्यामुळे परिसंस्थेच्या इतर भागांच्या तुलनेत सुरक्षा-संबंधित अद्यतनांचे (जे दुर्बलता निर्माण करतात किंवा दुरुस्त करतात) थेट विश्लेषण करता येते. आम्हाला आढळले की जेव्हा विकासक semver चा अचूक वापर करतात, तेव्हा बहुसंख्य प्रकरणांमध्ये (90.09%) सुरक्षा पॅचसारख्या महत्त्वाच्या अद्यतनांचा डाउनस्ट्रीम अवलंबित्वांकडे प्रवाह खूप वेगाने होऊ शकतो, परंतु semver आवृत्ती मर्यादा आणि semver आवृत्ती क्रमांक वाढवण्याच्या दोन्ही बाबतीत विकासकांच्या अपूर्ण वापरामुळे हे नेहमी घडत नाही. आमच्या निष्कर्षांचे परिणाम विकासक आणि संशोधक दोघांसाठीही आहेत. आम्ही आमची पायाभूत सुविधा आणि डेटासेट ओपन सोर्स परवान्याखाली सार्वजनिकपणे उपलब्ध करून देतो.