133 lines
7.0 KiB
Markdown
133 lines
7.0 KiB
Markdown
# Ροή Εργασιών Pull Request (PR)
|
||
|
||
Αυτό το έγγραφο περιγράφει τη διαδικασία διαχείρισης των Pull Requests (PR) στο ZeroClaw, με στόχο τη διασφάλιση υψηλής απόδοσης, ασφάλειας και σταθερότητας του κώδικα.
|
||
|
||
## Σχετική Τεκμηρίωση
|
||
|
||
- [README.md](./README.md): Ταξινόμηση και πλοήγηση στην τεκμηρίωση.
|
||
- [ci-map.md](./ci-map.md): Ιδιοκτησία ροών εργασίας CI και διαχείριση σφαλμάτων.
|
||
- [reviewer-playbook.md](./reviewer-playbook.md): Οδηγός για ελεγκτές κώδικα (reviewers).
|
||
|
||
## 0. Περίληψη
|
||
|
||
- **Σκοπός**: Καθορισμός ενός ντετερμινιστικού μοντέλου διαχείρισης PR βάσει ανάλυσης κινδύνου.
|
||
- **Κοινό**: Συνεισφέροντες (contributors), συντηρητές (maintainers) και αυτοματοποιημένοι πράκτορες ελέγχου.
|
||
- **Πεδίο Εφαρμογής**: Κύκλος ζωής PR, κριτήρια ετοιμότητας, δρομολόγηση κινδύνου και πρωτόκολλα αποκατάστασης.
|
||
|
||
---
|
||
|
||
## 1. Ταχεία Διαχείριση βάσει Κατάστασης PR
|
||
|
||
### 1.1 Ημιτελές Πρότυπο PR
|
||
|
||
- Ζητήστε τη συμπλήρωση του προτύπου και την παροχή αποδεικτικών στοιχείων μέσω λίστας ελέγχου.
|
||
- Αναστείλετε τον λεπτομερή έλεγχο μέχρι την πλήρη συμπλήρωση των στοιχείων.
|
||
|
||
### 1.2 Αποτυχία στην Πύλη CI (CI Gate)
|
||
|
||
- Οι αποτυχίες πρέπει να επιλύονται με βάση τον χάρτη CI.
|
||
- Ο έλεγχος από τον συντηρητή ξεκινά μόνο μετά την επιτυχία όλων των απαιτούμενων ελέγχων CI.
|
||
|
||
### 1.3 Τροποποιήσεις Υψηλού Κινδύνου
|
||
|
||
- Αλλαγές σε κρίσιμα υποσυστήματα απαιτούν λεπτομερή έλεγχο.
|
||
- Απαιτούνται ρητά αποδεικτικά στοιχεία για το πλάνο επαναφοράς (rollback) και δοκιμές ορίων ασφαλείας.
|
||
|
||
### 1.4 Αντικατάσταση ή Διπλότυπο PR
|
||
|
||
- Απαιτείται αναφορά στο PR που αντικαθίσταται και καθαρισμός της ουράς εργασιών.
|
||
- Το πλεονάζον PR κλείνει μετά από επιβεβαίωση του συντηρητή.
|
||
|
||
---
|
||
|
||
## 2. Αρχές Διακυβέρνησης
|
||
|
||
- **Διεκπεραιωτικότητα**: Διατήρηση σταθερού ρυθμού συγχωνεύσεων (merges).
|
||
- **Ποιότητα Σήματος**: Γρήγορη ανάδραση από το CI με ελάχιστα ψευδώς θετικά αποτελέσματα.
|
||
- **Ασφάλεια**: Αυστηρός έλεγχος σε κρίσιμες επιφάνειες επίθεσης.
|
||
- **Αναστρεψιμότητα**: Οι αλλαγές πρέπει να είναι κατανοητές και εύκολα αναστρέψιμες.
|
||
|
||
---
|
||
|
||
## 3. Ρυθμίσεις Αποθετηρίου (Branch Protection)
|
||
|
||
Οι παρακάτω κανόνες εφαρμόζονται στον κλάδο `main`:
|
||
- Απαίτηση επιτυχών ελέγχων κατάστασης (Status Checks) πριν από τη συγχώνευση.
|
||
- Υποχρεωτική επιτυχία της "Πύλης Απαιτούμενου CI".
|
||
- Απαίτηση έγκρισης από CODEOWNERS για ευαίσθητες διαδρομές.
|
||
- Απόρριψη παλαιών εγκρίσεων σε περίπτωση νέων commits.
|
||
- Απαγόρευση αναγκαστικής προώθησης (force-push).
|
||
|
||
---
|
||
|
||
## 4. Κύκλος Ζωής PR
|
||
|
||
### 4.1 Υποβολή (Intake)
|
||
|
||
- Χρήση του προτύπου `.github/pull_request_template.md`.
|
||
- Αυτόματη απόδοση ετικετών (labels) για το μέγεθος, τον κίνδυνο και την ενότητα (π.χ. `risk:high`, `size:M`).
|
||
|
||
### 4.2 Επικύρωση
|
||
|
||
- PR που αφορούν αποκλειστικά τεκμηρίωση παρακάμπτουν τις εργασίες μεταγλώττισης.
|
||
- Ο κώδικας Rust ελέγχεται για lints, επιτυχή μεταγλώττιση και δοκιμές (unit/integration tests).
|
||
|
||
### 4.3 Έλεγχος (Review)
|
||
|
||
- Προτεραιότητα βάσει κινδύνου και μεγέθους.
|
||
- Κρίσιμες διαδρομές (`src/security`, `src/gateway`, CI workflows) απαιτούν έγκριση από συντηρητές.
|
||
|
||
### 4.4 Συγχώνευση (Merge)
|
||
|
||
- Προεπιλεγμένη μέθοδος: **Squash Merge**.
|
||
- Οι τίτλοι των commits πρέπει να ακολουθούν τη σύμβαση Conventional Commits.
|
||
|
||
---
|
||
|
||
## 5. Κριτήρια Ετοιμότητας (DoR / DoD)
|
||
|
||
### 5.1 Definition of Ready (DoR)
|
||
|
||
- Πλήρως συμπληρωμένο πρότυπο.
|
||
- Σαφής περιγραφή των αλλαγών και της εμβέλειάς τους.
|
||
- Αποδεικτικά χειροκίνητης ή αυτόματης επικύρωσης.
|
||
- Ύπαρξη σχεδίου επαναφοράς.
|
||
|
||
### 5.2 Definition of Done (DoD)
|
||
|
||
- Όλοι οι έλεγχοι CI είναι επιτυχείς.
|
||
- Λήψη όλων των απαραίτητων εγκρίσεων (reviewers, code owners).
|
||
- Οι ετικέτες αντικατοπτρίζουν το πραγματικό περιεχόμενο και τον κίνδυνο.
|
||
|
||
---
|
||
|
||
## 6. Διαχείριση Μεγέθους
|
||
|
||
| Ετικέτα | Γραμμές Κώδικα |
|
||
|:---|:---|
|
||
| `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 πρέπει να δικαιολογούνται ρητά και να συνοδεύονται από εκτενείς δοκιμές.
|
||
|
||
---
|
||
|
||
## 7. Πολιτική Αποκατάστασης (Rollback)
|
||
|
||
Εάν μια αλλαγή προκαλέσει προβλήματα μετά τη συγχώνευση:
|
||
1. **Αναστροφή (Revert)** του PR στον κλάδο `main` άμεσα.
|
||
2. Ανάλυση της βαθύτερης αιτίας (Root Cause Analysis).
|
||
3. Επαναϋποβολή της διόρθωσης μαζί με δοκιμές αποτροπής υποτροπής (regression tests).
|
||
|
||
---
|
||
|
||
## 8. Σχετική Τεκμηρίωση
|
||
|
||
- [README.md](./README.md): Ταξινόμηση και πλοήγηση τεκμηρίωσης.
|
||
- [ci-map.md](./ci-map.md): Ιδιοκτησία και διαχείριση CI.
|
||
- [reviewer-playbook.md](./reviewer-playbook.md): Οδηγός ελέγχου κώδικα.
|