From Fedora Project Wiki

m (Adamwill moved page Fedora 27 Alpha Release Criteria to Basic Release Criteria: Implementing 'no more Alpha' process changes: see https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/KIVWSHFKRS4RJEFTCAWZBKDCCETKPI4F/)
m (fix a wrongly-formatted link)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Alpha Objectives ==
+
== Basic Objectives ==
The objectives of the Alpha release are to:
+
The objectives for all [[Releases/Branched|Branched]] and [[Releases/Rawhide|Rawhide]] nightly composes, as well as Beta and Final releases, are to:
# Publicly release installable media versions of a [[Changes/Policy|feature complete]] test release   
+
# Publicly release installable media versions of a test release   
# Test [[Releases/27/ChangeSet|accepted Changes of {{FedoraVersion|long|27}}]]
+
# Test accepted Changes for future releases
# Identify as many [https://bugzilla.redhat.com/showdependencytree.cgi?id={{FedoraVersion|short|27}}BetaBlocker&hide_resolved=1 {{FedoraVersion|short|27}} Beta blocker bugs] as possible
+
# Identify as many [https://bugzilla.redhat.com/showdependencytree.cgi?id=BetaBlocker&hide_resolved=1 Beta blocker bugs] as possible
# Identify as many [https://bugzilla.redhat.com/showdependencytree.cgi?id={{FedoraVersion|short|27}}FinalBlocker&hide_resolved=1 {{FedoraVersion|short|27}} Final blocker bugs] as possible
+
# Identify as many [https://bugzilla.redhat.com/showdependencytree.cgi?id=FinalBlocker&hide_resolved=1 Final blocker bugs] as possible
  
== Alpha Release Requirements ==
+
== Basic Release Requirements ==
 
{{Template:Release_criteria_preamble|prerelease=Alpha}}
 
{{Template:Release_criteria_preamble|prerelease=Alpha}}
 
=== <span style="text-decoration:underline">Process requirements</span> ===
 
{{anchor|alpha-blockers-closed}}
 
==== Alpha blockers CLOSED ====
 
