From Fedora Project Wiki

(add a note on FAS user names)
(159 intermediate revisions by 38 users not shown)
Line 1: Line 1:
<!-- page was renamed from JeremyKatz/DraftHowToUpdateYourFedoraPackage
This document shows how to submit an update for a package you maintain in Fedora.  It assumes you already have a package in the Fedora repositories. It is not a guide to using the Fedora package source control system: see the [[Package maintenance guide]] for that.
-->
= Fedora Package Update HOWTO =


This document shows you how to update a package you maintain in Fedora.  It assumes you already have a package in the Fedora repositories.  For more information on becoming a package maintainer, refer to http://fedoraproject.org/wiki/PackageMaintainers/Join.  Use the procedure explained here to update your package.
* For details of the policy on requirements for updates at various stages of the [[Fedora Release Life Cycle]], refer to [[Updates Policy]].
<!-- N.B.: The link above is written as a longhand URL on purpose.
-->
<!-- What is the reason to write it as a longhand URL? -- TillMaas
-->


== Packages in devel branch ==
== Overview ==


1. Check out your package from CVS.
This page is intended for new and existing package maintainers. Testers and regular users may be interested in the [[QA:Updates_Testing|updates-testing]] repository and the [[QA:Update_feedback_guidelines|update feedback guidelines]]. This page specifically covers the update submission process.


