GitHub ತನ್ನ 'stacked pull requests' ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸಾರ್ವಜನಿಕ ಪ್ರಿವ್ಯೂಗೆ (public preview) ತರಿದೆ, ಇದು ಅಭಿವೃದ್ಧಿಪಡಿಸುವವರಿಗೆ (developers) ದೊಡ್ಡ ಬದಲಾವಣೆಯನ್ನು ಪರಸ್ಪರ ಅವಲಂಬಿತವಾಗಿರುವ PRಗಳ ಸರಪಳಿಯಾಗಿ ವಿಂಗಡಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಈ ಪ್ರತಿಯೊಂದು PR ಅನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಪರಿಶೀಲಿಸಬಹುದು ಮತ್ತು ವಿಲೀನಗೊಳಿಸಬಹುದು (merge).

ಈ ವೈಶಿಷ್ಟ್ಯ ಏಕೆ ಮುಖ್ಯ

ಒಂದು ದೊಡ್ಡ, ಏಕಕಾಲದ (monolithic) PR ಸಾಮಾನ್ಯವಾಗಿ ತಿಂಗಳಗೇತರ ಪರಿಶೀಲನೆಯಾಗಿ ಬೆಳೆಯುತ್ತದೆ, ಇದರಿಂದ ಪರಿಶೀಲಕರು ಸಂಬಂಧವಿಲ್ಲದ ಕೋಡ್‌ಗಳ ನಡುವೆ ಅಲೆಯಬೇಕಾಗುತ್ತದೆ. ಬೇಸ್ ಬ್ರಾಂಚ್ (base branch) ಬದಲಾದಾಗ, ಅಂತಹ ಬೃಹತ್ ಬದಲಾವಣೆಗಳು 'merge conflicts' ಉಂಟಾಗುವ ಸಾಧ್ಯತೆ ಇರುತ್ತದೆ, ಇದು ಬಿಡುಗಡೆಗಳನ್ನು (releases) ವಿಳಂಬಗೊಳಿಸುತ್ತದೆ. Stacked PRಗಳು ಒಂದು ದೊಡ್ಡ 'diff' ಅನ್ನು ಸಣ್ಣ ಮತ್ತು ನಿರ್ದಿಷ್ಟವಾದ 'diff'ಗಳ ಸರಣಿಯಾಗಿ ಪರಿವರ್ತಿಸುವ ಮೂಲಕ ಈ ಎರಡೂ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುತ್ತವೆ, ಇಲ್ಲಿ ಪ್ರತಿಯೊಂದು PR ಹಿಂದಿನದರ ಮೇಲೆ ನಿರ್ಮಿತವಾಗಿರುತ್ತದೆ.

ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

ಮೊದಲು main branch ಗೆ ಮೊದಲ PR ಅನ್ನು ರಚಿಸಿ, ನಂತರ ಮುಂದಿನ PR ಅನ್ನು ಮೊದಲನೆಯದರ ಮೇಲೆ, ಮೂರನೆಯದನ್ನು ಎರಡನೆಯದರ ಮೇಲೆ ಹೀಗೆ ಮಾಡ逐ೆ ಮಾಡಬಹುದು. GitHub ಈ ಸಂಬಂಧಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತದೆ: ನೀವು ಬೇಸ್ PR ಅನ್ನು ತಿದ್ದುಪಡಿ ಮಾಡಿದರೆ (amend), ಅವಲಂಬಿತ PRಗಳು ಹೊಸ ಸ್ಥಿತಿಯನ್ನು ಪ್ರತಿಬಿಂಬಿಸಲು ಅಪ್‌ಡೇಟ್ ಆಗುತ್ತವೆ. ಪರಿಶೀಲಕರು ಇಡೀ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಒಂದೇ ಕ್ಲಿಕ್ ಮೂಲಕ ಅನುಮೋದಿಸಬಹುದು ಅಥವಾ ಪ್ರತ್ಯೇಕ ಪದರಗಳನ್ನು (layers) ಪರಿಶೀಲಿಸಿ ಸಹಿ ಮಾಡಬಹುದು.

  • ಪರಿಶೀಲನೆಗಳು ಕಿರಿದಾದ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಇರುವುದರಿಂದ, ಪ್ರತಿಕ್ರಿಯೆ (feedback) ವೇಗವಾಗಿ ಸಿಗುತ್ತದೆ.
  • ಪ್ರತಿಯೊಂದು PR ತನ್ನದೇ ಆದ ಪದರದಲ್ಲಿ ಪರಿಚಯಿಸಲಾದ ಕೋಡ್ ಅನ್ನು ಮಾತ್ರ ಸ್ಪರ್ಶಿಸುವುದರಿಂದ, ಸಂಘರ್ಷಗಳು (conflicts) ಕಡಿಮೆಯಾಗುತ್ತವೆ.
  • UI ಸ್ಟ್ಯಾಕ್ ಶ್ರೇಣೀಕರಣವನ್ನು (hierarchy) ತೋರಿಸುತ್ತದೆ ಮತ್ತು GitHub CLI ಸರಣಿಯ 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) ವೆಬ್ ಇಂಟರ್ಫೇಸ್ ಮೂಲಕ ಲಭ್ಯವಿದೆ, ಅಲ್ಲಿ ನೀವು ಇತರರನ್ನು ಹಾಳು ಮಾಡದೆಯೇ ಸ್ಟ್ಯಾಕ್‌ನಿಂದ ಒಂದು PR ಅನ್ನು ಮರುಕ್ರಮಗೊಳಿಸಬಹುದು ಅಥವಾ ತೆಗೆದುಹಾಕಬಹುದು.

