140 lines
6.6 KiB
Text
140 lines
6.6 KiB
Text
[[overview]]
|
|
== Fedora Release Engineering Overview
|
|
|
|
[[overview-intro]]
|
|
=== Introduction
|
|
|
|
The development of Fedora is a very open process, involving over a
|
|
thousand package maintainers (along with testers, translators,
|
|
documentation writers and so forth). These maintainers are responsible
|
|
for the bulk of Fedora distribution development. An elected
|
|
https://fedoraproject.org/wiki/Fedora_Engineering_Steering_Committee[committee
|
|
of people] provides some level of direction over the engineering aspects
|
|
of the project.
|
|
|
|
The rapid pace of Fedora development leaves little time for polishing
|
|
the development system into a quality release. To solve this dilemma,
|
|
the Fedora project makes use of regular freezes and milestone (Alpha,
|
|
Beta, Final) releases of the distribution, as well as "branching" of our
|
|
trees to maintain different strains of development.
|
|
|
|
Stable branches of the Fedora tree and associated
|
|
https://fedoraproject.org/wiki/Repositories[Repositories] are maintained
|
|
for each Fedora release. The
|
|
https://fedoraproject.org/wiki/Releases/Rawhide[Rawhide] rolling
|
|
development tree is the initial entry point for all Fedora development,
|
|
and the trunk from which all branches diverge. Releases are
|
|
https://fedoraproject.org/wiki/Releases/Branched[Branched] from Rawhide
|
|
some time before they are sent out as stable releases, and the milestone
|
|
releases (Alpha, Beta and Final) are all built from this Branched tree.
|
|
|
|
Nightly snapshot images of various kinds are built from Rawhide and
|
|
Branched (when it exists) and made available for download from within
|
|
the trees on the https://mirrors.fedoraproject.org/[mirrors] or from the
|
|
https://fedoraproject.org/wiki/Koji[Koji] build system.
|
|
|
|
The https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle[Fedora
|
|
Release Life Cycle] page is a good entry point for more details on these
|
|
processes. Some other useful references regarding the Fedora release
|
|
process include:
|
|
|
|
* The https://fedoraproject.org/wiki/Changes/Policy[Release planning
|
|
process]
|
|
* The
|
|
https://fedoraproject.org/wiki/QA:Release_validation_test_plan[release
|
|
validation test plan]
|
|
* The https://fedoraproject.org/wiki/QA:Updates_Testing[updates-testing
|
|
process], via https://fedoraproject.org/wiki/Bodhi[Bodhi] and the
|
|
https://fedoraproject.org/wiki/Updates_Policy[Updates Policy]
|
|
* The https://fedoraproject.org/wiki/QA:SOP_compose_request[test compose
|
|
and release candidate system]
|
|
* The https://fedoraproject.org/wiki/QA:SOP_blocker_bug_process[blocker
|
|
bug process] and
|
|
https://fedoraproject.org/wiki/QA:SOP_freeze_exception_bug_process[freeze
|
|
exception bug process]
|
|
* The [.title-ref]#Repositories#
|
|
* The https://fedoraproject.org/wiki/Bugs_and_feature_requests[Bugzilla
|
|
system]
|
|
|
|
=== Final Release Checklist
|
|
|
|
Various tasks need to be accomplished prior to a final Fedora release.
|
|
Release Engineering is responsible for many of them, as outlined here.
|
|
|
|
==== Release Announcement
|
|
|
|
The https://fedoraproject.org/wiki/Docs_Project[Fedora Documentation
|
|
Project] prepares release announcements for the final releases. A
|
|
https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Documentation&op_sys=Linux&target_milestone=---&bug_status=NEW&version=devel&component=release-notes&rep_platform=All&priority=normal&bug_severity=normal&assigned_to=relnotes%40fedoraproject.org&cc=&estimated_time_presets=0.0&estimated_time=0.0&bug_file_loc=http%3A%2F%2F&short_desc=RELNOTES%20-%20Summarize%20the%20release%20note%20suggestion%2Fcontent&comment=Provide%20details%20here.%20%20Do%20not%20change%20the%20blocking%20bug.&status_whiteboard=&keywords=&issuetrackers=&dependson=&blocked=151189&ext_bz_id=0&ext_bz_bug_id=&data=&description=&contenttypemethod=list&contenttypeselection=text%2Fplain&contenttypeentry=&maketemplate=Remember%20values%20as%20bookmarkable%20template&form_name=enter_bug[bug
|
|
needs to be filed] for this two weeks before the final release date.
|
|
|
|
==== Mirror List Files
|
|
|
|
A new set of mirror list files need to be created for the new release.
|
|
Email mailto:mirror-admin@fedoraproject.org[Fedora Mirror Admins] to
|
|
have these files created. These should be created at the Final Freeze
|
|
point but may redirect to Rawhide until final bits have been staged.
|
|
|
|
=== Release Composing
|
|
|
|
Fedora “releases” can be built by anyone with a fast machine of proper
|
|
arch and access to a package repository. All of the tools necessary to
|
|
build a release are available from the package repository. These tools
|
|
aim to provide a consistent way to build Fedora releases. A complete
|
|
release can actually be built with only a couple commands, including the
|
|
creation of network install images, offline install images ('DVDs'),
|
|
live images, disk images, install repositories, [[FedUp]] upgrade
|
|
images, and other bits. These commands are named pungi and
|
|
livecd-creator.
|
|
|
|
[NOTE]
|
|
====
|
|
There is work currently being done to replace livecd-creator with
|
|
https://github.com/rhinstaller/lorax/blob/master/src/sbin/livemedia-creator[livemedia-creator].
|
|
====
|
|
|
|
==== Pungi
|
|
|
|
https://pagure.io/pungi[Pungi] is the tool used to compose Fedora
|
|
releases. It requires being ran in a chroot of the package set that it
|
|
is composing. This ensures that the correct userland tools are used to
|
|
match up with the kernel that will be used to perform the installation.
|
|
It uses a comps file + yum repos to gather packages for the compose. The
|
|
https://fedoraproject.org/wiki/Koji[Koji] build system provides a way to
|
|
run tasks within chroots on the various arches, as well as the ability
|
|
to produce yum repos of packages from specific collections.
|
|
|
|
==== Livecd-creator
|
|
|
|
Livecd-creator is part of the
|
|
https://fedoraproject.org/wiki/FedoraLiveCD[livecd-tools] package in
|
|
Fedora and it is used to compose the live images as part of the Fedora
|
|
release. It is also used to compose many of the custom
|
|
https://spins.fedoraproject.org[Spins] or variants of Fedora.
|
|
|
|
=== Distribution
|
|
|
|
Once a compose has been completed, the composed tree of release media,
|
|
installation trees, and frozen
|
|
https://fedoraproject.org/wiki/Repositories[Repositories] needs to be
|
|
synchronized with the Fedora mirror system. [[MirrorManager]] has some
|
|
more details on the mirror system. Many of the images are also offered
|
|
via BitTorrent as an alternative method of downloading.
|
|
|
|
==== Download Mirrors
|
|
|
|
Depends on the Fedora Mirror System and infrastructure to populate them
|
|
privately.
|
|
|
|
==== BitTorrent
|
|
|
|
BitTorrent is currently served by http://torrent.fedoraproject.org.
|
|
Images are added to the system via this
|
|
https://infrastructure.fedoraproject.org/infra/docs/docs/sysadmin-guide/sops/torrentrelease.rst[Standard
|
|
Operating Procedure].
|
|
|
|
=== Acknowledgements
|
|
|
|
This document was influenced by
|
|
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/releng/article.html[release
|
|
engineering documents] from http://freebsd.org[FreeBSD].
|