Οι νέες εκδόσεις του FreeBSD φτιάχνονται από τον -STABLE κορμό ανάπτυξης περίπου κάθε τέσσερεις μήνες. Η διαδικασία προετοιμασίας μιας έκδοσης ξεκινάει σχεδόν 45 μέρες πριν την αναμενόμενη ημερομηνία έκδοσης, όταν ο υπεύθυνος εκδόσεων του FreeBSD στέλνει ένα γράμμα στις λίστες των προγραμματιστών για να υπενθυμίσει στους προγραμματιστές ότι έχουν 15 μέρες καιρό να κάνουν όποιες αλλαγές θέλουν, πριν το πάγωμα του κώδικα. Μέσα σε αυτό τον καιρό, πολλοί προγραμματιστές κάνουν μια σειρά από αλλαγές που έχουν μείνει πλέον γνωστές ως «ξεκαθαρίσματα MFC». Ο όρος MFC σημαίνει «Merge From CURRENT» και περιγράφει την διαδικασία προσαρμογής του κώδικα μιας δοκιμασμένης αλλαγής από τον -CURRENT πειραματικό κορμό ανάπτυξης στον σταθερό -STABLE κορμό.
Τριάντα ημέρες πριν την αναμενόμενη ημερομηνία έκδοσης, ο κώδικας του repository
εισέρχεται σε μια περίοδο «καθυστέρησης». Κατά τη διάρκεια αυτής της
περιόδου, όλες οι αλλαγές στον -STABLE κορμό πρέπει να έχουν την έγκριση της Release
Engineering Team <re@FreeBSD.org>
. Οι αλλαγές που επιτρέπονται
σε αυτή την περίοδο που διαρκεί 15 ημέρες είναι:
Διορθώσεις γνωστών προβλημάτων.
Ενημερώσεις στην τεκμηρίωση.
Αλλαγές σχετικές με την ασφάλεια.
Μικρές αλλαγές στους οδηγούς συσκευών, όπως π.χ. η προσθήκη των IDs νέων συσκευών.
Οποιαδήποτε άλλη αλλαγή πιστεύει η ομάδα ανάπτυξης ότι πρέπει να γίνει, με το αναμενόμενο πάντα ρίσκο.
Μετά τις πρώτες 15 μέρες καθυστέρησης, φτιάχνεται μια δοκιμαστική έκδοση για να χρησιμοποιηθεί σαν δοκιμή της τελικής έκδοσης και ο κώδικας εισέρχεται σε μια περίοδο «παγώματος». Πλέον είναι πολύ πιο δύσκολο να γίνουν νέες αλλαγές στο σύστημα, εκτός κι αν διορθώνουν κάποιο πολύ σοβαρό bugή κάποιο πρόβλημα ασφάλειας. Κατά τη διάρκεια του παγώματος του κώδικα, τουλάχιστον μία δοκιμαστική έκδοση φτιάχνεται κάθε εβδομάδα, μέχρι να είναι έτοιμη η τελική έκδοση. Τις ημέρες ακριβώς πριν την τελική έκδοση, η ομάδα που είναι υπεύθυνη για τις εκδόσεις είναι σε συνεχή επικοινωνία με την ομάδα ασφάλειας, την ομάδα συντήρησης της τεκμηρίωσης, και την ομάδα συντήρησης των ports, για να βεβαιωθούν πως όλα τα απαραίτητα κομμάτια για μια πλήρη έκδοση είναι διαθέσιμα.
Όταν αρκετές δοκιμαστικές εκδόσεις έχουν γίνει διαθέσιμες, έχουν δοκιμαστεί από αρκετό κόσμο και όλα τα σοβαρά θέματα έχουν αναλυθεί, η τελική έκδοση μπορεί να αρχίσει.
Όπως περιγράψαμε στην εισαγωγή, οι κορμοί RELENG_X_Y είναι μια σχετικά νέα προσθήκη στην μεθοδολογία των εκδόσεών μας. Το πρώτο βήμα στην δημιουργία αυτού του κορμού είναι να βεβαιωθείτε ότι δουλεύετε με την τελευταία έκδοση του πηγαίου κώδικα από τον RELENG_X κορμό από τον οποίο θα φτιάξετε το νέο κορμό.
/usr/src# cvs update -rRELENG_4 -P -d
Το επόμενο βήμα είναι να δημιουργήσετε μια ετικέτα (tag) στο σημείο εκκίνησης του κορμού, ώστε να μπορείτε να δείτε τις διαφορές με την αρχή του κορμού εύκολα στο μέλλον με το CVS:
/usr/src# cvs rtag -rRELENG_4 RELENG_4_8_BP src
Και τότε μπορείτε να δημιουργήσετε το νέο κορμό με:
/usr/src# cvs rtag -b -rRELENG_4_8_BP RELENG_4_8 src
Σημείωση: Οι ετικέτες RELENG_* είναι δεσμευμένες για χρήση από τους CVS-meisters και την ομάδα των εκδόσεων.
Πριν μπει η ετικέτα, μεταγλωττιστεί και ετοιμαστεί η τελική έκδοση, πρέπει να γίνουν αλλαγές στα παρακάτω αρχεία για να περιέχουν τον σωστό αριθμό έκδοσης για το FreeBSD:
doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml
doc/en_US.ISO8859-1/books/porters-handbook/book.sgml
doc/share/sgml/freebsd.ent
src/Makefile.inc1
src/UPDATING
src/gnu/usr.bin/groff/tmac/mdoc.local
src/release/Makefile
src/release/doc/en_US.ISO8859-1/share/sgml/release.dsl
src/release/doc/share/examples/Makefile.relnotesng
src/release/doc/share/sgml/release.ent
src/share/examples/cvsup/standard-supfile
src/sys/conf/newvers.sh
src/sys/sys/param.h
src/usr.sbin/pkg_install/add/main.c
www/en/docs.sgml
www/en/cgi/ports.cgi
ports/Tools/scripts/release/config
Οι σημειώσεις έκδοσης και τα αρχεία με τις διορθώσεις της τελευταίας στιγμής πρέπει επίσης να προσαρμοστούν στην νέα έκδοση (στον κορμό της έκδοσης) και να επεξεργαστούν κατάλληλα (στους δύο κορμούς stable και current):
src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml
src/release/doc/en_US.ISO8859-1/errata/article.sgml
Η εφαρμογή sysinstall πρέπει επίσης να ενημερωθεί με τον σωστό αριθμό των ports και το χώρο του δίσκου που απαιτείται για την Συλλογή των Ports. Αυτές οι πληροφορίες υπάρχουν στο αρχείο src/release/sysinstall/dist.c.
Αφού ολοκληρωθεί η προετοιμασία της νέας επίσημης έκδοσης, πρέπει να ενημερώσετε μερικά αρχεία για να ενημερώσετε τον κόσμο για τη νέα έκδοση του FreeBSD.
www/en/includes.xsl
www/en/includes.sgml
www/es/includes.sgml
www/en/releases/*
src/share/misc/bsd-family-tree
Όταν η τελική έκδοση είναι έτοιμη, η παρακάτω εντολή θα δημιουργήσει την ετικέτα RELENG_4_8_0_RELEASE.
/usr/src# cvs rtag -rRELENG_4_8 RELENG_4_8_0_RELEASE src
Οι υπεύθυνοι της Τεκμηρίωσης και των Ports είναι αυτοί που πρέπει να δημιουργήσουν τις ετικέτες RELEASE_4_8_0 στα κατάλληλα δέντρα πηγαίου κώδικα.
Μερικές φορές, μπορεί να χρειαστεί να γίνουν κάποιες αλλαγές τελευταία στιγμή μετά την τοποθέτηση των ετικετών. Γενικά, δεν είναι δύσκολο να γίνει κάτι τέτοιο αφού το CVS επιτρέπει να μετακινήσει κάποιος τις ετικέτες με εντολές όπως cvs tag -d tagname filename. Είναι πολύ σημαντικό όμως αυτές οι αλλαγές της τελευταίας στιγμής να σημειωθούν με τις σωστές ετικέτες για την συγκεκριμένη έκδοση. Οι επίσημες εκδόσεις του FreeBSD πρέπει να είναι πάντα εύκολο να αναπαραχθούν. Τοπικές αλλαγές στο περιβάλλον του μηχανικού των εκδόσεων δεν επιτρέπονται.
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.