All bugs blocking the [https://bugzilla.redhat.com/showdependencytree.cgi?id={{FedoraVersion|short|27}}AlphaBlocker&hide_resolved=1 Alpha tracker] must be [[BugZappers/BugStatusWorkFlow#CLOSED|CLOSED]].
 
 
{{anchor|fesco-blockers-fixed}}
 
==== FESCo blocker bugs ====
 
All bugs deemed by FESCo to block the milestone release must be fixed.
 
{{hidden|header=Milestone release?|content=This criterion simply means that issues FESCo deems as blocking Alpha must be fixed for Alpha, issues deemed as blocking Beta must be fixed for Beta, and issues deemed as blocking Final must be fixed for Final.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=Automatic blockers|content=Bugs that violate this criterion - i.e. bugs designated as blockers by FESCo - are considered "automatic blockers", they do not have to go through the review process. See [[QA:SOP_blocker_bug_process#Automatic_blockers]] for more details on the automatic blocker procedure.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=References|content=
 
* [https://lists.fedoraproject.org/pipermail/test/2013-June/116531.html Proposed 2013-06-21], [https://lists.fedoraproject.org/pipermail/test/2013-July/116738.html implemented 2013-07-02]
 
* In practice FESCo has always been able to simply ''deem'' bugs as needing to be fixed, but there was no mechanism in place for enforcing such decisions. This criterion allows them to be enforced through the [[QA:SOP_blocker_bug_process|blocker bug process]].
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
  
 
{{anchor|correct-checksums}}
 
{{anchor|correct-checksums}}
Line 61: Line 46:
 
* Release-blocking ARM disk images must boot to the initial-setup utility.
 
* Release-blocking ARM disk images must boot to the initial-setup utility.
 
* Release-blocking cloud images must allow login with the user authentication configuration requested during instance creation.
 
* Release-blocking cloud images must allow login with the user authentication configuration requested during instance creation.
{{hidden|header=Boot menu contents|content=The boot menu for all supported installer and live images should include an entry which causes both installation and the installed system to use a generic, highly compatible video driver (such as 'vesa'). This mechanism should work correctly, launching the installer or desktop and attempting to use the generic driver.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
+
{{hidden|header=Boot menu contents|content=The boot menu for all supported installer and live images should include an entry which causes both installation and the installed system to attempt to use a generic, highly compatible video driver (such as 'vesa').|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=System-specific bugs|content=System-specific bugs don't necessarily constitute an infringement of this criterion - for instance, if the installer or desktop fails to start because of a bug in support for some specific graphics card, that is unlikely to constitute a violation. See [[Blocker_Bug_FAQ]] for more discussion of this.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=System-specific bugs|content=System-specific bugs don't necessarily constitute an infringement of this criterion - for instance, if the installer or desktop fails to start because of a bug in support for some specific graphics card, that is unlikely to constitute a violation. See [[Blocker_Bug_FAQ]] for more discussion of this.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=References|content=
 
{{hidden|header=References|content=
Line 68: Line 53:
 
* Implemented [https://lists.fedoraproject.org/pipermail/test/2010-July/092231.html 2010-07-23].
 
* Implemented [https://lists.fedoraproject.org/pipermail/test/2010-July/092231.html 2010-07-23].
 
* Rewritten as part of major Fedora 19 criteria revision.
 
* Rewritten as part of major Fedora 19 criteria revision.
 +
* 'Basic graphics' mode portion split between Beta and Final [https://lists.fedoraproject.org/archives/list/test@lists.fedoraproject.org/message/6QZAKQI3MYMVF5RPUJDRZGQC6LWK2GLM/ 2019-04-02]
 
* Test cases: see test cases for [[#release-blocking-images-must-boot|"Release-blocking images must boot"]]
 
* Test cases: see test cases for [[#release-blocking-images-must-boot|"Release-blocking images must boot"]]
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
Line 143: Line 129:
 
==== Disk layouts ====
 
==== Disk layouts ====
 
The installer must be able to complete an installation to a single disk using automatic partitioning.
 
The installer must be able to complete an installation to a single disk using automatic partitioning.
{{hidden|header=Details!|content=...well, so long as the disk is big enough, of course. It must work whether the disk is formatted or not and whether or not it contains any existing data - but since this is an Alpha, it's OK if it can only install to a disk with existing data by overwriting it.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
+
{{hidden|header=Details!|content=...well, so long as the disk is big enough, of course. It must work whether the disk is formatted or not and whether or not it contains any existing data - but before Beta, it's OK if it can only install to a disk with existing data by overwriting it.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=References|content=
 
{{hidden|header=References|content=
 
* Proposed [https://lists.fedoraproject.org/pipermail/test/2012-October/110494.html 2012-10-01], implemented [https://lists.fedoraproject.org/pipermail/test/2012-October/110531.html 2012-10-02].
 
* Proposed [https://lists.fedoraproject.org/pipermail/test/2012-October/110494.html 2012-10-01], implemented [https://lists.fedoraproject.org/pipermail/test/2012-October/110531.html 2012-10-02].
Line 153: Line 139:
 
The scripted installation mechanism must provide a working function for creating local user accounts, including the ability to specify a hashed password, and for specifying a hashed password for the root account.
 
The scripted installation mechanism must provide a working function for creating local user accounts, including the ability to specify a hashed password, and for specifying a hashed password for the root account.
 
{{hidden|header=References|content=
 
{{hidden|header=References|content=
* Part of Fedora 22 Server release criteria drafts, [added https://lists.fedoraproject.org/pipermail/server/2014-June/001294.html] 2014-06-26
+
* Part of Fedora 22 Server release criteria drafts, [https://lists.fedoraproject.org/pipermail/server/2014-June/001294.html added  2014-06-26]
 
* Test case: [[QA:Testcase_kickstart_user_creation]]
 
* Test case: [[QA:Testcase_kickstart_user_creation]]
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
Line 226: Line 212:
  
 
{{anchor|updates}}
 
{{anchor|updates}}
==== Updates ====
+
{{anchor|software-install-remove-update}}
The installed system must be able to download and install updates with the default console package manager.
+
==== Installing, removing and updating software ====
{{hidden|header=Bugs in particular updates|content=A bug in some particular update package will not usually constitute a violation of this criterion. It's really about the update mechanism functioning correctly. So if the default console package manager is working fine, but the update transaction fails because there happen to be two conflicting packages in the repositories, that's not a release blocking problem.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
+
The installed system must be able appropriately to install, remove, and update software with the default console tool for the relevant software type (e.g. default console package manager). This includes downloading of packages to be installed/updated.
 +
{{hidden|header=Software types|content=This includes - but is not necessarily limited to - non-module packages, official module streams that are enabled (including any enabled by default in a release-blocking deployment), and rpm-ostree updates and rollbacks for any release-blocking rpm-ostree-based deployment. The criterion should also be reasonably interpreted to cover any other form of software distribution that we invent in future and include in an otherwise release-blocking deployment of Fedora, but have not yet updated this text to specifically refer to.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 +
{{hidden|header='Appropriately'?|content=''Appropriately'' means that the relevant software mechanism(s) for any given deployment must choose the software to be installed, updated or removed in ways that are broadly in line with the user's intent and typical expectations, and the project's intent as to which software should be provided from which repositories etc. To give a specific example of why this wording is included, there was previously a case where newer package versions from modules were being installed as 'updates' to systems which did not have those modules installed, only the package with the same name from the non-modular system repositories. This would be an example of 'inappropriate' updating that violated this criterion. Other examples might include installing packages from the wrong module stream, or failing to include available updates from an enabled official repository.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 +
{{hidden|header=Bugs in particular packages (etc.)|content=A bug in some particular package will not usually constitute a violation of this criterion. It's really about the mechanism functioning correctly. So if the default console package manager is working fine, but the update transaction fails because there happen to be two conflicting packages in the repositories, that's not a release blocking problem.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=New kernels not default (and similar cases)|content=On the other hand, it is established by precedent - e.g. {{bz|1261569}} - that a bug which prevents newly-installed kernels from becoming the default boot choice is considered to violate this criterion, especially if that bug itself cannot be satisfactorily fixed with an update. Similar cases - where a media/installer bug prevents a package update from behaving as intended, and the consequences are significant - may well also constitute violations.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=New kernels not default (and similar cases)|content=On the other hand, it is established by precedent - e.g. {{bz|1261569}} - that a bug which prevents newly-installed kernels from becoming the default boot choice is considered to violate this criterion, especially if that bug itself cannot be satisfactorily fixed with an update. Similar cases - where a media/installer bug prevents a package update from behaving as intended, and the consequences are significant - may well also constitute violations.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 +
{{hidden|header=Scope|content=This criterion applies only to Fedora-provided and controlled update mechanisms for Fedora-provided content. It should not be interpreted to cover any other 'mechanisms' which may be included in the distribution (e.g. if an application includes a plugin system and an install/remove/update mechanism for those plugins, that mechanism is not covered here).|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=References|content=
 
{{hidden|header=References|content=
 
* Requirement was in force for 'default desktop' in original Fedora 13 criteria revision.
 
* Requirement was in force for 'default desktop' in original Fedora 13 criteria revision.
 
* Modification to cover 'release-blocking desktops' was proposed [https://lists.fedoraproject.org/pipermail/test/2011-May/100183.html 2011-05-17], implemented [https://lists.fedoraproject.org/pipermail/test/2011-May/100646.html 2011-05-31].
 
* Modification to cover 'release-blocking desktops' was proposed [https://lists.fedoraproject.org/pipermail/test/2011-May/100183.html 2011-05-17], implemented [https://lists.fedoraproject.org/pipermail/test/2011-May/100646.html 2011-05-31].
 
* Modification to move graphical update requirement to Beta or Final agreed during [http://meetbot.fedoraproject.org/fedora-blocker-review/2013-09-18/ 2013-09-18 blocker review meeting].
 
* Modification to move graphical update requirement to Beta or Final agreed during [http://meetbot.fedoraproject.org/fedora-blocker-review/2013-09-18/ 2013-09-18 blocker review meeting].
* Test case: [[QA:Testcase_desktop_update_cli]]
+
* Modification to cover modules, rpm-ostree and potentially other 'update' types [https://pagure.io/fesco/issue/1889 agreed by FESCo and implemented on 2018-05-11].
 +
* Modification to cover installing and removing (as well as updating) software [https://lists.fedoraproject.org/archives/list/test@lists.fedoraproject.org/thread/LQIXML42QXJLFJWOYMYXW36QNWFG4FII/ proposed 2018-06-12], [https://lists.fedoraproject.org/archives/list/desktop@lists.fedoraproject.org/message/VDZ6SQQANYNCZDN2Y7IGC7UGEYVP6UP2/ implemented 2018-07-26]
 +
* Test cases: [[QA:Testcase_base_update_cli]], [[QA:Testcase_package_install_remove]]
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
  
Line 268: Line 260:
 
{{anchor|self-identification}}
 
{{anchor|self-identification}}
 
==== Self-identification ====
 
==== Self-identification ====
Any component which prominently identifies a Fedora release version number, code name or milestone (Alpha, Beta, Final) must do so correctly.
+
Any component which prominently identifies a Fedora release version number, code name, milestone (Beta, Final), or [[Editions|Edition]] (Workstation, Server, Atomic) must do so correctly.
 
{{hidden|header=References|content=
 
{{hidden|header=References|content=
 
* Initial artwork criteria proposed [https://lists.fedoraproject.org/pipermail/test/2010-September/093476.html 2010-10-10], implemented [https://lists.fedoraproject.org/pipermail/test/2010-September/093568.html 2010-10-13].
 
* Initial artwork criteria proposed [https://lists.fedoraproject.org/pipermail/test/2010-September/093476.html 2010-10-10], implemented [https://lists.fedoraproject.org/pipermail/test/2010-September/093568.html 2010-10-13].
 
* Revision to be less strict and pervasive proposed [https://lists.fedoraproject.org/pipermail/test/2012-August/109712.html 2012-08-28], implemented [https://lists.fedoraproject.org/pipermail/test/2012-September/109818.html 2012-09-04].
 
* Revision to be less strict and pervasive proposed [https://lists.fedoraproject.org/pipermail/test/2012-August/109712.html 2012-08-28], implemented [https://lists.fedoraproject.org/pipermail/test/2012-September/109818.html 2012-09-04].
* Test case: [[QA:Testcase_base_startup]]
+
* Extended to cover Editions 2018-02-01 (obvious extension, not reviewed)
 +
* Test case: [[QA:Testcase_base_artwork_release_identification]]
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
  
Line 282: Line 275:
 
* Requirement was in force for 'default desktop' in original Fedora 13 criteria revision.
 
* Requirement was in force for 'default desktop' in original Fedora 13 criteria revision.
 
* Modification to cover 'release-blocking desktops' was proposed [https://lists.fedoraproject.org/pipermail/test/2011-May/100183.html 2011-05-17], implemented [https://lists.fedoraproject.org/pipermail/test/2011-May/100646.html 2011-05-31].
 
* Modification to cover 'release-blocking desktops' was proposed [https://lists.fedoraproject.org/pipermail/test/2011-May/100183.html 2011-05-17], implemented [https://lists.fedoraproject.org/pipermail/test/2011-May/100646.html 2011-05-31].
* Test cases: [[QA:Testcase_desktop_browser]], [[QA:Testcase_desktop_terminal]]
+
* Test cases:  
 +
** [[QA:Testcase_desktop_browser]],  
 +
** [[QA:Testcase_desktop_terminal]]
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
  
 
{{anchor|desktop-background}}
 
{{anchor|desktop-background}}
 +
 
==== Desktop background ====
 
==== Desktop background ====
 
The default desktop background must be different from that of the last two stable releases.
 
The default desktop background must be different from that of the last two stable releases.
Line 291: Line 287:
 
* Initial artwork criteria proposed [https://lists.fedoraproject.org/pipermail/test/2010-September/093476.html 2010-10-10], implemented [https://lists.fedoraproject.org/pipermail/test/2010-September/093568.html 2010-10-13].
 
* Initial artwork criteria proposed [https://lists.fedoraproject.org/pipermail/test/2010-September/093476.html 2010-10-10], implemented [https://lists.fedoraproject.org/pipermail/test/2010-September/093568.html 2010-10-13].
 
* Revision to be less strict and pervasive proposed [https://lists.fedoraproject.org/pipermail/test/2012-August/109712.html 2012-08-28], implemented [https://lists.fedoraproject.org/pipermail/test/2012-September/109818.html 2012-09-04].
 
* Revision to be less strict and pervasive proposed [https://lists.fedoraproject.org/pipermail/test/2012-August/109712.html 2012-08-28], implemented [https://lists.fedoraproject.org/pipermail/test/2012-September/109818.html 2012-09-04].
* Test case: [[QA:Testcase_base_startup]]
+
* Test case: [[QA:Testcase_base_artwork_release_identification]],
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
  
Line 299: Line 295:
 
These requirements apply only to the Server flavor.
 
These requirements apply only to the Server flavor.
  
{{anchor|role-definition-requirements}}
+
{{anchor|freeipa-server-requirements}}
==== Role definition requirements ====
+
==== FreeIPA server requirements ====
Release-blocking roles and the supported role configuration interfaces must meet the core functional [[Server/Technical_Specification#Role_Definition_Requirements|Role
+
It must be possible to configure a Fedora Server system installed according to the above criteria as a [https://www.freeipa.org/ FreeIPA] domain controller, using the official deployment tools provided in the distribution FreeIPA packages. Once deployed, the system must handle multiple client enrolments and unenrolments, and client authentication via Kerberos. The web UI must be available and allow at least basic configuration of user accounts and permissions. Prior to Beta, it is acceptable if moderate workarounds are necessary to allow the above.
Definition Requirements]] to the extent that supported roles can be successfully deployed, started, stopped, brought to a working configuration, and queried.
+
{{hidden|header=Moderate workarounds?|content=
 +
For instance, if a service needs to be manually enabled or a configuration file minimally tweaked, this is acceptable.
 +
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=References|content=
 
{{hidden|header=References|content=
* [https://lists.fedoraproject.org/pipermail/server/2014-September/001479.html Proposed 2014-09-29], [https://lists.fedoraproject.org/pipermail/server/2014-October/001483.html second draft 2014-09-30], [https://lists.fedoraproject.org/pipermail/server/2014-October/001488.html implemented 2014-10-01]
+
* Converted 2018-07 from the former Server Role requirements, which were [https://lists.fedoraproject.org/pipermail/server/2014-September/001479.html proposed 2014-09-29], [https://lists.fedoraproject.org/pipermail/server/2014-October/001483.html second draft 2014-09-30], [https://lists.fedoraproject.org/pipermail/server/2014-October/001488.html implemented 2014-10-01]
* Test case: [[QA:Testcase_Server_role_deploy]]
+
* Test cases:
 +
** [[QA:Testcase_freeipa_trust_server_installation]]
 +
** [[QA:Testcase_FreeIPA_web_ui]]
 +
** [[QA:Testcase_realmd_join_kickstart]] etc.
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
  
{{anchor|role-functional-requirements}}
+
{{anchor|postgresql-server-requirements}}
 
+
==== PostgreSQL server requirements ====
==== Role functional requirements ====
+
It must be possible to configure a Fedora Server system installed according to the above criteria as a postgresql database server, using the official deployment tools provided in the distribution postgresql packages. Once deployed, the system must serve requests from the local system on port 5432. The core command line utilities for PostgreSQL must be available and correctly handle basic configuration of the PostgreSQL instance itself, and basic SQL interactions, including creation, modification, deletion, and simple querying of users, tables, columns, and rows. Multiple clients must be able to connect simultaneously to the PostgreSQL instance. Prior to Beta, it is acceptable if moderate workarounds are necessary to allow the above.
The [[:Category:Server_role_requirements|core functional requirements]] for all Featured Server Roles must be met, but it is acceptable if moderate workarounds are necessary to achieve this.
 
{{hidden|header=Featured roles|content=
 
'''FIXME''' There is not yet a list of the Featured server roles. The featured roles for Fedora 27 are ''Domain controller'' and ''Database''.
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
 
{{hidden|header=Moderate workarounds?|content=
 
{{hidden|header=Moderate workarounds?|content=
 
For instance, if a service needs to be manually enabled or a configuration file minimally tweaked, this is acceptable.
 
For instance, if a service needs to be manually enabled or a configuration file minimally tweaked, this is acceptable.
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=References|content=
 
{{hidden|header=References|content=
* Proposed [https://lists.fedoraproject.org/pipermail/server/2015-January/001719.html 2015-01-24], implemented 2015-02-06.
+
* Converted 2018-07 from the former Server Role requirements, which were [https://lists.fedoraproject.org/pipermail/server/2014-September/001479.html proposed 2014-09-29], [https://lists.fedoraproject.org/pipermail/server/2014-October/001483.html second draft 2014-09-30], [https://lists.fedoraproject.org/pipermail/server/2014-October/001488.html implemented 2014-10-01]
* Test cases: see each role's requirements page.
+
* Test cases:
 +
** [[QA:Testcase_postgresql_server_installation]]
 +
** [[QA:Testcase_database_server_remote_client]]
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
  
Line 337: Line 336:
 
{{anchor|firewall-configuration}}
 
{{anchor|firewall-configuration}}
 
==== Firewall configuration ====
 
==== Firewall configuration ====
After system installation without explicit firewall configuration, the system firewall must be active on all non-loopback interfaces. The only ports which may be open to incoming traffic are port 22 (ssh), port 9090 (Cockpit web interface), and any ports associated with server Roles selected during installation. Supported install-time firewall configuration options must work correctly.
+
After system installation without explicit firewall configuration, the system firewall must be active on all non-loopback interfaces. The only ports which may be open to incoming traffic are port 22 (ssh) and port 9090 (Cockpit web interface). Supported install-time firewall configuration options must work correctly.
{{hidden|header=Install time configuration|content=To explain the last part of this criterion - it is possible to include firewall configuration options in a kickstart-driven installation, and the criterion requires that those options work as expected. The options considered to be 'supported' are those documented at [[Anaconda/Kickstart#firewall]]. The case of a conflict between role-specified and manually-specified firewall configuration is not considered to be covered by these criteria.|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
+
{{hidden|header=Install time configuration|content=To explain the last part of this criterion - it is possible to include firewall configuration options in a kickstart-driven installation, and the criterion requires that those options work as expected. The options considered to be 'supported' are those documented at [[Anaconda/Kickstart#firewall]].|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
{{hidden|header=References|content=
 
{{hidden|header=References|content=
* Part of [https://lists.fedoraproject.org/pipermail/server/2014-June/001198.html initial Server release criteria proposal], 2014-06-06
+
* Part of [https://lists.fedoraproject.org/pipermail/server/2014-June/001198.html initial Server release criteria proposal], 2014-06-06. Tweaked to remove Server Role-related content 2018-07.
 
* Test cases:
 
* Test cases:
 
** [[QA:Testcase_Server_firewall_default]]
 
** [[QA:Testcase_Server_firewall_default]]
Line 356: Line 355:
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
 
|headerstyle=background:#e5e5e5|fw1=normal|ta1=left}}
  
<!--
+
== Confirming Basic Requirements ==
IF we need this ... we fail
+
For nightly composes, compliance with these criteria is enforced via automated testing: composes which fail the automated test suite are not released to mirrors. For milestone candidate composes, [[QA]] has the responsibility of determining whether the criteria for the release has been met (as outlined above) through discussion with Development and Release Engineering.  QA's findings will be reviewed and discussed at the [[Engineering_Readiness_Meetings |''Go/No-Go'' Meeting]].
# The QA team has an installable testable Release Candidate for at least two full days (48 hours).
 
-->
 
 
 
{{Template:Release_criteria_definition|prerelease=Alpha}}
 
 
 
== Contingency Plan ==
 
* If all of the ''Alpha Release Requirements'' are not met by 20:00 ETC on Wednesday (1:00 AM UTC Thursday) the week prior to release day, the release will be delayed by one week so that the Alpha Release Requirements can be met.
 
* One week will be added to all remaining tasks in the release schedule, including the final release date.
 
* This decision will be made at the [[Engineering_Readiness_Meetings |''Go/No-Go'' Meeting]].
 
 
 
== Confirming Alpha Requirements ==
 
[[QA]] has the responsibility of determining whether the criteria for the release has been met (as outlined above) through discussion with Development and Release Engineering.  QA's findings will be reviewed and discussed at the [[Engineering_Readiness_Meetings |''Go/No-Go'' Meeting]].
 
  
 
== Related Pages ==
 
== Related Pages ==
  
 
* [[Fedora Release Criteria]]
 
* [[Fedora Release Criteria]]
* [[Fedora 27 Beta Release Criteria]]
 
* [[Fedora 27 Final Release Criteria]]
 
 
* [[Blocker Bug FAQ]]
 
* [[Blocker Bug FAQ]]
 
* [[QA:SOP blocker_bug process]]
 
* [[QA:SOP blocker_bug process]]

Latest revision as of 16:17, 15 April 2019

Basic Objectives

The objectives for all Branched and Rawhide nightly composes, as well as Beta and Final releases, are to:

  1. Publicly release installable media versions of a test release
  2. Test accepted Changes for future releases
  3. Identify as many Beta blocker bugs as possible
  4. Identify as many Final blocker bugs as possible

Basic Release Requirements

In order to be released to the general public, a compose must meet all of the following criteria. This is intended to make the decision process as clear and straightforward as possible. Mostly met items are incomplete until they are met. Optional and nice to have items should not be included in this list.

There may be times where a requirement is unmet only in a particular configuration, such as with some keyboard layouts but not others, or if a particular character is used in a username, password or passphrase. In such cases, the release team should use their judgement and refer to precedent to determine whether or not the issue should be considered to block the release. They should consider the number of users likely to be affected by the issue, the severity of the case when the issue is encountered, and the ease or otherwise with which the issue can be avoided by both informed and uninformed users.

The term release-blocking desktops means all the desktop environments in which bugs are currently considered capable of blocking a Fedora release. The current set of release-blocking desktops for the x86 architectures is GNOME and KDE, and for the ARM architectures is Xfce. Note that bugs in desktops that are not part of this set which would infringe these criteria automatically qualify for freeze exception status, according to the freeze exception bug process.

The term release-blocking images means all the images in which bugs are currently considered capable of blocking a Fedora release. The current set of release-blocking images includes the images defined by the three primary Products - Server, Workstation and Cloud - in their product requirement documents and/or technical specifications, and the KDE live image. As of Fedora 24, no 32-bit x86 image can be 'release-blocking', by FESCo policy. The canonical list of release-blocking images for Fedora 32 is on this page.

Correct checksums

A correct checksum must be published for each official release image.

Automatic blockers

Violations of this criterion for release-blocking images are considered "automatic blockers", they do not have to go through the review process. See QA:SOP_blocker_bug_process#Automatic_blockers for more details on the automatic blocker procedure.

Initialization requirements

Release-blocking images must boot

All release-blocking images must boot in their supported configurations.

Supported architectures

Supported architectures are the Fedora primary architectures. All images are not necessarily expected to be available for all primary architectures.

Supported firmware types

Release-blocking images must boot from all system firmware types that are commonly found on the primary architectures. For the x86_64 architecture, UEFI with Secure Boot configured in accordance with Microsoft's Windows certification requirements is considered a 'commonly found' firmware type.

Supported ARM platforms

Supported ARM platforms are those listed by the ARM team at Architectures/ARM/Supported_Platforms.

Supported cloud environments

Release-blocking cloud images must boot in the Fedora OpenStack Cloud and in Amazon EC2.

Supported media types

Release-blocking live and dedicated installer images must boot when written to a USB stick with at least one of the officially supported methods. Release-blocking ARM disk images must boot when written to a medium bootable by the platform under test, according to the instructions for the platform under test.

System-specific bugs

System-specific bugs don't necessarily constitute an infringement of this criterion - for instance, if the image fails to boot because of a bug in some specific system's firmware, that is unlikely to constitute a violation unless the system is an extremely popular one. See Blocker_Bug_FAQ for more discussion of this.

Expected image boot behavior

  • Release-blocking dedicated installer images must boot to the expected boot menu, and then after a reasonable timeout to the installer.
  • Release-blocking live images must boot to the expected boot menu, and then to a desktop or to a login prompt where it is clear how to log in to a desktop.
  • Release-blocking ARM disk images must boot to the initial-setup utility.
  • Release-blocking cloud images must allow login with the user authentication configuration requested during instance creation.
Boot menu contents

The boot menu for all supported installer and live images should include an entry which causes both installation and the installed system to attempt to use a generic, highly compatible video driver (such as 'vesa').

System-specific bugs

System-specific bugs don't necessarily constitute an infringement of this criterion - for instance, if the installer or desktop fails to start because of a bug in support for some specific graphics card, that is unlikely to constitute a violation. See Blocker_Bug_FAQ for more discussion of this.

References

Installer requirements

Except where otherwise specified, each of these requirements applies to all supported configurations described above. These requirements do not apply to images which do not use the installer.

Installer must run

The installer must run when launched normally from the release-blocking images.

Launched normally?

'Launched normally' means from the boot menu on a dedicated installer image, and from the desktop on a live image.

References

Test cases: see test cases for "Release-blocking images must boot"

Remote package sources

When using a release-blocking dedicated installer image, the installer must be able to use either HTTP or FTP repositories (or both) as package sources. Release-blocking network install images must default to a valid publicly-accessible package source.

Media package source

When using a dedicated installer image that contains packages, the installer must be able to use the install medium as a package source.

References

Installation interfaces

When using a dedicated installer image, the installer must be able to complete an installation using the text, graphical and VNC installation interfaces.

Showstoppers

This criterion covers showstopper bugs in the installer for which there isn't any other specific criterion: obviously, it can't 'complete an installation' if there's a showstopper. However, it does not mean that any failed installation test at all constitutes a release blocking issue: an installer which works fine in most cases but crashes when you attach it to a Hitachi hard disk on a wet Thursday is still 'able to complete an installation'.

Package sets

When installing with a release-blocking dedicated installer image, the installer must be able to install the default package set.

References
  • Modification from 'default package set' proposed 2012-09-06.
  • Idea to cover the release blocking desktops and minimal package set proposed 2012-09-06, implemented 2012-09-26.
  • Reversion back to covering only default package set (due to deliverable changes as part of Fedora.next): proposed 2014-12-23, implemented 2015-01-30.
  • Test case: QA:Testcase_Boot_default_install (for each covered image)

Disk selection

The user must be able to select which of the disks connected to the system will be affected by the installation process.

Other disks not touched

Disks not selected as installation targets must not be affected by the installation process in any way.

References

Storage interfaces

The installer must be able to complete an installation using any supported locally connected storage interface.

What are they?

'Locally connected storage interfaces' include PATA, SATA and SCSI.

Disk layouts

The installer must be able to complete an installation to a single disk using automatic partitioning.

Details!

...well, so long as the disk is big enough, of course. It must work whether the disk is formatted or not and whether or not it contains any existing data - but before Beta, it's OK if it can only install to a disk with existing data by overwriting it.

References

Scripted user creation

The scripted installation mechanism must provide a working function for creating local user accounts, including the ability to specify a hashed password, and for specifying a hashed password for the root account.

References

Update image

The installer must be able to download and use an installer update image from an HTTP server.

References

Failure reporting

The installer must be able to report failures to Bugzilla, with appropriate information included.

You mean, ANY failures?

No, silly - we mean crashes, really. This is about the crash reporting capabilities: when the installer crashes, it should pop up some dialogs that let you send a report containing data on the crash.

Virtualization requirements

Guest on current stable release

The release must install and boot successfully as a virtual guest in a situation where the virtual host is running the current stable Fedora release.

Recommended virtualization technology

This criterion applies only to the recommended Fedora virtualization tools - the qemu/kvm - libvirt - virt-manager stack.

References

Post-install requirements

Except where otherwise specified, each of these requirements applies to all supported configurations described above. These requirements are not applicable to Cloud images.

Expected installed system boot behavior

  • A working mechanism to create a user account must be clearly presented during installation and/or first boot of the installed system.
  • A system installed with a release-blocking desktop must boot to a log in screen where it is possible to log in to a working desktop using a user account created during installation or a 'first boot' utility.
  • A system installed without a graphical package set must boot to a state where it is possible to log in through at least one of the default virtual consoles.
Encrypted partitions

In all of the above cases, if any system partitions were encrypted as part of the installation, the boot process must prompt for the passphrase(s) and correctly unlock the partition(s) when provided with the correct passphrase(s).

User intervention

In all of the above cases, the boot should proceed without any unexpected user intervention being required. On a graphical install, if the user explicitly intervenes to prevent graphical boot by passing a bootloader parameter, the non-graphical requirement comes into effect.

System-specific bugs

System-specific bugs don't necessarily constitute an infringement of this criterion - for instance, if the system fails to boot because of a bug in the support some specific system's hardware, that is unlikely to constitute a violation unless the system is an extremely popular one. See Blocker_Bug_FAQ for more discussion of this.

Use for severe issues in applying updates

These criteria can be used to cover known severe issues in applying post-release updates. For instance, if there was a bug that meant the system would install and boot fine but would break as soon as the user ran 'yum update', that may well be covered by these criteria.

First boot utilities

On the first boot after installation, a utility for creating user accounts and other configuration may (may, not must) run prior to a log in screen appearing.

References

System service manipulation

The default system init daemon (e.g. systemd) must be capable of starting, stopping, enabling and disabling correctly-defined services.

"Correctly-defined services"

This criterion is not intended to require there are no broken services in the distribution, but that the init daemon itself works. The criterion is not violated by a buggy service script, only if the init daemon itself is broken. A sufficiently-important service being broken might constitute a violation of another criterion - for instance, a service for a logging daemon being broken might violate the requirement that logging works - but not this one.

References

Installing, removing and updating software

The installed system must be able appropriately to install, remove, and update software with the default console tool for the relevant software type (e.g. default console package manager). This includes downloading of packages to be installed/updated.

Software types

This includes - but is not necessarily limited to - non-module packages, official module streams that are enabled (including any enabled by default in a release-blocking deployment), and rpm-ostree updates and rollbacks for any release-blocking rpm-ostree-based deployment. The criterion should also be reasonably interpreted to cover any other form of software distribution that we invent in future and include in an otherwise release-blocking deployment of Fedora, but have not yet updated this text to specifically refer to.

'Appropriately'?

Appropriately means that the relevant software mechanism(s) for any given deployment must choose the software to be installed, updated or removed in ways that are broadly in line with the user's intent and typical expectations, and the project's intent as to which software should be provided from which repositories etc. To give a specific example of why this wording is included, there was previously a case where newer package versions from modules were being installed as 'updates' to systems which did not have those modules installed, only the package with the same name from the non-modular system repositories. This would be an example of 'inappropriate' updating that violated this criterion. Other examples might include installing packages from the wrong module stream, or failing to include available updates from an enabled official repository.

Bugs in particular packages (etc.)

A bug in some particular package will not usually constitute a violation of this criterion. It's really about the mechanism functioning correctly. So if the default console package manager is working fine, but the update transaction fails because there happen to be two conflicting packages in the repositories, that's not a release blocking problem.

New kernels not default (and similar cases)

On the other hand, it is established by precedent - e.g. RHBZ #1261569 - that a bug which prevents newly-installed kernels from becoming the default boot choice is considered to violate this criterion, especially if that bug itself cannot be satisfactorily fixed with an update. Similar cases - where a media/installer bug prevents a package update from behaving as intended, and the consequences are significant - may well also constitute violations.

Scope

This criterion applies only to Fedora-provided and controlled update mechanisms for Fedora-provided content. It should not be interpreted to cover any other 'mechanisms' which may be included in the distribution (e.g. if an application includes a plugin system and an install/remove/update mechanism for those plugins, that mechanism is not covered here).

References

System logging

A system logging infrastructure must be available, enabled by default, and working.

What do you mean, 'working'?

Well, it must provide at least basic local file-based logging of kernel messages, and allow other components to write log messages. This must be done in accordance with relevant standards accepted by the Fedora Project.

References

SELinux configuration

Unless explicitly specified otherwise, after system installation SELinux must be enabled and in enforcing mode.

References

Shutdown

It must be possible to trigger a clean system shutdown using standard console commands.

What do you mean, 'clean'?

The system must shut down in such a way that storage volumes (e.g. simple partitions, LVs and PVs, RAID arrays) are taken offline safely and the system's BIOS or EFI is correctly requested to power down the system.

References

Self-identification

Any component which prominently identifies a Fedora release version number, code name, milestone (Beta, Final), or Edition (Workstation, Server, Atomic) must do so correctly.

References

Required applications

It must be possible to run the default web browser and a terminal application from all release-blocking desktop environments.

Web browser requirements

The web browser must be able to download files, load extensions (if applicable), and log into FAS.

References

Desktop background

The default desktop background must be different from that of the last two stable releases.

References

Server Flavor requirements

These requirements apply only to the Server flavor.

FreeIPA server requirements

It must be possible to configure a Fedora Server system installed according to the above criteria as a FreeIPA domain controller, using the official deployment tools provided in the distribution FreeIPA packages. Once deployed, the system must handle multiple client enrolments and unenrolments, and client authentication via Kerberos. The web UI must be available and allow at least basic configuration of user accounts and permissions. Prior to Beta, it is acceptable if moderate workarounds are necessary to allow the above.

Moderate workarounds?

For instance, if a service needs to be manually enabled or a configuration file minimally tweaked, this is acceptable.

PostgreSQL server requirements

It must be possible to configure a Fedora Server system installed according to the above criteria as a postgresql database server, using the official deployment tools provided in the distribution postgresql packages. Once deployed, the system must serve requests from the local system on port 5432. The core command line utilities for PostgreSQL must be available and correctly handle basic configuration of the PostgreSQL instance itself, and basic SQL interactions, including creation, modification, deletion, and simple querying of users, tables, columns, and rows. Multiple clients must be able to connect simultaneously to the PostgreSQL instance. Prior to Beta, it is acceptable if moderate workarounds are necessary to allow the above.

Moderate workarounds?

For instance, if a service needs to be manually enabled or a configuration file minimally tweaked, this is acceptable.

References

Remote authentication

It must be possible to join the system to a FreeIPA or Active Directory domain at install time and post-install, and the system must respect the identity, authentication and access control configuration provided by the domain.

Non-interactive only OK

The install-time capability is not required to be interactive (i.e. it is acceptable for it to be possible by kickstart only).

No local account requirement

This criterion is understood to mandate that there must be no requirement for a local user account to be created during install or first boot of a Server system.

Firewall configuration

After system installation without explicit firewall configuration, the system firewall must be active on all non-loopback interfaces. The only ports which may be open to incoming traffic are port 22 (ssh) and port 9090 (Cockpit web interface). Supported install-time firewall configuration options must work correctly.

Install time configuration

To explain the last part of this criterion - it is possible to include firewall configuration options in a kickstart-driven installation, and the criterion requires that those options work as expected. The options considered to be 'supported' are those documented at Anaconda/Kickstart#firewall.

Cockpit management interface

Unless explicitly specified otherwise, after system installation the Cockpit web management interface must be running and accessible on its default port (9090).

Confirming Basic Requirements

For nightly composes, compliance with these criteria is enforced via automated testing: composes which fail the automated test suite are not released to mirrors. For milestone candidate composes, QA has the responsibility of determining whether the criteria for the release has been met (as outlined above) through discussion with Development and Release Engineering. QA's findings will be reviewed and discussed at the Go/No-Go Meeting.

Related Pages