mirror of
https://pagure.io/fedora-docs/quick-docs.git
synced 2024-11-24 21:35:17 +00:00
330 lines
13 KiB
Text
330 lines
13 KiB
Text
= Fedora Release Life Cycle
|
|
|
|
'''
|
|
|
|
[IMPORTANT]
|
|
======
|
|
|
|
This page was automatically converted from https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle
|
|
|
|
It is probably
|
|
|
|
* Badly formatted
|
|
* Missing graphics and tables that do not convert well from mediawiki
|
|
* Out-of-date
|
|
* In need of other love
|
|
|
|
Please fix it, remove this notice, and then add to `_topic_map.yml`
|
|
|
|
Pull requests accepted at https://pagure.io/fedora-docs/quick-docs
|
|
|
|
Once that is live, go to the original wiki page and add an `{{old}}`
|
|
tag, followed by a note like
|
|
|
|
....
|
|
{{admon/note|This page has a new home!|
|
|
This wiki page is no longer maintained. Please find the up-to-date
|
|
version at: https://docs.fedoraproject.org/whatever-the-url
|
|
}}
|
|
....
|
|
|
|
======
|
|
|
|
'''
|
|
|
|
|
|
The Fedora Project releases a new version of Fedora approximately every
|
|
6 months and provides updated packages (maintenance) to these releases
|
|
for approximately 13 months. This allows users to "skip a release" while
|
|
still being able to always have a system that is still receiving
|
|
updates.
|
|
|
|
[[development-schedule]]
|
|
Development Schedule
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
We say _approximately every 6 months_ because like many things, they
|
|
don't always go exactly as planned. The schedule is not strictly
|
|
time-based, but a hybrid of time and quality. The milestone releases are
|
|
QA:Release_validation_test_plan[tested] for compliance with the
|
|
link:Fedora_Release_Criteria[Fedora Release Criteria], and releases will
|
|
be delayed if this is not the case.
|
|
|
|
The schedule for the release currently under development, , is on its
|
|
link:Releases/{{FedoraVersion[|next}}/Schedule| release schedule] page.
|
|
Alpha, Beta, and General Availability (final) releases happen at 14:00
|
|
UTC.
|
|
|
|
[[development-planning]]
|
|
Development Planning
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Fedora development planning is handled by the
|
|
link:Changes/Policy[Release Planning Process]. So-called _Changes_ are
|
|
proposed, initially reviewed, and monitored through the development
|
|
process by the link:Fedora_Engineering_Steering_Committee[engineering
|
|
steering committee].
|
|
|
|
[[development-process]]
|
|
Development Process
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
Fedora uses a system involving two 'development' trees.
|
|
link:Releases/Rawhide[Rawhide] is a constantly rolling development tree.
|
|
No releases are built directly from Rawhide. 14 weeks before the planned
|
|
date of a Fedora release, a tree for that release is
|
|
"link:Releases/Branched[Branched]" from the Rawhide tree. At that point
|
|
the Rawhide tree is moving towards the release _after_ the new Branched
|
|
release, and the pending release is stabilized in the Branched tree.
|
|
|
|
After the link:Updates_Policy#Bodhi_enabling[Bodhi enabling point], the
|
|
Bodhi system is permanently active on the Branched release (all the way
|
|
until it goes EOL), and requirements for updates to be marked as
|
|
_stable_ are set out in the link:Updates_Policy[Updates Policy].
|
|
Packages must go through the
|
|
link:Repositories#updates-testing[_updates-testing_] repository for the
|
|
release before entering its link:Repositories#stable[_stable_]
|
|
repository, according to rules defined in the updates policy: these
|
|
rules tighten gradually from Alpha through to post-GA (Final), but the
|
|
basic process does not change.
|
|
|
|
For some time prior to a milestone (Alpha, Beta, Final) release a
|
|
link:Milestone_freezes[freeze] is in effect which prevents packages
|
|
moving from _updates-testing_ to _stable_ except in accordance with the
|
|
QA:SOP_blocker_bug_process[blocker] and
|
|
QA:SOP_freeze_exception_bug_process[freeze exception] bug policies. This
|
|
freeze is lifted once the milestone is finished, and so packages begin
|
|
to move from _updates-testing_ to _stable_ as normal again, until the
|
|
next milestone's freeze date.
|
|
|
|
[[schedule-methodology]]
|
|
Schedule Methodology
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Fedora release schedules are proposed by the
|
|
link:Fedora_Program_Management[Fedora Program Manager] and ratified by
|
|
the link:FESCo[ Fedora Engineering Steering Committee (FESCo)], with
|
|
input from other groups. FESCo is responsible for overseeing the
|
|
technical direction of the Fedora distribution. A core schedule is
|
|
created using the key tasks listed below. Detailed team schedules are
|
|
built around these dates.
|
|
|
|
[cols=",,",options="header",]
|
|
|=======================================================================
|
|
|Task/Milestone |Start Day (Tuesdays or Thursdays) |Length
|
|
|Planning and Development |_Branch point_ of _previous release_ plus
|
|
*one day* |Variable
|
|
|
|
|link:Changes/Policy#For_Developers[Changes Checkpoint #1: Proposal
|
|
deadline] |Tue: _Branch point_ minus *3 months* |n/a
|
|
|
|
|link:Releases/Branched[Branch point] |Tue: _Alpha Freeze_ minus *2
|
|
weeks* |n/a
|
|
|
|
|link:Changes/Policy#For_Developers[Changes Checkpoint #2: Feature
|
|
completion deadline] |Tue: *Same day* as _Branch point_ |N/A
|
|
|
|
|QA:SOP_compose_request[Alpha test composes] |Any time after _Branch
|
|
point_ |Until _Alpha release candidates_
|
|
|
|
|link:Milestone_freezes[ Alpha Freeze] |Tue: _Alpha Release_ minus *2
|
|
weeks* |QA:SOP_freeze_exception_bug_process and
|
|
QA:SOP_blocker_bug_process in effect until _Alpha Release_
|
|
|
|
|link:Updates_Policy#Bodhi_activation[Bodhi activation point] |Tue:
|
|
*Same day* as _Alpha Freeze_ |Bodhi enabled and Updates_Policy
|
|
requirements in effect until _EOL_
|
|
|
|
|String Freeze |Tue: *Same day* as _Alpha Freeze_
|
|
|link:Software_String_Freeze_Policy[Software String Freeze Policy] in
|
|
effect until _GA Release_
|
|
|
|
|QA:SOP_compose_request[Alpha release candidates] |Any time after _Alpha
|
|
Freeze_ |Until _Alpha Release_
|
|
|
|
|Alpha Go_No_Go_Meeting |*Thu* @ 13:00 E\{D,S}T: planned _Alpha Release_
|
|
*minus five days* (repeats if No-Go) |n/a
|
|
|
|
|Alpha Release |Tue: _Beta Release_ minus *5 weeks*, _Alpha Freeze_ plus
|
|
*2 weeks* |Live until _Beta Release_
|
|
|
|
|QA:SOP_compose_request[Beta test composes] |Tue: _Beta Freeze_ minus *2
|
|
weeks*, _Alpha Release_ plus *1 week* |Until _Beta release candidates_
|
|
|
|
|link:Milestone_freezes[ Beta Freeze] |Tue: _Beta Release_ minus *2
|
|
weeks*, _Alpha Release_ plus *3 weeks*
|
|
|QA:SOP_freeze_exception_bug_process and QA:SOP_blocker_bug_process in
|
|
effect until _Beta Release_
|
|
|
|
|QA:SOP_compose_request[Beta release candidates] |Any time after _Beta
|
|
Freeze_ |Until _Beta Release_
|
|
|
|
|link:Changes/Policy#For_Developers[Changes Checkpoint #3: 100% code
|
|
complete deadline ] |Tue: *Same day* as _Beta Freeze_ |N/A
|
|
|
|
|Beta Go_No_Go_Meeting |*Thu* @ 13:00 E\{D,S}T: planned _Beta Release_
|
|
*minus five days* (repeats if No-Go) |n/a
|
|
|
|
|Beta Release |Tue: _Beta Freeze_ plus *2 weeks*, _GA Release_ minus *5
|
|
weeks* |Live until _GA release_
|
|
|
|
|QA:SOP_compose_request[Final test composes] |Tue: _Final Freeze_ minus
|
|
*2 weeks*, _Beta Release_ plus *1 week* |Until _Final release
|
|
candidates_
|
|
|
|
|link:Milestone_freezes[ Final Freeze] |Tue: _Final Release_ minus *2
|
|
weeks*, _Beta Release_ plus *3 weeks*
|
|
|QA:SOP_freeze_exception_bug_process and QA:SOP_blocker_bug_process in
|
|
effect until _GA Release_
|
|
|
|
|QA:SOP_compose_request[Final release candidates] |Any time after _Final
|
|
Freeze_ |Until _GA Release_
|
|
|
|
|Final Go_No_Go_Meeting |*Thu* @ 13:00 E\{D,S}T: planned _GA Release_
|
|
*minus five days* (repeats if No-Go) |n/a
|
|
|
|
|GA Release |Tue: *Primary date* from which rest of schedule derives
|
|
|n/a
|
|
|
|
|Maintenance |Tue: *Same day* as _GA release_ |~**13 Months**
|
|
|
|
|End of Life |_GA of next-but-one release_ plus *one month* |n/a
|
|
|=======================================================================
|
|
|
|
[[steps-to-construct-a-new-schedule]]
|
|
Steps to Construct a New Schedule
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
This is admittedly an unusual methodology, but it is fairly easy to
|
|
generate using the the
|
|
[https://fedorapeople.org/groups/schedule/f-%7B%7BFedoraVersionNumber%7Cnext%7D}
|
|
TaskJuggler schedules] the Fedora Program Manager maintains.
|
|
|
|
1. Pick _GA release_ date (the Tuesday before May 1st or October 31st)
|
|
* Check with Fedora PR to ensure that planned dates do not conflict with
|
|
other ecosystem planned events (so we get the maximum press benefit)
|
|
2. Work backwards using consistent spacing for freezes, composes, and
|
|
releases for Alpha, Beta, and Final, as described above, to the _Branch
|
|
point_
|
|
3. Set the link:Changes/Policy[change proposal checkpoint/deadline]
|
|
working backwards from the _Branch point_
|
|
4. The time before the _change proposal checkpoint/deadline_ and after
|
|
the _Branch point of the previous release_ is the time dedicated to
|
|
_development_
|
|
* Development time varies from from release to release based on when the
|
|
previous release branched
|
|
* The stabilization and testing time (from _Branch point_ until _GA
|
|
release_) is held constant from release to release
|
|
|
|
Schedule draft is submitted to FESCo via its ticketing system for the
|
|
approval. Initially, all milestones except "Change Checkpoint: Proposal
|
|
submission deadline (System Wide Changes)" are scheduled as so called
|
|
"no earlier than". Final schedule is set after the FESCo's review of
|
|
proposed and accepted Changes proposals and "no earlier than" note is
|
|
removed from schedule. This gives us opportunity to properly plan
|
|
release, especially for changes with high impact on the release.
|
|
|
|
[[development-schedule-rationale]]
|
|
Development Schedule Rationale
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Fedora generally develops new releases over a six month period to
|
|
provide a regular and predictable release schedule. The bi-annual
|
|
targeted release dates are _May Day_ (May 1st) and _Halloween_ (October
|
|
31) making them easy to remember and avoiding significant holiday
|
|
breaks. Changes to this standard must be approved by the
|
|
community-elected link:FESCo[ Fedora Engineering Steering Committee
|
|
(FESCo)].
|
|
|
|
A six month release schedule also follows the precedence of Red Hat
|
|
Linux (precursor to Fedora). Former Red Hat software engineer Havoc
|
|
Pennington offers a historical perspective
|
|
http://article.gmane.org/gmane.linux.redhat.fedora.advisory-board/1475/[here].
|
|
GNOME started following a time based release based on the ideas and
|
|
success of Red Hat Linux and other distributions following Fedora having
|
|
adopted a similar release cycle. Several other major components,
|
|
including the Linux kernel, Openoffice.org, Xorg, have started following
|
|
a time based release schedule. While the exact release schedules vary
|
|
between these components and other upstream projects, the interactions
|
|
between these components and Fedora makes a six month time based release
|
|
schedule a good balance.
|
|
|
|
Although due to how planning process and release validation works,
|
|
Fedora is not a strictly time based distribution but uses combination of
|
|
both time and feature based release paradigms. This way we can react to
|
|
bigger changes aka new installed, way how we release bits (Fedora.Next)
|
|
etc.
|
|
|
|
[[schedule-contingency-planning]]
|
|
Schedule Contingency Planning
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
If the Alpha, Beta, or Final link:Go_No_Go_Meeting[Go_No_Go_Meetings]
|
|
result in a "No Go" determination, that milestone and subsequent
|
|
milestones will be pushed back by one week.
|
|
|
|
One week is added to the schedule to maintain the practice of releasing
|
|
on Tuesdays. Tuesdays are the designated release day because they are
|
|
good days for news coverage and the established day we synchronize our
|
|
content with the mirrors that carry our releases. Be aware of holidays
|
|
and of possible PR conflicts (contact Fedora PR) with the new proposed
|
|
final date.
|
|
|
|
Go/No Go meetings receive input from representatives of
|
|
link:Fedora_Engineering_Steering_Committee[FESCo],
|
|
link:ReleaseEngineering[Release Engineering], and link:QA[Quality
|
|
Assurance].
|
|
|
|
[[maintenance-schedule]]
|
|
Maintenance Schedule
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
We say maintained for _approximately 13 months_ because the supported
|
|
period for releases is dependent on the date the release under
|
|
development goes final. As a result, _Release X_ is supported until one
|
|
month after the release of _Release X+2_.
|
|
|
|
This translates into:
|
|
|
|
* will be maintained until 1 month after the release of .
|
|
* will be maintained until 1 month after the release of .
|
|
|
|
[[maintenance-schedule-rationale]]
|
|
Maintenance Schedule Rationale
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
Fedora is link:Objectives[ focused] on free and open source software
|
|
link:Red_Hat_contributions[ innovations] and moves quickly. If you want
|
|
a distribution that moves slower but has a longer lifecycle, Red Hat
|
|
Enterprise Linux, which is derivative of Fedora or free rebuilds of that
|
|
such as CentOS might be more suitable for you. Refer to the RHEL page
|
|
for more details.
|
|
|
|
Historically, the Fedora Project has found supporting two releases plus
|
|
Rawhide and the pre-release Branched code to be a manageable work load.
|
|
|
|
[[end-of-life-eol]]
|
|
End of Life (EOL)
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
When a release reaches the point where it is no longer supported nor
|
|
updates are created for it, then it is considered _End of Life_ (EOL).
|
|
Branches for new packages in the SCM are not allowed for distribution X
|
|
after the Fedora X+2 release and new builds are no longer allowed.
|
|
|
|
The tasks performed at EOL are documented in the
|
|
link:End_of_life_SOP[End of life SOP].
|
|
|
|
[[additional-release-schedule-information]]
|
|
Additional Release Schedule Information
|
|
---------------------------------------
|
|
|
|
* Overview of Releases, including currently supported releases
|
|
* link:End_of_life[ Unsupported Releases]
|
|
* link:Releases/HistoricalSchedules[ Historical Release Information]
|
|
|
|
Category:Distribution
|
|
'''
|
|
|
|
See a typo, something missing or out of date, or anything else which can be
|
|
improved? Edit this document at https://pagure.io/fedora-docs/quick-docs.
|