GitHub தனது stacked pull requests அம்சத்தை பொது முன்னோட்டத்திற்கு (public preview) கொண்டு வந்துள்ளது. இதன் மூலம் டெவலப்பர்கள் ஒரு பெரிய மாற்றத்தை, ஒன்றையொன்று சார்ந்த PR-களின் சங்கிலித் தொடராகப் பிரித்து, அவற்றை ஒவ்வொன்றாகத் தனித்தனியாக மதிப்பாய்வு செய்து இணைக்க (merge) முடியும்.
இந்த அம்சம் ஏன் முக்கியமானது
ஒரு பெரிய, ஒற்றை PR பெரும்பாலும் ஒரு மாத கால மதிப்பாய்வாக நீண்டுவிடுகிறது; இதில் மதிப்பாய்வாளர்கள் தொடர்பில்லாத குறியீடுகளையும் (code) ஆராய வேண்டிய கட்டாயம் ஏற்படுகிறது. அடிப்படை கிளை (base branch) மாறும்போது, இத்தகைய பிரம்மாண்டமான மாற்றங்களில் மெர்ஜ் மோதல்கள் (merge conflicts) ஏற்பட வாய்ப்புள்ளது, இது வெளியீடுகளைத் தாமதப்படுத்தும். Stacked PR-கள் இந்த இரண்டு சிக்கல்களையும் தீர்க்கின்றன; இது ஒரு பெரிய மாற்றத்தை (diff), ஒவ்வொன்றும் முந்தைய ஒன்றின் அடிப்படையில் அமைந்த சிறிய, குறிப்பிட்ட மாற்றங்களின் தொடராக மாற்றுகிறது.
இது எவ்வாறு செயல்படுகிறது
முதலில் main கிளையை அடிப்படையாகக் கொண்டு முதல் PR-ஐ உருவாக்கவும், பின்னர் அடுத்த PR-ஐ முதல் ஒன்றின் அடிப்படையிலும், மூன்றாவது PR-ஐ இரண்டாவது ஒன்றின் அடிப்படையிலும் உருவாக்கவும். GitHub இந்தத் தொடர்புகளைத் தானாகவே கண்காணிக்கிறது: நீங்கள் அடிப்படை PR-ஐத் திருத்தினால் (amend), அதைப் சார்ந்த மற்ற PR-களும் புதிய நிலைக்கு ஏற்பத் தானாகவே புதுப்பிக்கப்படும். மதிப்பாய்வாளர்கள் ஒரே கிளிக்கில் முழு அடுக்கும் (stack) அங்கீகரிக்கலாம் அல்லது தனித்தனி அடுக்குகளையும் அங்கீகரிக்கலாம்.
- மதிப்பாய்வுகள் குறுகிய எல்லைக்குள் இருப்பதால், கருத்துக்களை (feedback) விரைவாகப் பெற முடியும்.
- ஒவ்வொரு PR-ம் அதன் சொந்த அடுக்கில் உள்ள குறியீடுகளை மட்டுமே மாற்றியிருப்பதால், மோதல்கள் குறைகின்றன.
- UI அடுக்குகளின் வரிசைமுறையைக் (hierarchy) காட்டுகிறது, மேலும் GitHub CLI மூலம் ஒரு வரி கட்டளையைப் (one-liner) பயன்படுத்தித் தொடர்ச்சியான stacked 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-களை உருவாக்குகிறது. இதே பணிப்பாய்வு (workflow) இணைய இடைமுகம் (web interface) மூலமாகவும் கிடைக்கிறது, அங்கு மற்றவற்றை பாதிக்காமல் ஒரு PR-ஐ வரிசைப்படுத்தவோ அல்லது நீக்கவோ முடியும்.
இதனால் பயனடைபவர்கள் யார்
பெரிய அம்சக் குழுக்கள் (feature teams) மற்றும் திறந்த மூல மென்பொருள் பராமரிப்பாளர்கள் (open-source maintainers), மதிப்பாய்வாளர்களுக்குத் தேவையற்ற குழப்பங்களை ஏற்படுத்தாமல், படிப்படியான வேலைகளை வெளியிட முடியும். வெளியீட்டு மேலாளர்களுக்கு (Release managers) எவை வெளியிடத் தயாராக உள்ளன என்பது பற்றிய தெளிவான படம் கிடைக்கும், ஏனெனில் ஒவ்வொரு அடுக்கும் அதன் சொந்த கால அட்டவணையின்படி இணைக்கப்படலாம்.
கவனிக்க வேண்டிய விஷயங்கள்
இந்த அம்சம் இன்னும் முன்னோட்ட நிலையிலேயே இருப்பதால், முழுமையான வெளியீட்டிற்கு முன் இதில் மாற்றங்கள் இருக்கலாம். குழுக்கள் கிளைப்பிரிப்பு (branching) தொடர்பான புதிய பழக்கங்களை மேற்கொள்ள வேண்டியிருக்கும். மேலும், ஏற்கனவே பகுதியளவு இணைக்கப்பட்ட ஒரு stack-ஐ ரீபேஸ் (rebasing) செய்யும்போது சில சிக்கல்களைச் சந்திக்க நேரிடலாம். ஆவணங்கள் (documentation) இன்னும் உருவாக்கப்பட்டு வருவதால், ஆரம்பகாலப் பயனர்கள் UI குறிப்புகளைக் கற்றுக்கொள்ள கூடுதல் நேரம் செலவிட வேண்டியிருக்கலாம்.
அடுத்து என்ன எதிர்பார்க்கலாம்
GitHub பெரும்பாலும் code-owners மற்றும் தானியங்கி கருவிகளுடன் (automation tools) நெருக்கமான ஒருங்கிணைப்பை வழங்கும், மேலும் மோதல்கள் குறைவது குறித்த புள்ளிவிவரங்களையும் வழங்கக்கூடும். GA (general availability) காலக்கெடு குறித்த தகவல்களுக்கு முன்னோட்ட அறிவிப்புப் பக்கத்தைக் கண்காணியுங்கள்.
சுருக்கம்: Stacked pull requests டெவலப்பர்கள் மிகப்பெரிய மாற்றங்களைக் கையாளுவதற்கு ஒரு நடைமுறை வழியை வழங்குகிறது; இது மோதல்கள் நிறைந்த ஒரு பெரிய PR-ஐ, நிர்வகிக்கக்கூடிய மற்றும் மதிப்பாய்விற்கு எளிதான வரிசைமுறையாக மாற்றுகிறது. உங்கள் பணிப்பாய்வு நீண்ட மதிப்பாய்வுகள் மற்றும் மெர்ஜ் சிக்கல்களால் பாதிக்கப்படுபவராக இருந்தால், இந்த முன்னோட்ட அம்சத்தை முயற்சி செய்து பார்ப்பது பயனுள்ளதாக இருக்கும்.
