GitHub తన స్టాక్డ్ పుల్ రిక్వెస్ట్లను (stacked pull requests) పబ్లిక్ ప్రివ్యూలోకి తీసుకువచ్చింది. దీనివల్ల డెవలపర్లు ఒక పెద్ద మార్పును ఒకదానిపై ఒకటి ఆధారపడిన PRల గొలుసుగా విభజించవచ్చు, వీటిని స్వతంత్రంగా రివ్యూ చేయవచ్చు మరియు మెర్జ్ చేయవచ్చు.
ఈ ఫీచర్ ఎందుకు ముఖ్యమైనది
ఒకే పెద్ద (monolithic) PR తరచుగా నెలల తరబడి రివ్యూ ప్రక్రియలో చిక్కుకుపోతుంది, దీనివల్ల రివ్యూయర్లు సంబంధం లేని కోడ్ను కూడా చూడాల్సి వస్తుంది. బేస్ బ్రాంచ్ మారినప్పుడు, అటువంటి భారీ మార్పుల వల్ల మెర్జ్ కాన్ఫ్లిక్ట్స్ (merge conflicts) వచ్చే అవకాశం ఉంది, ఇది రిలీజ్లను ఆలస్యం చేస్తుంది. స్టాక్డ్ PRలు ఈ రెండు సమస్యలను పరిష్కరిస్తాయి; ఇవి ఒక పెద్ద డిఫ్ (diff) ను చిన్న చిన్న, ఫోకస్డ్ డిఫ్స్గా మారుస్తాయి, ఇవి ప్రతిదీ దాని ముందున్న దానిపై ఆధారపడి ఉంటాయి.
ఇది ఎలా పనిచేస్తుంది
మొదట మెయిన్ బ్రాంచ్పై మొదటి PRని సృష్టించండి, ఆపై తదుపరి PRని మొదటి దానిపై, మూడవ దానిని రెండవ దానిపై ఆధారపడి (base) చేయండి. GitHub ఈ సంబంధాలను ఆటోమేటిక్గా ట్రాక్ చేస్తుంది: మీరు బేస్ PRని సవరించినట్లయితే (amend), ఆధారపడిన PRలు కొత్త స్థితిని ప్రతిబింబించేలా అప్డేట్ చేయబడతాయి. రివ్యూయర్లు ఒకే క్లిక్తో మొత్తం స్టాక్ను ఆమోదించవచ్చు లేదా విడివిడి లేయర్లను కూడా ఆమోదించవచ్చు.
- రివ్యూలు పరిమిత పరిధిలో ఉంటాయి, దీనివల్ల ఫీడ్బ్యాక్ వేగంగా లభిస్తుంది.
- కాన్ఫ్లిక్ట్స్ తగ్గుతాయి, ఎందుకంటే ప్రతి PR దాని స్వంత లేయర్లో పరిచయం చేసిన కోడ్ను మాత్రమే మారుస్తుంది.
- UI స్టాక్ హైరార్కీని చూపుతుంది, మరియు GitHub CLI ద్వారా స్టాక్డ్ PRల సిరీస్ను సులభంగా సృష్టించవచ్చు.
gh pr create --title Feature A --base main
gh pr create --title Feature B --base feature-a
gh pr create --title Feature C --base feature-b
ఈ కమాండ్ లైన్ ఉదాహరణ మూడు లింక్ చేయబడిన PRలను సృష్టిస్తుంది, ఇవి ఒక్కొక్కటి దాని ముందున్న దానిపై ఆధారపడి ఉంటాయి. ఇదే వర్క్ఫ్లో వెబ్ ఇంటర్ఫేస్ ద్వారా కూడా అందుబాటులో ఉంది, ఇక్కడ మీరు ఇతర PRలను దెబ్బతీయకుండా స్టాక్ నుండి ఒక PRని రీఆర్డర్ చేయవచ్చు లేదా తొలగించవచ్చు.
దీని వల్ల ఎవరు ప్రయోజనం పొందుతారు
పెద్ద ఫీచర్ టీమ్లు మరియు ఓపెన్-సోర్స్ మెయింటైనర్లు, రివ్యూయర్లకు సంబంధం లేని మార్పులను చూపించకుండానే క్రమబద్ధమైన పనిని (incremental work) పూర్తి చేయవచ్చు. రిలీజ్ మేనేజర్లకు ఏది షిప్ చేయడానికి సిద్ధంగా ఉందో స్పష్టమైన అవగాహన వస్తుంది, ఎందుకంటే ప్రతి స్టాక్ లేయర్ను దాని స్వంత షెడ్యూల్లో మెర్జ్ చేయవచ్చు.
పరిగణించవలసిన అంశాలు
ఈ ఫీచర్ ఇంకా ప్రివ్యూ దశలోనే ఉంది, కాబట్టి పూర్తి విడుదల (full release) కంటే ముందు ఇందులో మార్పులు ఉండవచ్చు. టీమ్లు బ్రాంచింగ్ విషయంలో కొత్త పద్ధతులను అలవాటు చేసుకోవాల్సి ఉంటుంది మరియు ఇప్పటికే పాక్షికంగా మెర్జ్ చేయబడిన స్టాక్ను రీబేస్ (rebasing) చేసేటప్పుడు కొన్ని సమస్యలను (edge cases) ఎదుర్కోవచ్చు. డాక్యుమెంటేషన్ ఇంకా అభివృద్ధి దశలోనే ఉంది, కాబట్టి ప్రారంభ వినియోగదారులు UI సూచనలను అర్థం చేసుకోవడానికి అదనపు సమయం కేటాయించాల్సి రావచ్చు.
తదుపరి ఏమి చూడాలి
GitHub బహుశా కోడ్-ఓనర్స్ (code-owners) మరియు ఆటోమేషన్ టూల్స్తో మరింత మెరుగైన ఇంటిగ్రేషన్ను తీసుకువస్తుంది, మరియు కాన్ఫ్లిక్ట్ తగ్గింపుపై మెట్రిక్స్ను కూడా చూపించవచ్చు. GA (general availability) సమయం గురించి అప్డేట్స్ కోసం ప్రివ్యూ అనౌన్స్మెంట్ పేజీని గమనిస్తూ ఉండండి.
ముఖ్య అంశం: స్టాక్డ్ పుల్ రిక్వెస్ట్లు డెవలపర్లకు భారీ మార్పులను నియంత్రించడానికి ఒక ఆచరణాత్మక మార్గాన్ని అందిస్తాయి, ఇవి కాన్ఫ్లిక్ట్స్ ఎక్కువగా ఉండే ఒకే ఒక PRని, నిర్వహించగలిగే మరియు రివ్యూ చేయడానికి అనుకూలమైన క్రమంగా మారుస్తాయి. మీ వర్క్ఫ్లోలో రివ్యూలు ఆలస్యం కావడం మరియు మెర్జ్ సమస్యలతో ఇబ్బంది పడుతుంటే, ఈ ప్రివ్యూను ఒకసారి ప్రయత్నించడం మంచిది.
