(create with original fedora_release_life_cycle content) |
(update with content from jkurik's draft, to allow diffing) |
||
Line 7: | Line 7: | ||
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 [[Fedora Release Criteria]], and releases will be delayed if this is not the case. | 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 [[Fedora Release Criteria]], and releases will be delayed if this is not the case. | ||
The schedule for the release currently under development, {{FedoraVersion|full|next}}, is on its [[Releases/{{FedoraVersion||next}}/Schedule| release schedule]] page. | The schedule for the release currently under development, {{FedoraVersion|full|next}}, is on its [[Releases/{{FedoraVersion||next}}/Schedule| release schedule]] page. Beta, and General Availability (final) releases happen at 14:00 UTC. | ||
=== Development Planning === | === Development Planning === | ||
Line 15: | Line 15: | ||
=== Development Process === | === Development Process === | ||
Fedora uses a system involving two 'development' trees. [[Releases/Rawhide|Rawhide]] is a constantly rolling development tree. No releases are built directly from Rawhide. | Fedora uses a system involving two 'development' trees. [[Releases/Rawhide|Rawhide]] is a constantly rolling development tree. No releases are built directly from Rawhide. Approximately 10 weeks before the planned date of a Fedora release, a tree for that release is "[[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. | ||
{{admon/tip|Birth of a Fedora|This means that development of a Fedora release is considered to begin at the time its ''predecessor'' branches from Rawhide. For instance, development on {{FedoraVersion|long|next}} began the day after {{FedoraVersion|long}} branched from Rawhide and entered the stabilization process.}} | {{admon/tip|Birth of a Fedora|This means that development of a Fedora release is considered to begin at the time its ''predecessor'' branches from Rawhide. For instance, development on {{FedoraVersion|long|next}} began the day after {{FedoraVersion|long}} branched from Rawhide and entered the stabilization process.}} | ||
After the [[Updates Policy#Bodhi enabling|Bodhi | After the [[Updates Policy#Bodhi enabling|Bodhi activation 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 [[Updates Policy]]. Packages must go through the [[Repositories#updates-testing|''updates-testing'']] repository for the release before entering its [[Repositories#stable|''stable'']] repository, according to rules defined in the updates policy: these rules tighten gradually from Beta through to post-GA (Final), but the basic process does not change. | ||
For some time prior to a milestone ( | For some time prior to a milestone (Beta, Final) release a [[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 === | ||
Line 27: | Line 27: | ||
Fedora release schedules are proposed by the [[Fedora_Program_Management|Fedora Program Manager]] and ratified by the [[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. | Fedora release schedules are proposed by the [[Fedora_Program_Management|Fedora Program Manager]] and ratified by the [[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. | ||
''Note: When referring to '''Beta/Final Target #N''', we refer to an exactly planned date. When referring to '''Beta/Final release''' only, we refer to a date the release actually happened.'' | |||
{|border="1" | {|border="1" | ||
Line 35: | Line 34: | ||
| Planning and Development || ''Branch point'' of ''previous release'' plus '''one day''' || Variable | | Planning and Development || ''Branch point'' of ''previous release'' plus '''one day''' || Variable | ||
|- | |- | ||
| [[Changes/Policy#For_Developers|Changes Checkpoint | | [[Changes/Policy#For_Developers|Changes Checkpoint: Proposal deadline for Changes requiring ''Mass rebuild'']] || Tue: ''Mass rebuild'' minus '''3 weeks''' || n/a | ||
|- | |- | ||
| [[ | | [[Changes/Policy#For_Developers|Changes Checkpoint: Proposal deadline for System Wide Changes]] || Tue: ''Mass rebuild'' minus '''1 week''' || n/a | ||
|- | |- | ||
| | | style="background:lightgrey;" | '''Mass rebuild''' || ''Branch point'' minus '''5 weeks''' || Until ''Branch point'' | ||
|- | |- | ||
| [[ | | [[Changes/Policy#For_Developers|Changes Checkpoint: Proposal deadline for Self Contained Changes]] || Tue: ''Branch point'' minus '''3 weeks''' || n/a | ||
|- | |- | ||
| | | style="background:lightgrey;" | '''[[Releases/Branched|Branch point]]''' || Tue: ''Beta Release Target #1'' minus '''5 weeks''' || n/a | ||
|- | |- | ||
| [[ | | [[Changes/Policy#For_Developers|Changes Checkpoint: Completion deadline (testable)]] || Tue: '''Same day''' as ''Branch point'' || N/A | ||
|- | |- | ||
| | | String Freeze || Tue: ''Branch point'' plus '''1 week''' || [[Software String Freeze Policy]] in effect until ''GA Release'' | ||
|- | |- | ||
| | | [[Updates Policy#Bodhi activation|Bodhi activation point]] || Tue: ''Beta Release Target #1'' minus '''3 weeks''', ''Beta Freeze'' minus '''1 week''' || [[Bodhi]] enabled and [[Updates_Policy]] requirements in effect until ''EOL'' | ||
|- | |- | ||
| [[ | | [[Milestone freezes | Beta Freeze]] || Tue: ''Beta Release Target #1'' minus '''2 weeks''' || [[QA:SOP_freeze_exception_bug_process]] and [[QA:SOP_blocker_bug_process]] in effect until ''Beta Release'' | ||
|- | |- | ||
| [[ | | [[Changes/Policy#For_Developers|Changes Checkpoint: 100% code complete deadline ]] || Tue: '''Same day''' as ''Beta Freeze'' || N/A | ||
|- | |- | ||
| [[QA:SOP_compose_request|Beta release candidates]] || Any time after ''Beta Freeze'' || Until ''Beta Release'' | | [[QA:SOP_compose_request|Beta release candidates]] || Any time after ''Beta Freeze'' || Until ''Beta Release'' | ||
|- | |- | ||
| 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 [[Go_No_Go_Meeting]] || '''Thu''' @ 13:00 E{D,S}T: planned ''Beta Release'' '''minus five days''' (repeats if No-Go) || n/a | ||
|- | |- | ||
| | | style="background:lightgrey;" | '''Beta Release Target #1'''|| Tue: ''GA Release Target #1'' minus '''5 weeks''' || Live until ''GA release'' | ||
|- | |- | ||
| | | Beta Release Target #2|| Tue: ''Beta Release Target #1'' plus '''1 week''', ''GA Release Target #1'' minus '''4 weeks''' || n/a | ||
|- | |- | ||
| [[Milestone freezes | Final Freeze]] || Tue: ''Final Release'' minus '''2 | | [[Milestone freezes | Final Freeze]] || Tue: ''Final Release Target #1'' minus '''2 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'' | | [[QA:SOP_compose_request|Final release candidates]] || Any time after ''Final Freeze'' || Until ''GA Release'' | ||
Line 75: | Line 68: | ||
| Final [[Go_No_Go_Meeting]] || '''Thu''' @ 13:00 E{D,S}T: planned ''GA Release'' '''minus five days''' (repeats if No-Go) || n/a | | 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 | | style="background:lightgrey;" | '''GA Release Target #1''' || Tue: '''Primary date''' from which rest of schedule derives<br>This date is either the Tuesday before May 1st or October 31st. || n/a | ||
|- | |||
| GA Release Target #2 || Tue: ''GA Release Target #1'' plus '''1 week''' || n/a | |||
|- | |- | ||
| Maintenance || Tue: '''Same day''' as ''GA release'' || ~'''13 Months''' | | Maintenance || Tue: '''Same day''' as ''GA release'' || ~'''13 Months''' | ||
Line 82: | Line 77: | ||
|- | |- | ||
|} | |} | ||
=== 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 [[FESCo | Fedora Engineering Steering Committee (FESCo)]]. | 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 for avoiding significant holiday breaks. Changes to this standard must be approved by the community-elected [[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. | 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. | 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. | ||
Please rephrase the immediate preceding sentence. | |||
=== Schedule Contingency Planning === | === Schedule Contingency Planning === | ||
If ''Mass rebuild'' is not completed on time, all the subsequent milestones starting with ''Branch point'' are pushed back for one week until the ''Mass rebuild'' is completed. | |||
If the Beta [[Go_No_Go_Meeting]] results in a "No Go" determination, rescheduling of the milestone and subsequent milestones follows these rules: | |||
* Slip of the Beta from Target #1 to Target #2 does not affect Final GA Release date. The Final GA Release date remains on ''GA Release Target #1''. | |||
* Slip of the Beta to Target #2 adds a new ''Beta Release Target #3'' and Final GA Release slips to ''GA Release Target #2'' (and we don't yet add a ''GA Release Target #3''). | |||
* Slip of the Beta past Target #N (where N >= 3) adds a new ''Beta Release Target #(N+1)'' and also adds a new ''GA Release Target #N'' | |||
If the | If the Final [[Go_No_Go_Meeting]] results 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. | 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 correspond to 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 [[Fedora_Engineering_Steering_Committee|FESCo]], [[ReleaseEngineering|Release Engineering]], and [[QA|Quality Assurance]]. | Go/No Go meetings receive input from representatives of [[Fedora_Engineering_Steering_Committee|FESCo]], [[ReleaseEngineering|Release Engineering]], and [[QA|Quality Assurance]]. | ||
Line 126: | Line 114: | ||
Fedora is [[Objectives | focused]] on free and open source software [[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. | Fedora is [[Objectives | focused]] on free and open source software [[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. | Historically, the Fedora Project has found that 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 | When a release reaches the point where it is no longer supported when no 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 [[End of life SOP]]. | The tasks performed at EOL are documented in the [[End of life SOP]]. |
Latest revision as of 22:28, 14 November 2017
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
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 tested for compliance with the Fedora Release Criteria, and releases will be delayed if this is not the case.
The schedule for the release currently under development, Fedora 42, is on its release schedule page. Beta, and General Availability (final) releases happen at 14:00 UTC.
Development Planning
Fedora development planning is handled by the Release Planning Process. So-called Changes are proposed, initially reviewed, and monitored through the development process by the engineering steering committee.
Development Process
Fedora uses a system involving two 'development' trees. Rawhide is a constantly rolling development tree. No releases are built directly from Rawhide. Approximately 10 weeks before the planned date of a Fedora release, a tree for that release is "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 Bodhi activation 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 Updates Policy. Packages must go through the updates-testing repository for the release before entering its stable repository, according to rules defined in the updates policy: these rules tighten gradually from Beta through to post-GA (Final), but the basic process does not change.
For some time prior to a milestone (Beta, Final) release a freeze is in effect which prevents packages moving from updates-testing to stable except in accordance with the blocker and 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
Fedora release schedules are proposed by the Fedora Program Manager and ratified by the 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.
Note: When referring to Beta/Final Target #N, we refer to an exactly planned date. When referring to Beta/Final release only, we refer to a date the release actually happened.
Task/Milestone | Start Day (Tuesdays or Thursdays) | Length |
---|---|---|
Planning and Development | Branch point of previous release plus one day | Variable |
Changes Checkpoint: Proposal deadline for Changes requiring Mass rebuild | Tue: Mass rebuild minus 3 weeks | n/a |
Changes Checkpoint: Proposal deadline for System Wide Changes | Tue: Mass rebuild minus 1 week | n/a |
Mass rebuild | Branch point minus 5 weeks | Until Branch point |
Changes Checkpoint: Proposal deadline for Self Contained Changes | Tue: Branch point minus 3 weeks | n/a |
Branch point | Tue: Beta Release Target #1 minus 5 weeks | n/a |
Changes Checkpoint: Completion deadline (testable) | Tue: Same day as Branch point | N/A |
String Freeze | Tue: Branch point plus 1 week | Software String Freeze Policy in effect until GA Release |
Bodhi activation point | Tue: Beta Release Target #1 minus 3 weeks, Beta Freeze minus 1 week | Bodhi enabled and Updates_Policy requirements in effect until EOL |
Beta Freeze | Tue: Beta Release Target #1 minus 2 weeks | QA:SOP_freeze_exception_bug_process and QA:SOP_blocker_bug_process in effect until Beta Release |
Changes Checkpoint: 100% code complete deadline | Tue: Same day as Beta Freeze | N/A |
Beta release candidates | Any time after Beta Freeze | Until Beta Release |
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 Target #1 | Tue: GA Release Target #1 minus 5 weeks | Live until GA release |
Beta Release Target #2 | Tue: Beta Release Target #1 plus 1 week, GA Release Target #1 minus 4 weeks | n/a |
Final Freeze | Tue: Final Release Target #1 minus 2 weeks | QA:SOP_freeze_exception_bug_process and QA:SOP_blocker_bug_process in effect until GA Release |
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 Target #1 | Tue: Primary date from which rest of schedule derives This date is either the Tuesday before May 1st or October 31st. |
n/a |
GA Release Target #2 | Tue: GA Release Target #1 plus 1 week | 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 |
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 for avoiding significant holiday breaks. Changes to this standard must be approved by the community-elected 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 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.
Please rephrase the immediate preceding sentence.
Schedule Contingency Planning
If Mass rebuild is not completed on time, all the subsequent milestones starting with Branch point are pushed back for one week until the Mass rebuild is completed.
If the Beta Go_No_Go_Meeting results in a "No Go" determination, rescheduling of the milestone and subsequent milestones follows these rules:
- Slip of the Beta from Target #1 to Target #2 does not affect Final GA Release date. The Final GA Release date remains on GA Release Target #1.
- Slip of the Beta to Target #2 adds a new Beta Release Target #3 and Final GA Release slips to GA Release Target #2 (and we don't yet add a GA Release Target #3).
- Slip of the Beta past Target #N (where N >= 3) adds a new Beta Release Target #(N+1) and also adds a new GA Release Target #N
If the Final Go_No_Go_Meeting results 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 correspond to 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 FESCo, Release Engineering, and Quality Assurance.
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:
- Fedora 40 will be maintained until 1 month after the release of Fedora 42.
- Fedora 41 will be maintained until 1 month after the release of Fedora 43.
Maintenance Schedule Rationale
Fedora is focused on free and open source software 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 that supporting two releases plus Rawhide and the pre-release Branched code to be a manageable work load.
End of Life (EOL)
When a release reaches the point where it is no longer supported when no 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 End of life SOP.
Additional Release Schedule Information
- Overview of Releases, including currently supported releases
- Unsupported Releases
- Historical Release Information