Prepare the environment (if not already done):
There are two significantly different package update submission workflows in Fedora:
<pre>export CVSROOT=:ext:USERNAME@cvs.fedoraproject.org:/cvs/pkgs
export CVS_RSH=ssh
</pre>
Check out a local working copy of the CVS module you plan to edit, e.g. (for a description of the directory layout, see the [[PackageMaintainers/Anatomy| Anatomy]]  page:
<pre>cvs co <package_name>
</pre>


1. If you update to a new upstream version you have to upload the tarball to an external lookaside cache. Operations on the lookaside cache require a client-side certificate, grab it and see instructions for installing it at https://admin.fedoraproject.org/accounts/. To upload a new source tarball and replace an older one, run
* [[Releases/Rawhide|Rawhide]], and [[Releases/Branched|Branched]] up to the [[Updates Policy#Bodhi enabling|Bodhi enabling point]]
<pre>make new-sources FILES="yournewtarball.tar.gz"
* [[Releases/Branched|Branched]] releases after the Alpha change deadline, and stable releases
</pre>
or for multiple files:
<pre>make new-sources FILES="yournewtarball.tar.gz yourdata.tar.gz"
</pre>
This also updates your local copy of the '''.cvsignore''' and '''sources''' files. You will need to do this for each branch  that you will be building the new version for.  The new tarball will be uploaded only once and the rest will be md5sum checked and not uploaded, only the '''.cvsignore''' and '''sources''' files will be updated.


If you just want to add another tarball (e.g. a big gzipped patch or a documentation tarball), use:
The repository layouts differ somewhat for Rawhide, Branched and stable releases, but the update workflows split up as described above.
<pre>make upload FILES="somefile.tar.gz"
</pre>
Contrary to "make new-sources", this does not purge old files from the ".cvsignore" and "sources" files.


If you just have a small patch, initscript, or otherwise plain text file, you can commit those directly to CVS.  This can be done with the cvs add command, e.g.:
== Rawhide and early Branched ==
<pre>cvs add packagename-fix-the-foobar.patch
</pre>


1. Use the command <code>make i386</code>, <code>make x86_64</code>, or <code>make ppc</code> to test a package build on your local system.  Then install and test the package.  If something doesn't work, fix it and repeat this step. For F-7 and later branches you can also use the koji build system to do a scratch build perhaps for some arch you don't have locally: 'make srpm; koji build --scratch --arch-override x86_64 dist-f9 packagename-version-release.src.rpm' (to build just for x86_64 for example).
The package update workflow for Rawhide and Branched before the ''Bodhi enabling point'' is simple:


1. Check if everything that has changed is correct with
# Build the package with {{command|fedpkg build}} (see the [[Package maintenance guide]] for more details)
<pre>cvs diff -u
</pre>
1. Commit the verified changes to the <code>devel/</code> branch.
<pre>cvs commit
</pre>


As a test whether the full commit was fine, you can check out a fresh working copy into a different directory. It should succeed in fetching the binaries from lookaside cache and also pass simple build tests such as '''make i386''' or '''make srpm''' at least.
This is all you need to do. Your package will appear in the next daily compose of Rawhide or Branched and will be used in any image composes built from that tree.
1. Tag your package:
<pre>make tag
</pre>
1. Instruct the builders to build your package:
<pre>make build
</pre>
1. Check the koji build page at http://koji.fedoraproject.org/koji/ for the build process.
1. If you are updating a package during a freeze and need the package included in the milestone, please follow the [http://fedoraproject.org/wiki/Releases/Schedule freeze policies]  to have your package added.


=== Example ===
== Later Branched and stable releases ==


<pre>
At the [[Updates Policy#Bodhi enabling|Bodhi enabling point]], the [[Bodhi]] update feedback system is enabled by [[ReleaseEngineering|Release Engineering]] and builds submitted with {{command|fedpkg build}} are no longer automatically sent to any official [[Repositories|repository]]. The update workflow for releases of this type is:
export CVSROOT=:ext:USERNAME@cvs.fedoraproject.org:/cvs/pkgs
export CVS_RSH=ssh
cvs co foo
cd foo/devel
wget -N http://dl.sf.net/foo/foo-0.0.2.tar.bz2
make new-sources FILES="foo-0.0.2.tar.bz2"
gedit foo.spec
make i386
cvs diff -u
cvs commit -m "Update to 0.0.2"
make tag build
</pre>


{{admon/tip|Fedora account name|{{command|fedpkg}} should be able to discover your [[Account_System|Fedora account system]] user name from the {{filename|~/.fedora.cert}} file set up by {{command|fedora-packager-setup}} when you first [[Join_the_package_collection_maintainers#Install_the_client_tools_.28Koji.29_and_set_up_your_certificate|configured your system for packaging]]. If this fails for any reason, you can specify it with {{command|--user (username)}}. For the {{command|bodhi}} command line tool, you may need to specify your Fedora user name with {{command|-u (username)}} if it differs from your system user name.}}


The package builders publish your package in the <code>development</code> tree, also called "Rawhide."  If the package is a stable update, you may also provide it to users of the currently-maintained stable Fedora release.  To make it available to F-8 or F-9 users, for example, use the procedure outlined in the [#head-552808f592f4c2736cdc61e3f0a5beed9c3cb0ec next chapter] .
# Build the package with {{command|fedpkg build}}
# Submit an update for the package with {{command|fedpkg update}}, the [https://admin.fedoraproject.org/updates/ Bodhi web interface], or the [https://fedorahosted.org/bodhi/wiki/CLI Bodhi CLI tool]. This causes the package to be sent to the [[Repositories#updates-testing|''updates-testing'']] repository
# Monitor the update's status and the feedback you receive via the web interface or the emails that are sent to you, and modify it with updated or additional builds if necessary
# After the update meets the criteria in the [[Updates Policy]] and you are satisfied it should be released as a stable update, submit the update to ''[[Repositories#stable|stable]]'' with {{command|bodhi -R stable}} or the web interface


An alternative may be used, as explained in [[PackageMaintainers/UsingCvsFaq| UsingCvsFaq]] .
{{admon/important|Updating inter-dependent packages|If a package you wish to update requires other package(s) to be rebuilt before it or they will work properly, you '''must''' submit the builds together as a multi-package update. See [[#multi|below]] for more details on this.}}


More in-depth information on the build system for Fedora 7 and above is at
=== Update attributes ===
[[PackageMaintainers/UsingKoji| UsingKoji]] .


=== Removing a package from the devel branch ===
At the time you submit the update, you will be asked for several attributes. The type of the update should be fairly self-explanatory: either it fixes bugs, adds new features, or is a new package.


From time to time you may want to remove a package you pushed to the devel branch (rawhide).  This could happen in a situation where a bug
If you are asked whether you want to send the update to ''updates-testing'' or ''stable'', this is a no-op: all updates now go through ''updates-testing''. It does not matter what you choose.
or issue is found in your package that will be resolved upstream in upstream's next release. You may want to wait for this release instead
of back-porting a fix yourself, and so pulling the broken package from rawhide makes sense.


You can remove the package from rawhide by using koji as follows:
There are several schools of thought on filling out the update description. Some would suggest you consider the target audience: for a stable release, in particular, many Fedora users will see this text, and many of them may not be particularly familiar with your package. Consider not simply describing literally the changes in the update, but explaining as if to an outsider why your are updating the package, what benefits it will bring to them (if any), and anything they may want to note in order to have a smooth update experience.


<pre>
If you associate one or more bug reports with your update, Bodhi will post comments into Bugzilla to alert those following the bug reports that an update is available. If you mark your update as fixing the bug(s), Bodhi will move the report(s) through the '''MODIFIED''', '''ON_QA''' and '''CLOSED ERRATA''' states of the [[BugZappers/BugStatusWorkFlow|bug workflow]] as your update reaches various points in the process. Using this mechanism can be very useful both for you and for users of your package.
koji untag-pkg dist-f10 foo-1.1.3-1.fc10
</pre>


Where <code>foo-1.1.3-1.fc10</code> is replaced with the name of your package build.  See <code>koji help</code> or [[PackageMaintainers/UsingKoji | UsingKoji]] for more information.
You may set a ''karma'' (feedback) level at which the update will automatically be submitted to ''stable''. This is optional. If you choose to use it, please carefully consider an appropriate feedback level. For a relatively obscure package which is quite stable, 1 or 2 may be an appropriate value. For a popular, sensitive and complex package such as {{package|firefox}} or the {{package|kernel}}, the default of 3 may be insufficient and a choice of 5 or even 10 may be appropriate.


== Packages in the stable branches ==
=== Who will receive your update, when? ===


# Make any required changes in the <code>F-7</code>, <code>F-8/</code> or <code>F-9/</code> directory.
When a release is in Branched state, the ''updates-testing'' repository is enabled by default so most users will see the package, but only packages from the stable ''fedora'' repository are used in building milestone releases (Alpha, Beta and Final) and nightly images.
# Use the command <code>make i386</code>, <code>make x86_64</code>, or <code>make ppc</code> to test a package build on your local system.  Then install and test the package.  If something doesn't work, fix it and repeat this step.
# Commit the verified changes to the branch you are working on: <pre>cvs commit</pre>
# Tag your package: <pre>make tag</pre>
# Instruct the builders to build your package:<pre>make build</pre>
# Check the koji build page at http://koji.fedoraproject.org/koji/ for the build process.


=== Submit your update to Bodhi ===
Where a package goes when it is marked as ''stable'' differs between Branched and stable releases. In Branched releases, ''stable'' packages are pushed to the base ''fedora'' repository. In stable releases, ''stable'' packages are pushed to the ''updates'' repository. However, from the point of view of the packager, this is an insignificant implementation detail. For more details, see [[Repositories]].


# This can be accomplished in a few different ways. The easiest being: <pre>make update</pre>  If your local username differs from that of your Fedora account, you will need to specify it with the following command: <pre>make update BODHI_USER=foo</pre> Or you add <code>BODHI_USER=foo</code> to the file  <code>~/.cvspkgsrc</code>. Alternatively, you can also submit your update using the [https://fedorahosted.org/bodhi/wiki/CLI bodhi-client] , or the [https://admin.fedoraproject.org/updates web interface] .
When a release is in stable state, the ''updates-testing'' repository is disabled by default, but [[QA]] team members and others run with it enabled in order to provide testing and Bodhi feedback. The main user population will see your update only when it passes Bodhi, is marked as ''stable'' and reaches the ''updates'' repository.
# Once submitted, bodhi will automatically request that your update be pushed to updates-testing. If you feel that community testing is unnecessary for your update, you can choose to push it straight to the stable fedora-updates repository instead. Note that security updates follow a [wiki:Self:Security/TrackingBugs slightly different process] .
 
# A Release Engineer then signs and pushes out your updates.  The signing step is currently a manual process, so your updates will not be instantly released once submitted to bodhi.
{{anchor|multi}}
# Once pushed to testing, people are able to +1/-1 the updates "karma", based on whether or not it seems to be functional for them. If your update reaches a karma of 3, it will automatically be pushed to stable. Likewise, if it reaches -3, it will be automatically unpushed. If your update does not receive enough feedback to automatically push it to stable, you will have to submit it as a final update yourself.  This can easily be done with the command-line tool, or with the web interface.
=== Updating inter-dependent packages ===
#  You will then be notified when your update has been pushed to stable.  Bodhi will close all associated bugs and send an announcement to fedora-package-announce. At this point, your update has been officially released!
 
If an update you wish to submit would cause a dependency issue of any kind (a strict package dependency error, or simply another package failing to operate correctly) if updated alone, you must not submit the package as a single-package update. You must always collect all inter-dependent or related packages together into a single multi-package update, such that no user will face problems if they install all the packages in the update together.
 
For example: if you maintain a package ''libfoo'' which the package ''bar'' depends on, and you need to update ''libfoo'', you should check that ''bar'' continues to function correctly with the updated version of ''libfoo''. If it does not, you must ensure the appropriate changes are made to ''bar'', and include the updated ''bar'' in your update along with the updated ''libfoo''.
 
The ''fedpkg'' tool does not handle multi-package updates. You can add multiple packages to an update using the [https://admin.fedoraproject.org/updates/ Bodhi web application], or the {{command|bodhi}} command line tool. You can pass as many package names as you like to the {{command|bodhi --new}} to create a new multi-package update, or use {{command|bodhi --edit}} to edit an existing update.
 
It is possible you will run into problems with permissions when trying to add builds of packages you do not have commit privileges for to an update, or trying to add a build for a package you do have privileges for to someone else's update. If you encounter a situation like this, you should contact the [[ReleaseEngineering|release engineering]] team or a proven packager for help.
 
You may need a ''buildroot override'' to complete a multi-package update successfully. For instance in the case described above, you may need to rebuild ''bar'' against the new ''libfoo'' package and submit both packages together as a multi-package update. However, in the normal course of events, you would not be able to build another package against your new ''libfoo'' build until it reached the [[Repositories#stable|''stable'']] state. To resolve this dilemma, you can request a buildroot override, which causes the ''libfoo'' build to be included in the buildroot for a short time in order to get the ''bar'' package build done.
 
You can request a buildroot override with bodhi: {{command|bodhi --buildroot-override<nowiki>=</nowiki>(name-version-release) --duration<nowiki>=</nowiki>2 --notes<nowiki>=</nowiki>"Useful details."}} This would submit a buildroot override with a duration of two days. Buildroot overrides are usually granted within 15-30 minutes of submission. If you submit an override request with the bodhi tool, it will suggest a command that will let you monitor when the package appears in the buildroot, so you can fire your dependent build at the appropriate time.
 
You can also request buildroot overrides from the [https://admin.fedoraproject.org/updates/ Bodhi web application].
 
The [[Bodhi/BuildRootOverrides|buildroot override instructions]] explain the buildroot override process in more detail.
 
=== Handling feedback from automated tests ===
 
Fedora's old automated testing system, [[AutoQA]], or its new one, [[Taskotron]], may run automated tests on your update. At present, these include a ''depcheck'' test which attempts to determine if it causes dependency issues, and an ''upgradepath'' test which attempts to determine if it breaks the ''upgrade path'' - that is, if it causes a situation where an older Fedora release has a package considered to be of a higher version than the same package in a newer Fedora release (this is a violation of the [[Updates Policy]]).
 
The test system will post a comment to Bodhi indicating whether the tests passed or failed. The systems are not 100% accurate, but they are fairly often correct. If you see a failure, it is a very good idea to click on the link to the test results and investigate the issue. If you are unsure what the test indicates, you can contact the [[QA]] team for help.
 
Automated test failures do not currently prevent your update from being released. However, if you enabled automatic stable push at a karma threshold, this will be disabled if an automated test fails. If you have examined the result and you are sure it is a false one and there is no problem with the package, you may re-enable the automatic push mechanism or submit the package to ''stable'' manually once it meets the other requirements of the [[Updates Policy]].
 
=== Branched milestone freezes ===
 
For a short period before each milestone release, the stable [[Repositories#fedora|''fedora'']] repository is frozen. These periods are shown as the [[Milestone freezes]] (Alpha Freeze, Beta Freeze, Final Freeze) on schedules. During these periods, builds will not be marked ''stable'' and pushed from [[Repositories#updates-testing|''updates-testing'']] to ''fedora'' even after being submitted manually or automatically. In the normal course of events, they will be pushed after the milestone release is approved at a [[Go_No_Go_Meeting]]. If you believe your update deserves to break a milestone freeze, a ''freeze exception'' may be granted through the [[QA:SOP_freeze_exception_bug_process|freeze exception process]]. Accepted release blocking bugs are granted the same status through the [[QA:SOP_blocker_bug_process|blocker bug process]].
 
For more on the Fedora development process, see [[Fedora Release Life Cycle]].
 
{{admon/tip|
If you are unsure whether your build is currently considered ''stable'' for a given release, you can check with {{command|koji latest-pkg fXX}} (where XX is the release).}}
 
== Security updates ==
 
There is an additional process that layers over the regular update process for bugs identified as security issues. If a bug is assigned to you that blocks a [[Security Tracking Bugs|security tracking bug]], you must follow that process in addition to this one.
 
== New package submissions ==
 
If you want to build a new package, but you aren't sure which releases to send it to:
 
* New packages should always be built for Rawhide
* New packages can be built for Branched and stable releases if adding them would provide value to users of those releases without significant risk of causing harm
 
The submission process for new packages, after they have passed the [[Package_Review_Process]] and been [[Package_SCM_admin_requests|given an SCM repository]], is exactly the same as that for package updates.
 
== Consider creating a package test plan ==
 
If you [[QA:SOP_test_case_creation|create test cases]] for your package, and [[QA:SOP_package_test_plan_creation|categorize them appropriately]], they will be automatically linked in Bodhi, so that testers will have some guidance for planned update testing.
 
[[Category:Package Maintainers]]

Revision as of 19:02, 27 September 2014

This document shows how to submit an update for a package you maintain in Fedora. It assumes you already have a package in the Fedora repositories. It is not a guide to using the Fedora package source control system: see the Package maintenance guide for that.

Overview

This page is intended for new and existing package maintainers. Testers and regular users may be interested in the updates-testing repository and the update feedback guidelines. This page specifically covers the update submission process.

There are two significantly different package update submission workflows in Fedora:

The repository layouts differ somewhat for Rawhide, Branched and stable releases, but the update workflows split up as described above.

Rawhide and early Branched

The package update workflow for Rawhide and Branched before the Bodhi enabling point is simple:

  1. Build the package with fedpkg build (see the Package maintenance guide for more details)

This is all you need to do. Your package will appear in the next daily compose of Rawhide or Branched and will be used in any image composes built from that tree.

Later Branched and stable releases

At the Bodhi enabling point, the Bodhi update feedback system is enabled by Release Engineering and builds submitted with fedpkg build are no longer automatically sent to any official repository. The update workflow for releases of this type is:

Idea.png
Fedora account name
fedpkg should be able to discover your Fedora account system user name from the ~/.fedora.cert file set up by fedora-packager-setup when you first configured your system for packaging. If this fails for any reason, you can specify it with --user (username). For the bodhi command line tool, you may need to specify your Fedora user name with -u (username) if it differs from your system user name.
  1. Build the package with fedpkg build
  2. Submit an update for the package with fedpkg update, the Bodhi web interface, or the Bodhi CLI tool. This causes the package to be sent to the updates-testing repository
  3. Monitor the update's status and the feedback you receive via the web interface or the emails that are sent to you, and modify it with updated or additional builds if necessary
  4. After the update meets the criteria in the Updates Policy and you are satisfied it should be released as a stable update, submit the update to stable with bodhi -R stable or the web interface
Important.png
Updating inter-dependent packages
If a package you wish to update requires other package(s) to be rebuilt before it or they will work properly, you must submit the builds together as a multi-package update. See below for more details on this.

Update attributes

At the time you submit the update, you will be asked for several attributes. The type of the update should be fairly self-explanatory: either it fixes bugs, adds new features, or is a new package.

If you are asked whether you want to send the update to updates-testing or stable, this is a no-op: all updates now go through updates-testing. It does not matter what you choose.

There are several schools of thought on filling out the update description. Some would suggest you consider the target audience: for a stable release, in particular, many Fedora users will see this text, and many of them may not be particularly familiar with your package. Consider not simply describing literally the changes in the update, but explaining as if to an outsider why your are updating the package, what benefits it will bring to them (if any), and anything they may want to note in order to have a smooth update experience.

If you associate one or more bug reports with your update, Bodhi will post comments into Bugzilla to alert those following the bug reports that an update is available. If you mark your update as fixing the bug(s), Bodhi will move the report(s) through the MODIFIED, ON_QA and CLOSED ERRATA states of the bug workflow as your update reaches various points in the process. Using this mechanism can be very useful both for you and for users of your package.

You may set a karma (feedback) level at which the update will automatically be submitted to stable. This is optional. If you choose to use it, please carefully consider an appropriate feedback level. For a relatively obscure package which is quite stable, 1 or 2 may be an appropriate value. For a popular, sensitive and complex package such as Package-x-generic-16.pngfirefox or the Package-x-generic-16.pngkernel, the default of 3 may be insufficient and a choice of 5 or even 10 may be appropriate.

Who will receive your update, when?

When a release is in Branched state, the updates-testing repository is enabled by default so most users will see the package, but only packages from the stable fedora repository are used in building milestone releases (Alpha, Beta and Final) and nightly images.

Where a package goes when it is marked as stable differs between Branched and stable releases. In Branched releases, stable packages are pushed to the base fedora repository. In stable releases, stable packages are pushed to the updates repository. However, from the point of view of the packager, this is an insignificant implementation detail. For more details, see Repositories.

When a release is in stable state, the updates-testing repository is disabled by default, but QA team members and others run with it enabled in order to provide testing and Bodhi feedback. The main user population will see your update only when it passes Bodhi, is marked as stable and reaches the updates repository.

Updating inter-dependent packages

If an update you wish to submit would cause a dependency issue of any kind (a strict package dependency error, or simply another package failing to operate correctly) if updated alone, you must not submit the package as a single-package update. You must always collect all inter-dependent or related packages together into a single multi-package update, such that no user will face problems if they install all the packages in the update together.

For example: if you maintain a package libfoo which the package bar depends on, and you need to update libfoo, you should check that bar continues to function correctly with the updated version of libfoo. If it does not, you must ensure the appropriate changes are made to bar, and include the updated bar in your update along with the updated libfoo.

The fedpkg tool does not handle multi-package updates. You can add multiple packages to an update using the Bodhi web application, or the bodhi command line tool. You can pass as many package names as you like to the bodhi --new to create a new multi-package update, or use bodhi --edit to edit an existing update.

It is possible you will run into problems with permissions when trying to add builds of packages you do not have commit privileges for to an update, or trying to add a build for a package you do have privileges for to someone else's update. If you encounter a situation like this, you should contact the release engineering team or a proven packager for help.

You may need a buildroot override to complete a multi-package update successfully. For instance in the case described above, you may need to rebuild bar against the new libfoo package and submit both packages together as a multi-package update. However, in the normal course of events, you would not be able to build another package against your new libfoo build until it reached the stable state. To resolve this dilemma, you can request a buildroot override, which causes the libfoo build to be included in the buildroot for a short time in order to get the bar package build done.

You can request a buildroot override with bodhi: bodhi --buildroot-override=(name-version-release) --duration=2 --notes="Useful details." This would submit a buildroot override with a duration of two days. Buildroot overrides are usually granted within 15-30 minutes of submission. If you submit an override request with the bodhi tool, it will suggest a command that will let you monitor when the package appears in the buildroot, so you can fire your dependent build at the appropriate time.

You can also request buildroot overrides from the Bodhi web application.

The buildroot override instructions explain the buildroot override process in more detail.

Handling feedback from automated tests

Fedora's old automated testing system, AutoQA, or its new one, Taskotron, may run automated tests on your update. At present, these include a depcheck test which attempts to determine if it causes dependency issues, and an upgradepath test which attempts to determine if it breaks the upgrade path - that is, if it causes a situation where an older Fedora release has a package considered to be of a higher version than the same package in a newer Fedora release (this is a violation of the Updates Policy).

The test system will post a comment to Bodhi indicating whether the tests passed or failed. The systems are not 100% accurate, but they are fairly often correct. If you see a failure, it is a very good idea to click on the link to the test results and investigate the issue. If you are unsure what the test indicates, you can contact the QA team for help.

Automated test failures do not currently prevent your update from being released. However, if you enabled automatic stable push at a karma threshold, this will be disabled if an automated test fails. If you have examined the result and you are sure it is a false one and there is no problem with the package, you may re-enable the automatic push mechanism or submit the package to stable manually once it meets the other requirements of the Updates Policy.

Branched milestone freezes

For a short period before each milestone release, the stable fedora repository is frozen. These periods are shown as the Milestone freezes (Alpha Freeze, Beta Freeze, Final Freeze) on schedules. During these periods, builds will not be marked stable and pushed from updates-testing to fedora even after being submitted manually or automatically. In the normal course of events, they will be pushed after the milestone release is approved at a Go_No_Go_Meeting. If you believe your update deserves to break a milestone freeze, a freeze exception may be granted through the freeze exception process. Accepted release blocking bugs are granted the same status through the blocker bug process.

For more on the Fedora development process, see Fedora Release Life Cycle.

Idea.png
If you are unsure whether your build is currently considered stable for a given release, you can check with koji latest-pkg fXX (where XX is the release).

Security updates

There is an additional process that layers over the regular update process for bugs identified as security issues. If a bug is assigned to you that blocks a security tracking bug, you must follow that process in addition to this one.

New package submissions

If you want to build a new package, but you aren't sure which releases to send it to:

  • New packages should always be built for Rawhide
  • New packages can be built for Branched and stable releases if adding them would provide value to users of those releases without significant risk of causing harm

The submission process for new packages, after they have passed the Package_Review_Process and been given an SCM repository, is exactly the same as that for package updates.

Consider creating a package test plan

If you create test cases for your package, and categorize them appropriately, they will be automatically linked in Bodhi, so that testers will have some guidance for planned update testing.