ಯಾರು ಪ್ರಯೋಜನ ಪಡೆಯಬಹುದು

ದೊಡ್ಡ ಫೀಚರ್ ತಂಡಗಳು ಮತ್ತು ಓಪನ್-ಸೋರ್ಸ್ ನಿರ್ವಾಹಕರು (maintainers) ಸಂಬಂಧವಿಲ್ಲದ ಗೊಂದಲಗಳಿಗೆ ಪರಿಶೀಲಕರನ್ನು ಒಡ್ಡದೆ, ಹಂತ ಹಂತವಾಗಿ ಕೆಲಸವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಬಹುದು. ರಿಲೀಸ್ ಮ್ಯಾನೇಜರ್‌ಗಳಿಗೆ ಯಾವುದು ಬಿಡುಗಡೆ ಮಾಡಲು ಸಿದ್ಧವಾಗಿದೆ ಎಂಬ ಸ್ಪಷ್ಟ ಚಿತ್ರಣ ಸಿಗುತ್ತದೆ, ಏಕೆಂದರೆ ಪ್ರತಿಯೊಂದು ಸ್ಟ್ಯಾಕ್ ಪದರವನ್ನು ಅದರ ಸ್ವಂತ ವೇಳಾಪಟ್ಟಿಯ ಮೇಲೆ ವಿಲೀನಗೊಳಿಸಬಹುದು (merge).

ಗಮನಿಸಬೇಕಾದ ಎಚ್ಚರಿಕೆಗಳು

ಈ ವೈಶಿಷ್ಟ್ಯವು ಇನ್ನೂ ಪ್ರಿವ್ಯೂ ಹಂತದಲ್ಲಿದೆ, ಆದ್ದರಿಂದ ಪೂರ್ಣ ಬಿಡುಗಡೆಯ ಮೊದಲು ಇದು ಬದಲಾಗಬಹುದು. ತಂಡಗಳು ಬ್ರಾಂಚಿಂಗ್ (branching) ಬಗ್ಗೆ ಹೊಸ ಅಭ್ಯಾಸಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ಭಾಗಶಃ ವಿಲೀನಗೊಂಡಿರುವ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ರೀಬೇಸ್ (rebasing) ಮಾಡುವಾಗ ಕೆಲವು ಅನಿರೀಕ್ಷಿತ ಸಂದರ್ಭಗಳನ್ನು (edge cases) ಎದುರಿಸಬಹುದು. ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಇನ್ನೂ ಬೆಳೆಯುತ್ತಿದೆ, ಆದ್ದರಿಂದ ಆರಂಭಿಕ ಬಳಕೆದಾರರು UI ಸೂಚನೆಗಳನ್ನು ಕಲಿಯಲು ಹೆಚ್ಚಿನ ಸಮಯ ವ್ಯಯಿಸಬಹುದು.

ಮುಂದೆ ಏನನ್ನು ಗಮನಿಸಬೇಕು

GitHub ಬಹುಶಃ code-owners ಮತ್ತು ಆಟೊಮೇಷನ್ ಪರಿಕರಗಳೊಂದಿಗೆ (automation tools) ಹೆಚ್ಚು ಸಮಗ್ರ ಏಕೀಕರಣವನ್ನು ಪರಿಚಯಿಸಬಹುದು ಮತ್ತು ಸಂಘರ್ಷಗಳ ಕಡಿತದ ಮೇಲಿನ ಅಂಕಿಅಂಶಗಳನ್ನು (metrics) ನೀಡಬಹುದು. GA (general availability) ಸಮಯದ ಬಗ್ಗೆ ಅಪ್‌ಡೇಟ್‌ಗಳಿಗಾಗಿ ಪ್ರಿವ್ಯೂ ಘೋಷಣಾ ಪುಟವನ್ನು ಗಮನಿಸುತ್ತಿರಿ.

ಸಾರಾಂಶ: Stacked pull requests ಅಭಿವೃದ್ಧಿಪಡಿಸುವವರಿಗೆ ದೊಡ್ಡ ಬದಲಾವಣೆಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ಒಂದು ಪ್ರಾಯೋಗಿಕ ಮಾರ್ಗವನ್ನು ನೀಡುತ್ತದೆ, ಇದು ಸಂಘರ್ಷಗಳಿಂದ ಕೂಡಿದ ಒಂದೇ PR ಅನ್ನು ನಿರ್ವಹಣೆಗೆ ಸುಲಭವಾದ ಮತ್ತು ಪರಿಶೀಲನೆಗೆ ಪೂರಕವಾದ ಸರಣಿಯಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ. ನಿಮ್ಮ ವರ್ಕ್‌ಫ್ಲೋ ದೀರ್ಘ ಪರಿಶೀಲನೆಗಳು ಮತ್ತು 'merge' ತಲೆನೋವುಗಳೊಂದಿಗೆ ಹೋರಾಡುತ್ತಿದ್ದರೆ, ಈ ಪ್ರಿವ್ಯೂ ಅನ್ನು ಒಮ್ಮೆ ಪ್ರಯತ್ನಿಸುವುದು ಉತ್ತಮ.