This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
Οι νέες εκδόσεις του 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_4_BP src
Και τότε μπορείτε να δημιουργήσετε το νέο κορμό με:
/usr/src# cvs rtag -b -rRELENG_4_4_BP RELENG_4_4 src
Σημείωση: Οι ετικέτες RELENG_* είναι δεσμευμένες για χρήση από τους CVS-meisters και την ομάδα των εκδόσεων.

Πριν μπει η ετικέτα, μεταγλωττιστεί και ετοιμαστεί η τελική έκδοση, πρέπει να γίνουν αλλαγές στα παρακάτω αρχεία για να περιέχουν τον σωστό αριθμό έκδοσης για το FreeBSD:
doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml
doc/share/sgml/freebsd.ent
src/Makefile.inc
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/share/misc/bsd-family-tree
src/sys/conf/newvers.sh
src/sys/sys/param.h
www/en/releases/*
www/en/docs.sgml
www/en/cgi/ports.cgi
Οι σημειώσεις έκδοσης και τα αρχεία με τις διορθώσεις της τελευταίας στιγμής πρέπει επίσης να προσαρμοστούν στην νέα έκδοση (στον κορμό της έκδοσης) και να επεξεργαστούν κατάλληλα (στους δύο κορμούς 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.
Όταν η τελική έκδοση είναι έτοιμη, η παρακάτω εντολή θα δημιουργήσει την ετικέτα RELENG_4_4_0_RELEASE.
/usr/src# cvs rtag -rRELENG_4_4 RELENG_4_4_0_RELEASE src
Οι υπεύθυνοι της Τεκμηρίωσης και των Ports είναι αυτοί που πρέπει να δημιουργήσουν τις ετικέτες RELEASE_4_4_0 στα κατάλληλα δέντρα πηγαίου κώδικα.
Μερικές φορές, μπορεί να χρειαστεί να γίνουν κάποιες αλλαγές τελευταία στιγμή μετά την τοποθέτηση των ετικετών. Γενικά, δεν είναι δύσκολο να γίνει κάτι τέτοιο αφού το CVS επιτρέπει να μετακινήσει κάποιος τις ετικέτες με εντολές όπως cvs tag -d tagname filename. Είναι πολύ σημαντικό όμως αυτές οι αλλαγές της τελευταίας στιγμής να σημειωθούν με τις σωστές ετικέτες για την συγκεκριμένη έκδοση. Οι επίσημες εκδόσεις του FreeBSD πρέπει να είναι πάντα εύκολο να αναπαραχθούν. Τοπικές αλλαγές στο περιβάλλον του μηχανικού των εκδόσεων δεν επιτρέπονται.