openSUSE:Build Service Concept Source branching
Διακλάδωση Πηγαίου
Δουλεύοντας ομαδικά σε πακέτα
Ένας από τους κύριους στόχους του Build Service είναι να ενισχυθεί η συνεργασία των μελών της κοινότητας σε όλα τα επίπεδα. Ο πιο φυσικός τρόπος να δουλέψετε συνεργατικά στον κόσμο του ανοιχτού λογισμικού είναι να δουλέψετε μαζί με άλλους πάνω σε κώδικα.
Αν και αυτό είναι κάτι γνωστό σε επίπεδο πηγαίου κώδικα, είναι κάτι νέο στο τομέα κατασκευής πακέτων. Ο κόσμος θέλει να βελτιώσει υπάρχοντα έργα και πακέτα. Αυτό είναι θαυμάσιο, αλλά εξακολουθεί να υπάρχει η ανάγκη για ισχυρή συντηρησιμότητα έργων, ώστε να διασφαλιστεί η υψηλή ποιότητα σε μεγάλα έργα. Ως αποτέλεσμα, οι έννοιες ιδιωτικότητας του Build Service δεν επιτρέπουν στις αλλαγές να πάνε απευθείας στα έργα όπου κάποιος δεν έχει άδεια εγγραφής.
Λύση
Θέλουμε να ενθαρρύνουμε τη συνεργασία σε τέτοιο τρόπο, ώστε όλοι να μπορούν να διακλαδώσουν όλα τα πακέτα από όλα τα έργα και να δουλέψουν πάνω τους σε έναν ιδιωτικό χώρο.
Όταν το πακέτο είναι καλύτερο από πριν, ένα αίτημα μπορεί να αποσταλεί για να μεταφερθούν οι αλλαγές στο αρχικό έργο. Αυτό ζητά από τον ιδιοκτήτη του αρχικού έργου να λάβει υπόψιν του τις αλλαγές.
Λεπτομέρειες
Ο προγραμματιστής που θέλει να δημιουργήσει μια βελτιωμένη έκδοση (=διακλαδωμένο έργο) ενός έργου (=έργο βάση) καλεί τη λειτουργικότητα 'βελτιώστε αυτό το πακέτο' (όπως αυτό φαίνεται κάθε φορά, ανάλογα με το πρόγραμμα πελάτη) από το πρόγραμμα πελάτη. Ο πελάτης (client) ελέγχει αν ο χρήστης έχει δικαίωμα εγγραφής στο έργο, αν ναι, μπαίνει σε φυσιολογική κατάσταση επεξεργασίας.
Σε περίπτωση που ο χρήστης δεν έχει δικαίωμα εγγραφής στο έργο, ένα νέο κλαδί του έργο βάσης δημιουργείται από το API. Το διακλαδωμένο έργο μπορεί πλέον να δουλευτεί, να κατασκευαστεί και να δοκιμαστεί. Αν το διακλαδωμένο έργο δουλεύει όπως πρέπει, αυτός που συντηρεί το κλαδί μπορεί να δημιουργήσει ένα Αίτημα Υποβολής.
Τα Αιτήματα είναι ένα γενικό χαρακτηριστικό του Buildservice για να βοηθήσει την υποστήριξη της συνεργασίας μεταξύ των ανθρώπων.
Η Υποβολή Αιτήματος μπορεί, είτε να γίνει αποδεκτή, είτε να μη γίνει, από τον συντηρητή του έργου βάσης ή ακόμα και να ακυρωθεί από τον αιτούντα. Αν το αίτημα συνένωσης γίνει αποδεκτό, το πακέτο βάσης μπαλώνεται (patch) με τα αρχεία περιγραφής διαφορών (diffs) του διακλαδωμένου έργου και η κατάσταση αιτήσεων συνένωσης τίθεται στο "αποδοχή".
Βρείτε περισσότερες λεπτομέρειες σχετικά με το Αίτημα Υποβολής.
Για να καταστεί δυνατό ένα έργο στο Buildservice να έχει διαφορετικούς συντηρητές για όλα τα πακέτα αλλά να εξακολουθεί να υπάρχει μια κεντρική διαχείριση συντήρησης του έργου υπάρχει η έννοια των Έργων Ανάπτυξης (Devel Projects). Αυτά βοηθούν στην αποφυγή κατακλυσμού αιτήσεων στο συντηρητή τεράστιων έργων του Buildservice όπως το Factory.