Αυτό το έγγραφο περιγράφει τη διαδικασία διαχείρισης των Pull Requests (PR) στο ZeroClaw, με στόχο τη διασφάλιση υψηλής απόδοσης, ασφάλειας και σταθερότητας του κώδικα.
- README.md: Ταξινόμηση και πλοήγηση στην τεκμηρίωση.
- ci-map.md: Ιδιοκτησία ροών εργασίας CI και διαχείριση σφαλμάτων.
- reviewer-playbook.md: Οδηγός για ελεγκτές κώδικα (reviewers).
- Σκοπός: Καθορισμός ενός ντετερμινιστικού μοντέλου διαχείρισης PR βάσει ανάλυσης κινδύνου.
- Κοινό: Συνεισφέροντες (contributors), συντηρητές (maintainers) και αυτοματοποιημένοι πράκτορες ελέγχου.
- Πεδίο Εφαρμογής: Κύκλος ζωής PR, κριτήρια ετοιμότητας, δρομολόγηση κινδύνου και πρωτόκολλα αποκατάστασης.
- Ζητήστε τη συμπλήρωση του προτύπου και την παροχή αποδεικτικών στοιχείων μέσω λίστας ελέγχου.
- Αναστείλετε τον λεπτομερή έλεγχο μέχρι την πλήρη συμπλήρωση των στοιχείων.
- Οι αποτυχίες πρέπει να επιλύονται με βάση τον χάρτη CI.
- Ο έλεγχος από τον συντηρητή ξεκινά μόνο μετά την επιτυχία όλων των απαιτούμενων ελέγχων CI.
- Αλλαγές σε κρίσιμα υποσυστήματα απαιτούν λεπτομερή έλεγχο.
- Απαιτούνται ρητά αποδεικτικά στοιχεία για το πλάνο επαναφοράς (rollback) και δοκιμές ορίων ασφαλείας.
- Απαιτείται αναφορά στο PR που αντικαθίσταται και καθαρισμός της ουράς εργασιών.
- Το πλεονάζον PR κλείνει μετά από επιβεβαίωση του συντηρητή.
- Διεκπεραιωτικότητα: Διατήρηση σταθερού ρυθμού συγχωνεύσεων (merges).
- Ποιότητα Σήματος: Γρήγορη ανάδραση από το CI με ελάχιστα ψευδώς θετικά αποτελέσματα.
- Ασφάλεια: Αυστηρός έλεγχος σε κρίσιμες επιφάνειες επίθεσης.
- Αναστρεψιμότητα: Οι αλλαγές πρέπει να είναι κατανοητές και εύκολα αναστρέψιμες.
Οι παρακάτω κανόνες εφαρμόζονται στον κλάδο main:
- Απαίτηση επιτυχών ελέγχων κατάστασης (Status Checks) πριν από τη συγχώνευση.
- Υποχρεωτική επιτυχία της "Πύλης Απαιτούμενου CI".
- Απαίτηση έγκρισης από CODEOWNERS για ευαίσθητες διαδρομές.
- Απόρριψη παλαιών εγκρίσεων σε περίπτωση νέων commits.
- Απαγόρευση αναγκαστικής προώθησης (force-push).
- Χρήση του προτύπου
.github/pull_request_template.md. - Αυτόματη απόδοση ετικετών (labels) για το μέγεθος, τον κίνδυνο και την ενότητα (π.χ.
risk:high,size:M).
- PR που αφορούν αποκλειστικά τεκμηρίωση παρακάμπτουν τις εργασίες μεταγλώττισης.
- Ο κώδικας Rust ελέγχεται για lints, επιτυχή μεταγλώττιση και δοκιμές (unit/integration tests).
- Προτεραιότητα βάσει κινδύνου και μεγέθους.
- Κρίσιμες διαδρομές (
src/security,src/gateway, CI workflows) απαιτούν έγκριση από συντηρητές.
- Προεπιλεγμένη μέθοδος: Squash Merge.
- Οι τίτλοι των commits πρέπει να ακολουθούν τη σύμβαση Conventional Commits.
- Πλήρως συμπληρωμένο πρότυπο.
- Σαφής περιγραφή των αλλαγών και της εμβέλειάς τους.
- Αποδεικτικά χειροκίνητης ή αυτόματης επικύρωσης.
- Ύπαρξη σχεδίου επαναφοράς.
- Όλοι οι έλεγχοι CI είναι επιτυχείς.
- Λήψη όλων των απαραίτητων εγκρίσεων (reviewers, code owners).
- Οι ετικέτες αντικατοπτρίζουν το πραγματικό περιεχόμενο και τον κίνδυνο.
| Ετικέτα | Γραμμές Κώδικα |
|---|---|
size: XS |
< 80 |
size: S |
80 - 250 |
size: M |
250 - 500 |
size: L |
500 - 1000 |
size: XL |
> 1000 |
Tip
Προτιμήστε τα μεγέθη XS, S και M. Τα PR μεγέθους L και XL πρέπει να δικαιολογούνται ρητά και να συνοδεύονται από εκτενείς δοκιμές.
Εάν μια αλλαγή προκαλέσει προβλήματα μετά τη συγχώνευση:
- Αναστροφή (Revert) του PR στον κλάδο
mainάμεσα. - Ανάλυση της βαθύτερης αιτίας (Root Cause Analysis).
- Επαναϋποβολή της διόρθωσης μαζί με δοκιμές αποτροπής υποτροπής (regression tests).
- README.md: Ταξινόμηση και πλοήγηση τεκμηρίωσης.
- ci-map.md: Ιδιοκτησία και διαχείριση CI.
- reviewer-playbook.md: Οδηγός ελέγχου κώδικα.