NPMలో సెమాంటిక్ వెర్షనింగ్ యొక్క ఒక విస్తృత స్థాయి విశ్లేషణ
Author
Venue
మైనింగ్ సాఫ్ట్వేర్ రిపోజిటరీలు (MSR) 2023
Abstract
NPM ప్యాకేజీ రిపోజిటరీలో రెండు మిలియన్లకు పైగా ప్యాకేజీలు ఉన్నాయి మరియు ఇది ప్రతి వారానికి పది బిలియన్లకు పైగా డౌన్లోడ్లను అందిస్తుంది. దాదాపు ప్రతి ఒక్క జావాస్క్రిప్ట్ అప్లికేషన్, NPM రిపోజిటరీ నుండి ప్యాకేజీలను ఇన్స్టాల్ చేయడానికి NPM ప్యాకేజీ మేనేజర్ను ఉపయోగిస్తుంది. NPM ఒక ఆరోగ్యకరమైన ఎకోసిస్టమ్ను నిర్వహించడానికి "సెమాంటిక్ వెర్షనింగ్" ('semver') పద్ధతిపై ఆధారపడుతుంది, దీనిలో బగ్-ఫిక్స్లు డౌన్స్ట్రీమ్ ప్యాకేజీలకు వీలైనంత త్వరగా నమ్మకంగా అందించబడతాయి, అయితే బ్రేకింగ్ చేంజ్లకు డౌన్స్ట్రీమ్ ప్యాకేజీ నిర్వహణకర్తల నుండి మాన్యువల్ జోక్యం అవసరం. డెవలపర్లు semverను ఎలా ఉపయోగిస్తారో అర్థం చేసుకోవడానికి, మేము NPMలోని ప్రతి ప్యాకేజీ యొక్క ప్రతి వెర్షన్ను కలిగి ఉన్న ఒక డేటాసెట్ను నిర్మించి, ఎకోసిస్టమ్ అంతటా అప్డేట్ల ప్రవాహాన్ని విశ్లేషిస్తాము. మేము NPM కోసం ఒక టైమ్-ట్రావెలింగ్ డిపెండెన్సీ రిజల్యూవర్ను నిర్మిస్తాము, ఇది విభిన్న సమయాలలో ప్రతి డిపెండెన్సీ యొక్క ఏ వెర్షన్లు పరిష్కరించబడి ఉండేవో కచ్చితంగా నిర్ధారించడానికి మాకు అనుమతిస్తుంది. మిగిలిన ఎకోసిస్టమ్తో పోలిస్తే భద్రత-సంబంధిత అప్డేట్ల (వulnerabilitiesను పరిచయం చేసే లేదా ప్యాచ్ చేసేవి) ప్రత్యక్ష విశ్లేషణను అనుమతించడానికి మేము మా విశ్లేషణను విభజిస్తాము. డెవలపర్లు సెమ్వెర్ను సరిగ్గా ఉపయోగించినప్పుడు, భద్రతా ప్యాచ్ల వంటి కీలకమైన అప్డేట్లు చాలా వరకు (90.09%) డౌన్స్ట్రీమ్ డిపెండెన్సీలకు చాలా వేగంగా చేరగలవని మేము కనుగొన్నాము, కానీ సెమ్వెర్ వెర్షన్ పరిమితులు మరియు సెమ్వెర్ వెర్షన్ నంబర్ ఇంక్రిమెంట్లు రెండింటినీ డెవలపర్లు సరిగ్గా ఉపయోగించకపోవడం వల్ల ఇది ఎల్లప్పుడూ జరగదు. మా పరిశోధన ఫలితాలు డెవలపర్లకు మరియు పరిశోధకులకు ఇద్దరికీ ప్రాముఖ్యతను కలిగి ఉన్నాయి. మేము మా మౌలిక సదుపాయాన్ని మరియు డేటాసెట్ను ఓపెన్ సోర్స్ లైసెన్స్ కింద బహిరంగంగా అందుబాటులో ఉంచుతున్నాము.
