Fedora Release Life Cycle

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(Schedule Contingency Planning)
 
(40 intermediate revisions by 6 users not shown)
Line 5: Line 5:
 
== Development Schedule ==
 
== Development Schedule ==
  
We say developed and released ''approximately every 6 months'' because like many things, they don't always go exactly as planned.
+
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. Alpha, Beta, and General Availability (final) releases happen at 10:00am Eastern US Time, which is either 1500UTC or 1400UTC depending on whether or not daylight savings is in effect.
 
The schedule for the release currently under development, {{FedoraVersion|full|next}}, is on its [[Releases/{{FedoraVersion||next}}/Schedule| release schedule]] page. Alpha, Beta, and General Availability (final) releases happen at 10:00am Eastern US Time, which is either 1500UTC or 1400UTC depending on whether or not daylight savings is in effect.
 +
 +
=== Development Planning ===
 +
 +
Fedora development planning is handled by the [[Changes/Policy|Release Planning Process]]. So-called ''Changes'' are proposed, initially reviewed, and monitored through the development process by the [[Fedora_Engineering_Steering_Committee|engineering steering committee]].
 +
 +
=== 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. 14 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.}}
 +
 +
After the [[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 [[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 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 [[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 Release Engineering team and ratified by [[FESCo | Fedora Engineering Steering Committee (FESCo)]].  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.
  
 
{|border="1"  
 
{|border="1"  
!Task/Milestone !!  Start Day !! Length
+
!Task/Milestone !!  Start Day (Tuesdays or Thursdays) !! Length
 
|-
 
|-
| Planning and Development   || Day After GA of Previous Release || Depends on GA date and working backwards from all the tasks below
+
| Planning and Development || ''Branch point'' of ''previous release'' plus '''one day''' || Variable
 
|-
 
|-
| Feature Acceptance Deadline || Tuesday--Two weeks before Feature Freeze || n/a
+
| [[Changes/Policy#For_Developers|Changes Checkpoint #1: Proposal deadline]] || Tue: ''Branch point'' minus '''3 months''' || n/a
 
|-
 
|-
| [[ReleaseEngineering/FeatureFreezePolicy|Feature Freeze]] || Tuesday--1 week before Alpha Change Deadline || Until GA
+
| [[Releases/Branched|Branch point]] || Tue: ''Alpha Freeze'' minus '''2 weeks''' || n/a
 
|-
 
|-
| Branch Freeze Event || Tuesday--One week before Alpha Change Deadline || [[Branch Freeze Policy]] in effect until GA.
+
| [[Changes/Policy#For_Developers|Changes Checkpoint #2: Feature completion deadline]] || Tue: '''Same day''' as ''Branch point'' || N/A
 
|-
 
|-
| [[Change_deadlines | Alpha Change Deadline]] || Tuesday--Two weeks before the [[Alpha Release]] ||  
+
| [[QA:SOP_compose_request|Alpha test composes]] || Any time after ''Branch point'' || Until ''Alpha release candidates''
 
|-
 
|-
| String Freeze || Same time as Alpha Change Deadline || [[Software String Freeze Policy]] in effect until GA.
+
| [[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''
 
|-
 
|-
| Alpha Compose  || Thursday--Two days after the Alpha Change Deadline  || 1 day
+
| [[Updates Policy#Bodhi activation|Bodhi activation point]] || Tue: '''Same day''' as ''Alpha Freeze'' || [[Bodhi]] enabled and [[Updates_Policy]] requirements in effect until ''EOL''
 
|-
 
|-
| Alpha Go/No-Go Meeting || Wednesday @ 17:00 E{D,S}T--six days after Alpha Compose || n/a
+
| String Freeze || Tue: '''Same day''' as ''Alpha Freeze'' || [[Software String Freeze Policy]] in effect until ''GA Release''
 
|-
 
|-
| Alpha Release || Tuesday--Two weeks after Branch Freeze and 12 days after Alpha Compose || Public testing of Alpha lasts 3 weeks
+
| [[QA:SOP_compose_request|Alpha release candidates]] || Any time after ''Alpha Freeze'' || Until ''Alpha Release''
 
|-
 
|-
| [[Change_deadlines | Beta Change Deadline]] || Tuesday--Two weeks before the [[Beta 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
 
|-
 
|-
| Feature Complete  || Tuesday--Same as the Beta Change Deadeline || n/a
+
| Alpha Release || Tue: ''Beta Release'' minus '''5 weeks''', ''Alpha Freeze'' plus '''2 weeks''' || Live until ''Beta Release''
 
|-
 
|-
| Beta Compose  || Thursday--Two days after the Beta Change Deadline  || 1 day
+
| [[QA:SOP_compose_request|Beta test composes]] || Tue: ''Beta Freeze'' minus '''2 weeks''', ''Alpha Release'' plus '''1 week''' || Until ''Beta release candidates''
 
|-
 
|-
| Beta Go/No-Go Meeting || Wednesday @ 17:00 E{D,S}T--six days after Beta Compose || n/a
+
| [[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''
 
|-
 
|-
| Beta Release || Tuesday--Two weeks after the Beta Change Deadline and 12 days after Beta Compose || Public testing of Beta lasts 2 weeks + 6 days (ends on a Monday)
+
| [[QA:SOP_compose_request|Beta release candidates]] || Any time after ''Beta Freeze'' || Until ''Beta Release''
 
|-
 
|-
| [[Change_deadlines | Final Change Deadline]] || Monday--End of Beta Release Testing || In effect until GA
+
| [[Changes/Policy#For_Developers|Changes Checkpoint #3: 100% code complete deadline ]] || Tue: '''Same day''' as ''Beta Freeze'' || N/A
 
|-
 
|-
| Compose Final RC || Thursday--three days after Final Change Deadline || 1 day
+
| Beta [[Go_No_Go_Meeting]] || '''Thu''' @ 13:00 E{D,S}T: planned ''Beta Release'' '''minus five days''' (repeats if No-Go) || n/a
 
|-
 
|-
| Test Final RC || Thursday to Tuesday  || 6 days
+
| Beta Release || Tue: ''Beta Freeze'' plus '''2 weeks''', ''GA Release'' minus '''5 weeks''' || Live until ''GA release''
 
|-
 
|-
| Final Go/No-Go Meeting || Tuesday @ 17:00 E{D,S}T after Test Final RC || n/a
+
| [[QA:SOP_compose_request|Final test composes]] || Tue: ''Final Freeze'' minus '''2 weeks''', ''Beta Release'' plus '''1 week''' || Until ''Final release candidates''
 
|-
 
|-
| GA Release || Tuesday--Seven days after Test Final RC ends || n/a
+
| [[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''
 
|-
 
|-
| Maintenance || Tuesday--GA release day || ~13 Months
+
| [[QA:SOP_compose_request|Final release candidates]] || Any time after ''Final Freeze'' || Until ''GA Release''
 
|-
 
|-
| End of Life || One month after GA of current release + 2 releases || 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
 +
|-
 +
| 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 TaskJuggler schedules John Poelstra creates.
+
This is admittedly an unusual methodology, but it is fairly easy to generate using the the [https://fedorapeople.org/groups/schedule/f-{{FedoraVersionNumber|next}} TaskJuggler schedules] the Fedora Program Manager maintains.
  
# Pick GA date (the Tuesday before May 1st or October 31st)
+
# Pick ''GA release'' date (the Tuesday before May 1st or October 31st)
# Work backwards using consistent spacing for freezes, composes, and releases for Alpha, Beta, and Final, as described above
+
#* Check with Fedora PR to ensure that planned dates do not conflict with other ecosystem planned events (so we get the maximum press benefit)
# Set the feature submission and completion dates working backwards from the Branch Freeze date
+
# Work backwards using consistent spacing for freezes, composes, and releases for Alpha, Beta, and Final, as described above, to the ''Branch point''
# The time between the feature submission deadline and the GA of the previous release is the time dedicated to ''development''
+
# Set the [[Changes/Policy|change proposal checkpoint/deadline]] working backwards from the ''Branch point''
#* Development time varies from from release to release based on how when the previous release finished
+
# The time before the ''change proposal checkpoint/deadline'' and after the ''Branch point of the previous release'' is the time dedicated to ''development''
#* The freeze and testing time (from Branch Freeze until GA) is held constant from release to release
+
#* 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 it's 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 ===
Line 75: Line 98:
  
 
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.
  
 
=== Schedule Contingency Planning ===
 
=== Schedule Contingency Planning ===
  
If the Alpha, Beta, or Final Go/No Go meetings result in a "No Go" determination, that milestone and subsequent milestones will be pushed back by one week.
+
If the Alpha, Beta, or Final [[Go_No_Go_Meeting]]s 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.
  
One week is the 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.  Go/No Go meetings receive input from representatives of FESCo, Release Engineering, and Quality Assurance.
+
Go/No Go meetings receive input from representatives of [[Fedora_Engineering_Steering_Committee|FESCo]], [[ReleaseEngineering|Release Engineering]], and [[QA|Quality Assurance]].
  
 
== Maintenance Schedule ==
 
== Maintenance Schedule ==
Line 98: Line 125:
 
== End of Life (EOL) ==
 
== End of Life (EOL) ==
  
When the a release reaches the point where it no longer supported, updates are no longer created for it and 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.
+
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 [[End of life SOP]].
 
The tasks performed at EOL are documented in the [[End of life SOP]].

Latest revision as of 19:32, 24 November 2014

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.

Contents

[edit] 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 22, is on its release schedule page. Alpha, Beta, and General Availability (final) releases happen at 10:00am Eastern US Time, which is either 1500UTC or 1400UTC depending on whether or not daylight savings is in effect.

[edit] 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.

[edit] Development Process

Fedora uses a system involving two 'development' trees. 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 "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.

Idea.png
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 Fedora 22 began the day after Fedora 21 branched from Rawhide and entered the stabilization process.

After the 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 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 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 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.

[edit] 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.

Task/Milestone Start Day (Tuesdays or Thursdays) Length
Planning and Development Branch point of previous release plus one day Variable
Changes Checkpoint #1: Proposal deadline Tue: Branch point minus 3 months n/a
Branch point Tue: Alpha Freeze minus 2 weeks n/a
Changes Checkpoint #2: Feature completion deadline Tue: Same day as Branch point N/A
Alpha test composes Any time after Branch point Until Alpha release candidates
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
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 Software String Freeze Policy in effect until GA Release
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
Beta test composes Tue: Beta Freeze minus 2 weeks, Alpha Release plus 1 week Until Beta release candidates
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
Beta release candidates Any time after Beta Freeze Until Beta Release
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
Final test composes Tue: Final Freeze minus 2 weeks, Beta Release plus 1 week Until Final release candidates
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
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

[edit] Steps to Construct a New Schedule

This is admittedly an unusual methodology, but it is fairly easy to generate using the the 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 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 it's 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.

[edit] 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 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.

[edit] Schedule Contingency Planning

If the Alpha, Beta, or Final 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 FESCo, Release Engineering, and Quality Assurance.

[edit] 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 20 will be maintained until 1 month after the release of Fedora 22.
  • Fedora 21 will be maintained until 1 month after the release of Fedora 23.

[edit] 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 supporting two releases plus Rawhide and the pre-release Branched code to be a manageable work load.

[edit] 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 End of life SOP.

[edit] Additional Release Schedule Information