From Fedora Project Wiki
m (和訳追記)
m (Branchedリリースの和訳)
Line 39: Line 39:
 
A [[Releases/Branched|Branched]] release exists for part of the development cycle. It is branched off Rawhide and eventually becomes the next stable release.  
 
A [[Releases/Branched|Branched]] release exists for part of the development cycle. It is branched off Rawhide and eventually becomes the next stable release.  
 
After the [[#Bodhi_enabling|Bodhi enabling]] point, Branched releases do use the update feedback system ([[Bodhi]]). There are several "phases" that a branched release goes through that affect what updates can and should be done. In general maintainers should keep in mind that this tree is being used to stabilize for the next release, so changes should be careful and considered and heading toward stability.
 
After the [[#Bodhi_enabling|Bodhi enabling]] point, Branched releases do use the update feedback system ([[Bodhi]]). There are several "phases" that a branched release goes through that affect what updates can and should be done. In general maintainers should keep in mind that this tree is being used to stabilize for the next release, so changes should be careful and considered and heading toward stability.
 +
 +
[[Releases/Branched|Branched]]リリースは、開発サイクルの一部です。[[Releases/Branched|Branched]]リリースは、Rawhideから枝分かれされ、徐々に次の安定したリリースになっていきます。[[#Bodhi_enabling|Bodhiが有効になる]] 地点を過ぎると、Branchedリリースは、パッケージの更新状況をフィードバックしてくれるシステム([[Bodhi]])を使います。Branchedリリースには、何段階かがあり、何のアップデートができ、また、されるべきかが決まります。一般的にパッケージの保守管理者が留意しておくべきことは、このツリーは、次のリリースに向けて、安定するために使われるということで、変更は十分に注意し考慮されるべきであり、安定に向かっているべきであるということです。
  
 
== [[Releases/Branched|Branched]], Bodhiが有効になる前(pre-Bodhi enabling) ==
 
== [[Releases/Branched|Branched]], Bodhiが有効になる前(pre-Bodhi enabling) ==
Line 44: Line 46:
 
For a short time after [[Fedora Release Life Cycle|the branch event happens]] but before the [[#Bodhi_enabling|Bodhi enabling]] point, the Branched release works just like Rawhide: builds submitted by packagers are considered [[Repositories#stable|stable]] immediately, and sent to the [[Repositories#fedora|''fedora'' repository]] directly in the next nightly compose. There are no restrictions beyond those for Rawhide at this point, but maintainers SHOULD be thinking about stabilization from this point onwards, and making sure their packages will be in good condition well in advance of the stable release. Some packages will be signed at this point, but not all of them. You may have to use --nogpgcheck to install or update.
 
For a short time after [[Fedora Release Life Cycle|the branch event happens]] but before the [[#Bodhi_enabling|Bodhi enabling]] point, the Branched release works just like Rawhide: builds submitted by packagers are considered [[Repositories#stable|stable]] immediately, and sent to the [[Repositories#fedora|''fedora'' repository]] directly in the next nightly compose. There are no restrictions beyond those for Rawhide at this point, but maintainers SHOULD be thinking about stabilization from this point onwards, and making sure their packages will be in good condition well in advance of the stable release. Some packages will be signed at this point, but not all of them. You may have to use --nogpgcheck to install or update.
  
repos available: [[Repositories#fedora|''fedora'']]
+
[[Fedora Release Life Cycle|枝分かれが発生]]した後の短い間で、[[#Bodhi_enabling|Bodhiが有効になる]]前、Branchedリリースは、Rawhideのように機能しています: パッケージ作成者が投稿したビルドは、すぐに[[Repositories#stable|stable]] として扱われます。そして、次の夜のcomposeで、[[Repositories#fedora|''fedora'' レポジトリ]]に直接送られます。この時点では、Rawhideのビルドと同等の制限しかないのですが、パッケージの保守管理者は、この時点からパッケージを安定させることを考えているべきであり、安定したリリースに先んじて、彼らのパッケージが良い状態にあることを確認しておくべきです。いくつかのパッケージはこの段階でサインされるでしょうが、全部ではありません。あなたは、--nogpgcheck をつけてインストールもしくは、更新しなければならないかもしれません。
 +
 
 +
有効なレポジトリ: [[Repositories#fedora|''fedora'']]
  
 
== Bodhiが有効になっている時(Bodhi enabling) ==
 
== Bodhiが有効になっている時(Bodhi enabling) ==
Line 50: Line 54:
 
At the ''Bodhi enabling point'', the [[Bodhi]] update system is enabled for the Branched release. After this point '''for the entire remaining lifetime of the release''', all updates must go through Bodhi before they can be marked ''stable'' and moved to either [[Repositories#fedora|''fedora'']] or [[Repositories#updates|''updates'']]. At present, the ''Bodhi enabling point'' occurs on the day of the [[Milestone freezes|Beta freeze]], but it is important to remember that they are distinct events: the Beta freeze lasts until Beta release, but Bodhi enabling is permanent.
 
At the ''Bodhi enabling point'', the [[Bodhi]] update system is enabled for the Branched release. After this point '''for the entire remaining lifetime of the release''', all updates must go through Bodhi before they can be marked ''stable'' and moved to either [[Repositories#fedora|''fedora'']] or [[Repositories#updates|''updates'']]. At present, the ''Bodhi enabling point'' occurs on the day of the [[Milestone freezes|Beta freeze]], but it is important to remember that they are distinct events: the Beta freeze lasts until Beta release, but Bodhi enabling is permanent.
  
repos available: [[Repositories#fedora|''fedora'']], [[Repositories#updates-testing|''updates-testing'']]
+
''Bodhiが有効化される''と、[[Bodhi]] パッケージ更新システムは、Branchedリリースに対して有効となります。この地点を超えると、リリースの残りの生存時間はずっと全ての更新は、Bodhiを通過せねばなりません。パッケージが安定したとマークされ、そして、[[Repositories#fedora|''fedora'']] レポジトリ、もしくは、[[Repositories#updates|''updates'']]レポジトリに移動されるまでは。現在は、''Bodhi有効化地点''は、[[Milestone freezes|β版凍結]]した日になっていますが、重要なのは、β版の凍結は、β版がリリースされるまで続くのに対して、Bodhi有効状態は、ずっと続くという違いがあることを覚えておくことです。
 +
 
 +
有効なレポジトリ: [[Repositories#fedora|''fedora'']], [[Repositories#updates-testing|''updates-testing'']]
  
 
At this point all packages will be signed and gpgcheck should be enabled for all installs/updates.
 
At this point all packages will be signed and gpgcheck should be enabled for all installs/updates.
 +
この地点では、すべてのパッケージがサインされます。そして、gpgcheckは、すべてのインストール及びアップデートに対して有効となるべきです。
  
 
== β版の前(Pre Beta) ==
 
== β版の前(Pre Beta) ==
Line 60: Line 67:
 
repos available: [[Repositories#fedora|''fedora'']] [[Repositories#updates-testing|''updates-testing'']]
 
repos available: [[Repositories#fedora|''fedora'']] [[Repositories#updates-testing|''updates-testing'']]
  
From this point onwards Maintainers '''MUST'''<ref name="must">''Must'' requirements are enforced by Bodhi.</ref>:
+
これは、''Bodhi有効化地点''とβ版リリースとの間の時間です。この時間には、私たちは、ソフトウエアのメジャーバージョンの安定化に努めています。ソフトウエアは、OSの最終版とともに送り出されます。メジャーアップデートは、容認されますが、可能であれば、初期のテストが失敗することは避けるべきです。加えて、α版もしくはβ版に近くに連れて、ライブ媒体、インストール媒体、もしくはテストのcomposeを破壊するようないかなる変更も避けるべきです。[[Changes]]に該当するパッケージは、取り上げて、メジャーなテストを受けるべきです。
 +
 
 +
利用可能なレポジトリ: [[Repositories#fedora|''fedora'']] [[Repositories#updates-testing|''updates-testing'']]
 +
 
 +
これ以降パッケージの保守管理者が'''やらなければいけないこと'''は、<ref name="must">''Must'' requirements are enforced by Bodhi.</ref>:
  
 
* Push all updates first to updates-testing.  
 
* Push all updates first to updates-testing.  
Line 66: Line 77:
 
* All non critical path updates MUST either reach the prescribed karma level for that update, OR spend at least 3 days in updates-testing before being allowed to move to stable.
 
* All non critical path updates MUST either reach the prescribed karma level for that update, OR spend at least 3 days in updates-testing before being allowed to move to stable.
  
and Maintainers SHOULD (not enforced):  
+
* すべての更新は、最初に updates-testing レポジトリにプッシュすること
 +
* すべての[[ Critical_path_package | critical path]]に該当するパッケージの更新は、一つの +1 karma、もしくは、最低14日間を updates-testing レポジトリで過ごさなければならず、stableに移動される前に、消極的な karma を持っていないこと。
 +
* critical path に該当しない更新の場合は、事前に定められた、更新時に必要なkarmaレベルに達しているか、最低3日間は、updates-testingレポジトリで過ごしてから、stableに移動されることが許される。
 +
 
 +
そして、パッケージ保守管理者は、つぎのことを"やったほうが良い"(強制はされない):
  
 
* Avoid ABI/API changes where possible. If unavoidable, should coordinate a side tag to rebuild packages in or a mass build/update, by filing a [https://pagure.io/releng/new_issue releng ticket].
 
* Avoid ABI/API changes where possible. If unavoidable, should coordinate a side tag to rebuild packages in or a mass build/update, by filing a [https://pagure.io/releng/new_issue releng ticket].
 +
* ABI/APIの変更は可能な限り避けること。もし避けられないのであれば、[https://pagure.io/releng/new_issue releng チケット]を発行し、パッケージをリビルドするために、脇にあるタグを調整するか、一括ビルド/更新をした方が良い。
  
 
=== 節目における凍結(Milestone freezes) ===
 
=== 節目における凍結(Milestone freezes) ===
  
 
During this period there are two [[Milestone freezes]], ''Alpha freeze'' and ''Beta freeze''. Each is scheduled to run for the two weeks leading up to the release date (and in fact lasts until the release is signed off, even if it is delayed). During these times, builds will not be marked ''stable'' and moved from [[Repositories#updates-testing|''updates-testing'']] to [[Repositories#fedora|''fedora'']] (and hence included in the milestone release composes) except for those approved under the [[QA:SOP_blocker_bug_process]] or [[QA:SOP_freeze_exception_bug_process]]. Once the milestone release is made, these freezes are lifted. These freezes are technically not a part of the Updates Policy, but are briefly mentioned here for clarity. The [[Milestone freezes]] page provides more details and is the canonical reference in case of any conflict.
 
During this period there are two [[Milestone freezes]], ''Alpha freeze'' and ''Beta freeze''. Each is scheduled to run for the two weeks leading up to the release date (and in fact lasts until the release is signed off, even if it is delayed). During these times, builds will not be marked ''stable'' and moved from [[Repositories#updates-testing|''updates-testing'']] to [[Repositories#fedora|''fedora'']] (and hence included in the milestone release composes) except for those approved under the [[QA:SOP_blocker_bug_process]] or [[QA:SOP_freeze_exception_bug_process]]. Once the milestone release is made, these freezes are lifted. These freezes are technically not a part of the Updates Policy, but are briefly mentioned here for clarity. The [[Milestone freezes]] page provides more details and is the canonical reference in case of any conflict.
 +
 +
この期間には、二つの[[Milestone freezes]]があり、''α版の凍結''と、''β版の凍結''があります。いずれも二週間にわたって予定されており、リリース日まで(実際には、遅れていても、リリースが承認されるまで)続きます。この間は、ビルドは、"stable"としてみなされておらず、[[Repositories#updates-testing|''updates-testing'']]レポジトリから[[Repositories#fedora|''fedora'']]レポジトリに移動します(つまり、節目のリリースcomposeに含まれます)。ただし、[[QA:SOP_blocker_bug_process]] もしくは [[QA:SOP_freeze_exception_bug_process]]のもとで承認されるものは除外されます。一旦節目となるリリースが作られると、これらの凍結は解除されます。これらの凍結は、技術的には、Updates Policyの一部ではないのですが、明確にするために簡単に説明されています。[[Milestone freezes]] ページにはより詳細な情報が提供されていて、衝突があった場合の標準的な参考文献となっています。
  
 
== β版から一般公開版リリースまで(Beta to Pre Release) ==
 
== β版から一般公開版リリースまで(Beta to Pre Release) ==
Line 78: Line 96:
 
This is the time between the Beta release and the [[Milestone freezes|Final freeze]]. The branched tree should now be stabilized and prepared for release. Major changes should be avoided during this period. Bear in mind that in most cases, the state your package has reached in the stable [[Repositories#fedora|''fedora'']] repository at the time of the Final freeze is the state it will be in for the final release.
 
This is the time between the Beta release and the [[Milestone freezes|Final freeze]]. The branched tree should now be stabilized and prepared for release. Major changes should be avoided during this period. Bear in mind that in most cases, the state your package has reached in the stable [[Repositories#fedora|''fedora'']] repository at the time of the Final freeze is the state it will be in for the final release.
  
repos available: [[Repositories#fedora|''fedora'']] [[Repositories#updates-testing|''updates-testing'']]
+
この時間は、β版リリースと[[Milestone freezes|最終版の凍結]]の間です。Branchedのツリーは、最終版リリースの準備のために安定化されて準備されるべきです。大きな変更はこの期間は避けるべきです。気をつけてほしいことは、ほとんどのケースでは、最終版凍結の時点では、[[Repositories#fedora|''fedora'']]レポジトリにあるあなたのパッケージが安定した状態であり、最終版リリースと同じ状態であるということです。
 +
 
 +
利用可能なレポジトリ: [[Repositories#fedora|''fedora'']] [[Repositories#updates-testing|''updates-testing'']]
  
 
From this point onwards maintainers '''MUST'''<ref name="must" />:  
 
From this point onwards maintainers '''MUST'''<ref name="must" />:  
Line 86: Line 106:
 
* All [[Critical_path_package | critical path]] updates MUST either have a sum of +2 karma, OR spend at least 14 days in updates-testing and have no negative karma.  
 
* All [[Critical_path_package | critical path]] updates MUST either have a sum of +2 karma, OR spend at least 14 days in updates-testing and have no negative karma.  
 
* All non critical path updates MUST either reach the prescribed karma level for that update, OR spend at least 7 days in updates-testing before being allowed to go to stable.
 
* All non critical path updates MUST either reach the prescribed karma level for that update, OR spend at least 7 days in updates-testing before being allowed to go to stable.
 +
 +
これ以降パッケージの保守管理者が '''やらなければならないこと'''は、<ref name="must" />:
 +
 +
* 大きなバージョンアップの更新はしない、ABIの破壊もしくは、APIの変更はしないこと
 +
* 更新は、まずupdate-testingレポジトリに、プッシュすること
 +
* すべての[[Critical_path_package | critical path]] に該当するパッケージの更新は、最低でも合計 +2 karma を得るか、最低14日間をupdates-testingで過ごさねばならず、加えて、消極的な karma を持っていないこと。
 +
* critical path に該当しない更新の場合は、事前に定められた、更新時に必要なkarmaレベルに達しているか、最低 7 日間は、updates-testingレポジトリで過ごしてから、stableに移動されることが許される。
  
 
== 一般公開版リリースの前(Pre release) ==
 
== 一般公開版リリースの前(Pre release) ==
Line 91: Line 118:
 
This is the time after the [[Milestone freezes|Final freeze]]. During this time the release is being composed and only packages granted exceptions through the [[QA:SOP_blocker_bug_process]] or [[QA:SOP_freeze_exception_bug_process]] are marked as ''stable'' and moved to the [[Repositories#fedora|''fedora'' repository]]. The [[Repositories#updates|''updates'']] repository is enabled at some point during this time, and packages other than freeze exception / blocker fixes are queued for so called "zero day" updates, meaning they will be available in the ''updates'' repository at the time of the release (day zero).
 
This is the time after the [[Milestone freezes|Final freeze]]. During this time the release is being composed and only packages granted exceptions through the [[QA:SOP_blocker_bug_process]] or [[QA:SOP_freeze_exception_bug_process]] are marked as ''stable'' and moved to the [[Repositories#fedora|''fedora'' repository]]. The [[Repositories#updates|''updates'']] repository is enabled at some point during this time, and packages other than freeze exception / blocker fixes are queued for so called "zero day" updates, meaning they will be available in the ''updates'' repository at the time of the release (day zero).
  
repos available: [[Repositories#fedora|''fedora'']] [[Repositories#updates|''updates'']] [[Repositories#updates-testing|''updates-testing'']]
+
これは、[[Milestone freezes|最終版の凍結]]後の時間です。この時間では、リリースが構成され、[[QA:SOP_blocker_bug_process]]または[[QA:SOP_freeze_exception_bug_process]]を介して例外を許可されたパッケージのみが ''stable''としてマークされ、[[Repositories#fedora | ''fedora'' レポジトリ]] に移動されます。 [[Repositories#updates | ''updates'']]リポジトリはこの間のある時点で有効になり、例外 または blocker以外の凍結されていないパッケージは、"0日"の更新と呼ばれる更新のために、キューイングされます。つまり、それらのパッケージは、リリース時点で、''updates''レポジトリの中で利用できるようになります(ゼロ日)。
 +
 
 +
利用可能なレポジトリ: [[Repositories#fedora|''fedora'']] [[Repositories#updates|''updates'']] [[Repositories#updates-testing|''updates-testing'']]
  
 
During this period:
 
During this period:
Line 102: Line 131:
  
 
<references/>
 
<references/>
 +
 +
この期間は:
 +
 +
* 最終版に反映される全ての更新では リリースをブロックしているバグ、もしくは、凍結時に例外扱いされていたバグが'''修正されなければなりません'''<ref name="must" />
 +
* 全ての更新は、updates-testing レポジトリに行きます。
 +
* すべての[[Critical_path_package | critical path]] に該当するパッケージの更新は、最低でも合計 +2 karma を得るか、最低14日間をupdates-testingで過ごさねばならず、加えて、消極的な karma を持っていないこと。
 +
* critical path に該当しない更新の場合は、事前に定められた、更新時に必要なkarmaレベルに達しているか、最低 7 日間は、updates-testingレポジトリで過ごしてから、stableに移動されることが許される。
 +
* 一旦''updates''レポジトリが有効になると、[[Repositories#stable|''stable'']]であるビルドは、''updates''レポジトリに行きます。[[Repositories#fedora|''fedora'']]レポジトリには行きません。
 +
 +
<references/>
 +
 
= 一般公開版のリリース(Stable Releases) =
 
= 一般公開版のリリース(Stable Releases) =
  

Revision as of 21:57, 2 April 2019

Important.png
This page is deprecated
FESCo docs have moved to docs.fp.o with source hosted in a pagure repo. This page is now at https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/.


導入(Introduction)

Fedora has differing policies for each of its branches. This document describes for maintainers what sort of updates should be created in packages for each of the various branches of existing Fedora. In the event of questions or clarifications, please file a FESCo trac ticket or discuss on the devel list. In general, releases should go from less conservative (rawhide) to more so (the oldest supported stable release). This document attempts to describe when and what kinds of updates maintainers should push to Fedora users of its various branches. The Stable release updates vision from the Fedora Board includes more high level discussion and philosophy, while this document is more a practical guide. Refer to Package update HOWTO for the technical steps on pushing the updates. The Fedora Release Life Cycle provides a more detailed overview of the development process.

Fedoraは、ブランチごとのポリシーに違いがあります。この文書は、パッケージ保守管理者向けです。既存のFedoraにあるブランチごとのパッケージにどのような種類の更新をすべきかについて記述しています。質問や不明確な点を明確にする場合は、FESCo trac チケット にチケットを追加するか、devel メーリングリストで議論してください。大雑把に言うならば、リリースとは、あまり保守的でない状態(rawhie)からより保守的な状態(最も古く、サポートされた安定リリース)へと変わるべきです。 この文書では、パッケージ保守管理者が、いつ、どのような種類の更新をいろんなブランチを使っているFedoraユーザにプッシュすべきかを述べるように心がけています。Fedora委員会からのStable release updates vision には、より高レベルの議論や哲学が含まれておりますが、このドキュメントはより実践的な入門書です。更新をプッシュするための技術的な手順は、Package update HOWTOを参照してください。Fedora Release Life Cycleには、より詳細な開発工程の概要が述べられています。

Rawhide / devel / master

Rawhide is the always-rolling development tree. Package updates built for rawhide are composed every day and pushed out to all rawhide consumers. There are no "updates" or "updates-testing" Repositories for rawhide. The Bodhi updates system is not used. New builds against this tree also are added to the build root (ie, other packages build from them) daily (usually).

repos available: rawhide

Rawhide は、いつも開発中のツリーです。Rawhide用にビルドされたパッケージの更新は、毎日行われていて、全Rawhideの利用者にプッシュされています。Rawhideには、"updates"や"updates-testing" といったRepositoriesは存在しません。Bodhi更新システムは使われません。Rawhideのツリーに対する新しいビルドもまた、(大抵は)毎日ビルドルートに追加されます(例えばほかのパッケージはそれらからビルドされます)。

利用可能なレポジトリ: rawhide

For updates to rawhide packages, Maintainers SHOULD:

  • Try not to push a clearly broken build (breaks the default buildroot package set, etc)
  • When a proposed update contains an ABI or API change: notify a week in advance both fedora-devel and maintainers directly (using the packagename-owner@ alias) whose packages depend on yours to rebuild or offer to do these rebuilds for them.
  • Use a separate buildsystem tag when dealing with mass builds of many packages, so they can land at the same time. File a ticket with https://fedorahosted.org/rel-eng/newticket for this.
  • Feel free to push out the newest version of packages as long as they do not cause breakage. Also keep in mind when the next Fedora release will be branched off, and be fairly confident that there will be a stable enough release in time for the next Fedora release. Otherwise you may have to back down to an older, stable version after the branching, which may involve epochs and other inconveniences.
  • If approved by FESCo push pre-release versions of low level packages. Certain low-level packages (approved by FESCo), including (but not limited to) glibc and gcc to provide pre-release versions here. The benefits of the early real-world testing of and upstream collaboration on these key packages far exceeds the risks that they may introduce.

Rawhideパッケージへの更新のため、パッケージ保守管理者は次のことをすべきです:

  • デフォルトのビルドルートのパッケージセットを破壊するような、明らかに壊れているビルドをプッシュしないこと。
  • 提案された更新に、ABIやAPIの変更が含まれている場合、一週間前に通知すること。通知先は、fedora-devel と あなたのパッケージに依存してるパッケージの保守管理者(packagename-owner@のエイリアスを使って) に直接知らせ、リビルドすること、もしくはリビルドすることを申し出ること。
  • たくさんのパッケージの大量にビルドする時には、別々のビルドシステムタグを分けて使うこと。そうすれば、同時にパッケージをビルドできます。この場合は、https://fedorahosted.org/rel-eng/newticket にチケットを発行してください。
  • パッケージが何かを壊さない限り、パッケージの私いバージョンを自由にプッシュして良いです。また、次のFedoraリリースがいつ分岐されるのかを覚えておいてください。次のFedoraリリースに間に合うように、安定した十分なリリースがあることを十分に確信してください。さもないと、あなたは古く、安定しているバージョンに戻さねばならないかもしれません。分岐した後では、様々な出来事や不都合を巻き起こす可能性があります。
  • もし、FESCoによって承認されたならば、低レベルのパッケージのリリース前のバージョンをプッシュしてください。特定の低レベルのパッケージ(FESCoが承認済みの)には、glibcとgccが含まれていて(これらに限られてはいませんが)、リリース前のバージョンを提供しています。早いうちに現実世界でテストして、パッケージの開発元との協働作業することは、それらが引き起こすかもしれないずっとリスクを上回るメリットがあります。

Branchedリリース(Branched release)

A Branched release exists for part of the development cycle. It is branched off Rawhide and eventually becomes the next stable release. After the Bodhi enabling point, Branched releases do use the update feedback system (Bodhi). There are several "phases" that a branched release goes through that affect what updates can and should be done. In general maintainers should keep in mind that this tree is being used to stabilize for the next release, so changes should be careful and considered and heading toward stability.

Branchedリリースは、開発サイクルの一部です。Branchedリリースは、Rawhideから枝分かれされ、徐々に次の安定したリリースになっていきます。Bodhiが有効になる 地点を過ぎると、Branchedリリースは、パッケージの更新状況をフィードバックしてくれるシステム(Bodhi)を使います。Branchedリリースには、何段階かがあり、何のアップデートができ、また、されるべきかが決まります。一般的にパッケージの保守管理者が留意しておくべきことは、このツリーは、次のリリースに向けて、安定するために使われるということで、変更は十分に注意し考慮されるべきであり、安定に向かっているべきであるということです。

Branched, Bodhiが有効になる前(pre-Bodhi enabling)

For a short time after the branch event happens but before the Bodhi enabling point, the Branched release works just like Rawhide: builds submitted by packagers are considered stable immediately, and sent to the fedora repository directly in the next nightly compose. There are no restrictions beyond those for Rawhide at this point, but maintainers SHOULD be thinking about stabilization from this point onwards, and making sure their packages will be in good condition well in advance of the stable release. Some packages will be signed at this point, but not all of them. You may have to use --nogpgcheck to install or update.

枝分かれが発生した後の短い間で、Bodhiが有効になる前、Branchedリリースは、Rawhideのように機能しています: パッケージ作成者が投稿したビルドは、すぐにstable として扱われます。そして、次の夜のcomposeで、fedora レポジトリに直接送られます。この時点では、Rawhideのビルドと同等の制限しかないのですが、パッケージの保守管理者は、この時点からパッケージを安定させることを考えているべきであり、安定したリリースに先んじて、彼らのパッケージが良い状態にあることを確認しておくべきです。いくつかのパッケージはこの段階でサインされるでしょうが、全部ではありません。あなたは、--nogpgcheck をつけてインストールもしくは、更新しなければならないかもしれません。

有効なレポジトリ: fedora

Bodhiが有効になっている時(Bodhi enabling)

At the Bodhi enabling point, the Bodhi update system is enabled for the Branched release. After this point for the entire remaining lifetime of the release, all updates must go through Bodhi before they can be marked stable and moved to either fedora or updates. At present, the Bodhi enabling point occurs on the day of the Beta freeze, but it is important to remember that they are distinct events: the Beta freeze lasts until Beta release, but Bodhi enabling is permanent.

Bodhiが有効化されると、Bodhi パッケージ更新システムは、Branchedリリースに対して有効となります。この地点を超えると、リリースの残りの生存時間はずっと全ての更新は、Bodhiを通過せねばなりません。パッケージが安定したとマークされ、そして、fedora レポジトリ、もしくは、updatesレポジトリに移動されるまでは。現在は、Bodhi有効化地点は、β版凍結した日になっていますが、重要なのは、β版の凍結は、β版がリリースされるまで続くのに対して、Bodhi有効状態は、ずっと続くという違いがあることを覚えておくことです。

有効なレポジトリ: fedora, updates-testing

At this point all packages will be signed and gpgcheck should be enabled for all installs/updates. この地点では、すべてのパッケージがサインされます。そして、gpgcheckは、すべてのインストール及びアップデートに対して有効となるべきです。

β版の前(Pre Beta)

This is the time between the Bodhi enabling point and the Beta release. During this time we are attempting to stabilize the major versions of software that will be shipped with the final release of the OS. Major updates can be tolerated, but breaking things for early testers should be avoided if possible. Additionally, as we get close to Alpha or Beta releases any change that breaks composes of Live media, install media or testing should be avoided. Packages for Changes should be landing and getting major testing.

repos available: fedora updates-testing

これは、Bodhi有効化地点とβ版リリースとの間の時間です。この時間には、私たちは、ソフトウエアのメジャーバージョンの安定化に努めています。ソフトウエアは、OSの最終版とともに送り出されます。メジャーアップデートは、容認されますが、可能であれば、初期のテストが失敗することは避けるべきです。加えて、α版もしくはβ版に近くに連れて、ライブ媒体、インストール媒体、もしくはテストのcomposeを破壊するようないかなる変更も避けるべきです。Changesに該当するパッケージは、取り上げて、メジャーなテストを受けるべきです。

利用可能なレポジトリ: fedora updates-testing

これ以降パッケージの保守管理者がやらなければいけないことは、[1]:

  • Push all updates first to updates-testing.
  • All critical path updates MUST either get one +1 karma, OR spend at least 14 days in updates-testing and have no negative karma before being moved to stable.
  • All non critical path updates MUST either reach the prescribed karma level for that update, OR spend at least 3 days in updates-testing before being allowed to move to stable.
  • すべての更新は、最初に updates-testing レポジトリにプッシュすること
  • すべての critical pathに該当するパッケージの更新は、一つの +1 karma、もしくは、最低14日間を updates-testing レポジトリで過ごさなければならず、stableに移動される前に、消極的な karma を持っていないこと。
  • critical path に該当しない更新の場合は、事前に定められた、更新時に必要なkarmaレベルに達しているか、最低3日間は、updates-testingレポジトリで過ごしてから、stableに移動されることが許される。

そして、パッケージ保守管理者は、つぎのことを"やったほうが良い"(強制はされない):

  • Avoid ABI/API changes where possible. If unavoidable, should coordinate a side tag to rebuild packages in or a mass build/update, by filing a releng ticket.
  • ABI/APIの変更は可能な限り避けること。もし避けられないのであれば、releng チケットを発行し、パッケージをリビルドするために、脇にあるタグを調整するか、一括ビルド/更新をした方が良い。

節目における凍結(Milestone freezes)

During this period there are two Milestone freezes, Alpha freeze and Beta freeze. Each is scheduled to run for the two weeks leading up to the release date (and in fact lasts until the release is signed off, even if it is delayed). During these times, builds will not be marked stable and moved from updates-testing to fedora (and hence included in the milestone release composes) except for those approved under the QA:SOP_blocker_bug_process or QA:SOP_freeze_exception_bug_process. Once the milestone release is made, these freezes are lifted. These freezes are technically not a part of the Updates Policy, but are briefly mentioned here for clarity. The Milestone freezes page provides more details and is the canonical reference in case of any conflict.

この期間には、二つのMilestone freezesがあり、α版の凍結と、β版の凍結があります。いずれも二週間にわたって予定されており、リリース日まで(実際には、遅れていても、リリースが承認されるまで)続きます。この間は、ビルドは、"stable"としてみなされておらず、updates-testingレポジトリからfedoraレポジトリに移動します(つまり、節目のリリースcomposeに含まれます)。ただし、QA:SOP_blocker_bug_process もしくは QA:SOP_freeze_exception_bug_processのもとで承認されるものは除外されます。一旦節目となるリリースが作られると、これらの凍結は解除されます。これらの凍結は、技術的には、Updates Policyの一部ではないのですが、明確にするために簡単に説明されています。Milestone freezes ページにはより詳細な情報が提供されていて、衝突があった場合の標準的な参考文献となっています。

β版から一般公開版リリースまで(Beta to Pre Release)

This is the time between the Beta release and the Final freeze. The branched tree should now be stabilized and prepared for release. Major changes should be avoided during this period. Bear in mind that in most cases, the state your package has reached in the stable fedora repository at the time of the Final freeze is the state it will be in for the final release.

この時間は、β版リリースと最終版の凍結の間です。Branchedのツリーは、最終版リリースの準備のために安定化されて準備されるべきです。大きな変更はこの期間は避けるべきです。気をつけてほしいことは、ほとんどのケースでは、最終版凍結の時点では、fedoraレポジトリにあるあなたのパッケージが安定した状態であり、最終版リリースと同じ状態であるということです。

利用可能なレポジトリ: fedora updates-testing

From this point onwards maintainers MUST[1]:

  • Avoid Major version updates, ABI breakage or API changes if at all possible.
  • Push updates first to updates-testing.
  • All critical path updates MUST either have a sum of +2 karma, OR spend at least 14 days in updates-testing and have no negative karma.
  • All non critical path updates MUST either reach the prescribed karma level for that update, OR spend at least 7 days in updates-testing before being allowed to go to stable.

これ以降パッケージの保守管理者が やらなければならないことは、[1]:

  • 大きなバージョンアップの更新はしない、ABIの破壊もしくは、APIの変更はしないこと
  • 更新は、まずupdate-testingレポジトリに、プッシュすること
  • すべての critical path に該当するパッケージの更新は、最低でも合計 +2 karma を得るか、最低14日間をupdates-testingで過ごさねばならず、加えて、消極的な karma を持っていないこと。
  • critical path に該当しない更新の場合は、事前に定められた、更新時に必要なkarmaレベルに達しているか、最低 7 日間は、updates-testingレポジトリで過ごしてから、stableに移動されることが許される。

一般公開版リリースの前(Pre release)

This is the time after the Final freeze. During this time the release is being composed and only packages granted exceptions through the QA:SOP_blocker_bug_process or QA:SOP_freeze_exception_bug_process are marked as stable and moved to the fedora repository. The updates repository is enabled at some point during this time, and packages other than freeze exception / blocker fixes are queued for so called "zero day" updates, meaning they will be available in the updates repository at the time of the release (day zero).

これは、最終版の凍結後の時間です。この時間では、リリースが構成され、QA:SOP_blocker_bug_processまたはQA:SOP_freeze_exception_bug_processを介して例外を許可されたパッケージのみが stableとしてマークされ、 fedora レポジトリ に移動されます。 updatesリポジトリはこの間のある時点で有効になり、例外 または blocker以外の凍結されていないパッケージは、"0日"の更新と呼ばれる更新のために、キューイングされます。つまり、それらのパッケージは、リリース時点で、updatesレポジトリの中で利用できるようになります(ゼロ日)。

利用可能なレポジトリ: fedora updates updates-testing

During this period:

  • All updates pulled into the release MUST[1] fix an accepted blocker or freeze exception bug.
  • All update pushes will go to updates-testing.
  • All critical path updates MUST either have a sum of +2 karma, OR spend at least 14 days in updates-testing and have no negative karma.
  • All non critical path updates MUST either reach the prescribed karma level for that update, OR spend at least 7 days in updates-testing before being allowed in stable.
  • Once the updates repository is available, builds marked as stable will go there instead of to fedora.
  1. 1.0 1.1 1.2 1.3 Must requirements are enforced by Bodhi.

この期間は:

  • 最終版に反映される全ての更新では リリースをブロックしているバグ、もしくは、凍結時に例外扱いされていたバグが修正されなければなりません[1]
  • 全ての更新は、updates-testing レポジトリに行きます。
  • すべての critical path に該当するパッケージの更新は、最低でも合計 +2 karma を得るか、最低14日間をupdates-testingで過ごさねばならず、加えて、消極的な karma を持っていないこと。
  • critical path に該当しない更新の場合は、事前に定められた、更新時に必要なkarmaレベルに達しているか、最低 7 日間は、updates-testingレポジトリで過ごしてから、stableに移動されることが許される。
  • 一旦updatesレポジトリが有効になると、stableであるビルドは、updatesレポジトリに行きます。fedoraレポジトリには行きません。
  1. Cite error: Invalid <ref> tag; no text was provided for refs named must

一般公開版のリリース(Stable Releases)

哲学(Philosophy)

Releases of the Fedora distribution are like releases of the individual packages that compose it. A major version number reflects a more-or-less stable set of features and functionality. As a result, we should avoid major updates of packages within a stable release. Updates should aim to fix bugs, and not introduce features, particularly when those features would materially affect the user or developer experience. The update rate for any given release should drop off over time, approaching zero near release end-of-life; since updates are primarily bugfixes, fewer and fewer should be needed over time.

This necessarily means that stable releases will not closely track the very latest upstream code for all packages. We have rawhide for that.

Rebases should be carefully considered with respect to their dependencies. A rebase that required (or provided) a new Python ABI, for example, would almost certainly not be allowed. ABI changes in general are very strongly discouraged, they force larger update sets on users and they make life difficult for third-party packagers. Additionally, updates that convert resources or configuration one way (ie, from older->newer) should be approached with extreme caution as there would be much less chance of backing out an update that did these things.

Whenever possible packagers should work with upstream to come up with stable branch releases or common patches for older releases, particularly when rebasing would require large dependency chain updates.

repos available: fedora updates updates-testing

重要パッケージへの更新(Updates to 'critical path' packages)

Updates that constitute a part of the 'critical path' package set (defined below) including security updates MUST follow the rules as defined for critical path packages for pending releases, meaning:

  • At the time of the request to stable, the update needs to have either a Bodhi karma sum of 2 OR
  • It must spend at least 14 days in updates-testing AND have no negative Bodhi karma points.

For the purposes of this policy, the 'critical path' package set is defined as the following:

Changes to this definition may only be made by FESCo or their delegate.

その他全ての更新(All other updates)

All other updates MUST either:

  • reach the criteria laid out in the previous section OR
  • reach the positive Bodhi karma threshold specified by the updates submitter OR
  • spend some minimum amount of time in updates-testing, currently one week

Package maintainers MUST:

  • Avoid Major version updates, ABI breakage or API changes if at all possible.
  • Avoid changing the user experience if at all possible.
  • Avoid updates that are trivial or don't affect any Fedora users.

Package maintainers SHOULD:

  • Push only major bug fixes and security fixes to the previous stable releases (i.e., at present, Fedora 34 and before).

例外(Exceptions)

Some classes of software will not fit in these guidelines. If your package does not fit in one of the classes below, but you think it should be allowed to update more rapidly, propose a new exception class to FESCo and/or request an exception for your specific update case.

Note that you should open this dialog BEFORE you build or push updates. In the event that an issue is raised in the middle of an update already in progress, make sure you turn off autokarma pushes — this can be done while the update is pending in bodhi.

The following things would be considered in a exception request.

Things that would make it more likely to grant a request:

  • The package is a "leaf" node. Nothing depends on it or requires it.
  • The update fixes a security issue that would affect a large number of users.
  • The update doesn't change ABI/API and nothing needs to be rebuilt against the new version.
  • The update fixes serious bugs that many fedora users are encountering.

Things that would make it less likely to grant a request:

  • The update converts databases or resources one way to a new format.
  • The update requires admin intervention for the service to keep working (config file format changes, etc)
  • The update causes behavior changes (something that was denied is allowed, etc)
  • The update changes the UI the end user sees (moves menus or buttons around, changes option names on command line)
  • The update fixes bugs that no fedora user has reported nor would affect many fedora users (ie, fixes for other platforms or configurations).

例外の一覧(Exceptions list)

The following packages have been granted exceptions for the following reasons:

カーネルパッケージ(kernel package)

  • Manpower of kernel maintainers prevents us from easily backporting all the bug fixes, security fixes and new hardware enablement we would need to maintain older, no longer supported kernels.
  • Additionally, multiple kernels can be installed/booted, allowing users to boot older kernels in the event newer ones fail to work, and allowing time for kernel maintainers to fix any critical bugs in new kernels on older stable releases.

KDE

Refer to the KDE update policy for more details

girara と zathura(girara and zathura)

These packages are allowed to update in stable releases together. See https://fedorahosted.org/fesco/ticket/1255

セキュリティ修正(Security fixes)

If upstream does not provide security fixes for a particular release, and if backporting the fix would be impractical, then the package maintainer(s) MUST open a FESCo ticket for approval to rebase the package to a version that upstream supports.

Package maintainers MUST:

  • Avoid Major version updates, AI breakage, or API changes if at all possible
  • Avoid changing the user or developer experience if at all possible

FESCo will review the ticket in a timely manner and give guidance as to how the package maintainer(s) should proceed. By way of information, several common items that would make it less likely for FESCo to grant a rebase request are listed below. Please note, however, that this list is not exhaustive.

FESCo will be less likely to grant a rebase request if:

  • The update requires user or administrator intervention to keep working
  • The update requires configuration files or databases or other resources to convert to a new format
  • The update causes policy or behavior changes (such as when something that was previously denied is now allowed, etc.)
  • The update changes the way the end user interacts with the user interface (such as moving menus or buttons to a new location, changing names of command-line arguments, etc.)
  • The rebase only addresses issues that are likely to affect a subjectively small number of Fedora users

例外扱いのパッケージ(Packages with Exceptions Granted)

  • kernel

相互運用性(Interoperability)

If a package primarily serves to interoperate with hardware or network protocols, and the interface changes, then a package may be rebased if necessary. This includes network games, IM protocols, hardware music players, cell phones, etc. These packages may also be updated to add support for new devices or formats in compatible ways.

Examples of this type of package: Package-x-generic-16.pnglibopenraw, Package-x-generic-16.pnglibimobiledevice, Package-x-generic-16.pngcalibre, Package-x-generic-16.pngpilot-link

データベースパッケージ(Database packages)

Packages like virus scanners and spam filters typically have two components: a rules engine and a database. The database is expected to update frequently (sometimes not through the normal OS update mechanisms), but the rules engine is usually fairly static. However, if the maintained database changes to require a new version of the rules engine, then the package may be a candidate for rebasing.

Examples of this type of package: Package-x-generic-16.pngspamassassin, Package-x-generic-16.pngclamav

例(Examples)

  • Mozilla releases Firefox 4.0.1 with a security fix. Fedora 12 is shipping with 3.0.7, and though the bug is also present there, the fix in 4.0.1 does not apply because that part of the browser has been completely rewritten. Rebasing to 4.0.1 would be allowed since this is a security fix.
  • automake releases a new version that changes some warning conditions to errors. This would break the build process for existing packages, and would not be allowed.
  • AOL changes their instant messenger protocol in a way that requires an update to libpurple. The only upstream version of libpurple that supports the new protocol is an ABI break relative to the version in the current Fedora release. Rebasing would be allowed since this is an interoperability requirement.
  • Abiword releases a new version that adds compatibility with WordStar 4.0 documents. It also completely updates the user interface to use pie menus. This would be a feature enhancement with a major user experience change, and would not be allowed.
  • WebKit requires an update to solve a security problem. This requires updating Midori to a version with some minor menu layout changes. This would be a judgement call based on how intrusive the changes are (removing the File menu would be rude, but moving the plugin configuration menu item would be acceptable).
  • Firefox releases an update that only contains changes for other platforms. This update could be pushed to rawhide (just to keep up with the latest version), but should not be pushed to stable releases, as it does no good to our users and wastes resources to build, update, mirror and download to our users.
  • Terminal fails to build from source when tested in a mass rebuild. An updated package should be pushed to rawhide. Fixes for stable releases should be tested and even commited, but unless there is a problem with the previous existing build in the stable release, no update should be issued. This update would not change any user facing functions of the package.
  • KDE upstream releases a new major version, and at the same time stops supporting the older release that is in Fedora N and Fedora N-1. This release includes a large number of bugfixes, mixed with enhancements and security fixes. An exception for this type of update would need to consider: ability to backport major fixes/security issues, type and amount of bugs fixed, ability to not update other parts of fedora for this update (ie, avoid qt or other base library ABI changes), amount of testing and end user visible changes. An exception like this would be on a case by case bases based on all the above.

更新に付随する問題及び課題(Problems or issues with Updates)

In an effort to learn from any mistakes made, in the event of a update causing a widespread or serious problem for Fedora users, please file a FESCo trac ticket. FESCo will discuss and try and work to prevent the issue from happening again. A past record of such issues can be found at Updates Lessons.

FESCo will work with QA and others to prevent or mitigate the issue.

お互いに依存関係にあるパッケージの更新(Updating inter-dependent packages)

When one updated package requires another (or more than one other), the packages should be submitted together as a single update. For instance, if package A depends on packages B and C, and you want to update to a new version of package A which requires new versions of B and C, you must submit a single update containing the updated versions of all three packages. It is a bad idea to submit three separate updates, because if the update for package A is pushed stable before the updates for packages B and C, it will cause dependency problems. There is information on how to submit multi-package updates in the package update HOWTO.

Taskotron

The Taskotron automated testing system runs two tests against all updates submitted to Bodhi: a dependency check (to ensure all dependencies of the package(s) can be fulfilled from the repositories) and an upgrade path check (to ensure the update does not break the upgrade path from release to release, i.e. that the update does not contain a package versioned higher than the newest version of the same package available in a later Fedora release). Taskotron adds comments to Bodhi with the results of these test runs. A failure of either test will cause Bodhi#Karma_Automatism for the update to be disabled (if it was enabled). If you submit an update that fails one of these tests, please check the result and fix the problem. If you are sure the failure is an error in the test rather than an error in your package, you may still manually push the update or re-enable karma automatism.

Previously, the old AutoQA system ran similar checks to Taskotron. The scope of these automated checks is expected to expand in future. The QA:Package_Update_Acceptance_Test_Plan was written as the original plan for AutoQA update validation, and may still be seen as a framework for future work on Taskotron.

Bodhiの利用(Bodhi Use)

Bodhi is meant as the method for getting updates into an existing release or pre-release. It does provide a testing mechanism to make sure that nothing unforeseen will arise, but the expectation is that packages submitted are likely ready to ship as an update. As such, any packages submitted to bodhi must be done with the intent that the package submitted is ready for general consumption. The users kind enough to test these packages have come to expect this, and doing anything else moves against their good will, and is likely to drive testers away. Bodhi and updates-testing are not a place for experimentation or advanced notification of potentially disruptive updates. These should be handled with packages in Copr or another public repository with a message to call for testing on the appropriate mailing lists.