From f13ee58315024fa4d7bf1315a19b35d6b92e5e14 Mon Sep 17 00:00:00 2001 From: Mohan Boddu Date: Mar 12 2021 14:50:45 +0000 Subject: Updating EOL doc Signed-off-by: Mohan Boddu --- diff --git a/docs/source/sop_end_of_life.rst b/docs/source/sop_end_of_life.rst index 83bdec7..db85af2 100644 --- a/docs/source/sop_end_of_life.rst +++ b/docs/source/sop_end_of_life.rst @@ -7,10 +7,9 @@ End Of Life Description =========== -Each release of Fedora is maintained as laid out in the `maintenance -schedule`_. At the conclusion of the maintenance period, a Fedora release -enters ``end of life`` status. This procedure describes the tasks necessary to -move a release to that status. +Each release of Fedora is maintained as laid out in the `maintenance schedule`_. +At the conclusion of the maintenance period, a Fedora release enters ``end of life`` status. +This procedure describes the tasks necessary to move a release to that status. Actions ======= @@ -25,130 +24,413 @@ Set date Reminder announcement --------------------- -* from rel-eng to f-devel-announce, f-announce-l, including - * date of last update push (if needed) - * date of actual EOL - -Koji tasks ----------- -* disable builds by removing targets - - :: - - koji remove-target f19 - koji remove-target f19-updates-candidate - -* Purge from disk the signed copies of rpms that are signed with the EOL'd - release key - -Bodhi tasks ------------ -* Run the following end of life script from bodhi backend - :: - bodhi releases edit --name F21 --state archived +Send an email to devel@, devel-announce@, test-announce@, announce@ lists as remainder about the release EOL. +Announcement Content +^^^^^^^^^^^^^^^^^^^^ +:: -.. warning:: Due to a `bug `_ in Bodhi, it is - critical that Bodhi processes be restarted any time ``bodhi releases create`` or - ``bodhi releases edit`` are used. + Hello all, + Fedora 31 will go end of life for updates and support on 24th of + November 2020. No further updates, including security updates, will be + available for Fedora 31 after the said date. All the updates of Fedora + 31 being pushed to stable will be stopped as well. -PackageDB ---------- + Fedora 32 will continue to receive updates until approximately one + month after the release of Fedora 34. The maintenance schedule of + Fedora releases is documented on the Fedora Project wiki [0]. The + fedora Project wiki also contains instructions [1] on how to upgrade + from a previous release of Fedora to a version receiving updates. -Set the release to be End of Life in the PackageDB. A admin can login and do -this from the web interface. + Regards, + Mohan Boddu. -Source Control (git) --------------------- + [0]https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle#Maintenance_Schedule + [1]https://fedoraproject.org/wiki/Upgrading?rd=DistributionUpgrades -* Branches for new packages in git are not allowed for distribution X after - the Fedora X+2 release. New builds are no longer allowed for EOL Fedora - releases. -Fedora Program Manager Tasks ----------------------------- +Koji tasks +---------- +* Disable builds by removing targets +:: + + $ koji remove-target f31 + $ koji remove-target f31-candidate + $ koji remove-target f31-container-candidate + $ koji remove-target f31-flatpak-candidate + $ koji remove-target f31-infra + $ koji remove-target f31-coreos-continuous + $ koji remove-target f31-rebuild + $ koji remote-target #any side targets that are still around -* Close all open bugs -* `End of Life Process`_ +* Purge from disk the signed copies of rpms that are signed with the EOL'd + release key. + To acheive this, add the release key to **koji_cleanup_signed.py** script in `releng`_ repo and the script on compose-branched01.iad2.fedoraproject.org +:: -Bugzilla --------- + ./scripts/koji_cleanup_signed.py -* Update the description of Fedora in bugzilla for the current releases. - * Get someone from sysadmin-main to login as the - fedora-admin-xmlrpc@redhat.com user to bugzilla. - * Have them edit the description of the Fedora product here: - https://bugzilla.redhat.com/editproducts.cgi?action=edit&product=Fedora +PDC tasks +--------- +* Set PDC **active** value for the release to **False** +:: -Docs tasks ----------- + curl -u: -H 'Authorization: Token ' -H 'Accept: application/json' -H 'Content-Type:application/json' -X PATCH -d '{"active":"false"}' https://pdc.fedoraproject.org/rest_api/v1/releases/fedora-31/ -* any? +* Set the EOL dates in PDC for all the components to the release EOL date if they are not already set. + Run the following script from `releng`_ repo +:: -Badges tasks ------------- + python scripts/pdc/adjust-eol-all.py f31 2020-11-24 -* Update the `cold undead hands`_ badge. +Bodhi tasks +----------- +* Run the following bodhi commands to set the releases state to **archived** +:: - * In order to do this, you need to be in the `sysadmin-badges` group and the - `gitbadges` group. If you're not, just email those two groups at - `sysadmin-badges-members@fedoraproject.org` and - `gitbadges-members@fedoraproject.org`. Tell them that they need to update - this badge and point them to these instructions. - * Clone the repo with `` $ git clone ssh://git@pagure.io/fedora-badges.git`` - * Edit `rules/you-can-pry-it-from-my-cold-undead-hands.yml` and add the EOL - release to the list in the trigger section on line 16. - * Push that back to Pagure. - * Push the rule change out live to our servers by logging into batcave and - running the `manual/push-badges.yml` playbook. - https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/playbooks/manual/push-badges.yml - * All done. + $ bodhi releases edit --name "F31" --state archived + $ bodhi releases edit --name "F31M" --state archived + $ bodhi releases edit --name "F31C" --state archived + $ bodhi releases edit --name "F31F" --state archived -Cloud tasks ------------ +.. warning:: + Due to a `bug `_ in Bodhi, it is + critical that Bodhi processes be restarted any time ``bodhi releases create`` or + ``bodhi releases edit`` are used. -.. note:: - FIXME: This needs updating, I'm pretty sure we need to do something with - fedimg here +* On bodhi-backend01.iad2.fedoraproject.org, run the following commands +:: -* Remove unsupported EC2 images from - https://fedoraproject.org/wiki/Cloud_images#Currently_supported_EC2_images + $ sudo systemctl restart fm-consumer@config.service + $ sudo systemctl restart bodhi-celery.service -Taskotron tasks ---------------- +Fedora Infra Ansible Changes +---------------------------- -`File Taskotron ticket`_ and ask for the EOL'd release support to be removed. +* We need to make changes to bodhi, koji, mbs, releng, autosign roles in ansible repo. +.. code-block:: diff + + From 73dc8a1042a190f1b88bf78e110d44753cfa7962 Mon Sep 17 00:00:00 2001 + From: Mohan Boddu + Date: Nov 24 2020 17:19:23 +0000 + Subject: F31 EOL + + + Signed-off-by: Mohan Boddu + + --- + + diff --git a/roles/bodhi2/backend/files/new-updates-sync b/roles/bodhi2/backend/files/new-updates-sync + index a143047..d8c8a73 100755 + --- a/roles/bodhi2/backend/files/new-updates-sync + +++ b/roles/bodhi2/backend/files/new-updates-sync + @@ -113,50 +113,6 @@ RELEASES = {'f33': {'topic': 'fedora', + 'dest': os.path.join(FEDORAALTDEST, 'testing', '32', 'Modular')} + ]}} + }, + - 'f31': {'topic': 'fedora', + - 'version': '31', + - 'modules': ['fedora', 'fedora-secondary'], + - 'repos': {'updates': { + - 'from': 'f31-updates', + - 'ostrees': [{'ref': 'fedora/31/%(arch)s/updates/silverblue', + - 'dest': OSTREEDEST, + - 'arches': ['x86_64', 'ppc64le', 'aarch64']}], + - 'to': [{'arches': ['x86_64', 'armhfp', 'aarch64', 'source'], + - 'dest': os.path.join(FEDORADEST, '31', 'Everything')}, + - {'arches': ['ppc64le', 's390x'], + - 'dest': os.path.join(FEDORAALTDEST, '31', 'Everything')} + - ]}, + - 'updates-testing': { + - 'from': 'f31-updates-testing', + - 'ostrees': [{'ref': 'fedora/31/%(arch)s/testing/silverblue', + - 'dest': OSTREEDEST, + - 'arches': ['x86_64', 'ppc64le', 'aarch64']}], + - 'to': [{'arches': ['x86_64', 'aarch64', 'armhfp', 'source'], + - 'dest': os.path.join(FEDORADEST, 'testing', '31', 'Everything')}, + - {'arches': ['ppc64le', 's390x'], + - 'dest': os.path.join(FEDORAALTDEST, 'testing', '31', 'Everything')} + - ]}} + - }, + - 'f31m': {'topic': 'fedora', + - 'version': '31m', + - 'modules': ['fedora', 'fedora-secondary'], + - 'repos': {'updates': { + - 'from': 'f31-modular-updates', + - 'ostrees': [], + - 'to': [{'arches': ['x86_64', 'aarch64', 'armhfp', 'source'], + - 'dest': os.path.join(FEDORADEST, '31', 'Modular')}, + - {'arches': ['ppc64le', 's390x'], + - 'dest': os.path.join(FEDORAALTDEST, '31', 'Modular')} + - ]}, + - 'updates-testing': { + - 'from': 'f31-modular-updates-testing', + - 'ostrees': [], + - 'to': [{'arches': ['x86_64', 'aarch64', 'armhfp', 'source'], + - 'dest': os.path.join(FEDORADEST, 'testing', '31', 'Modular')}, + - {'arches': ['ppc64le', 's390x'], + - 'dest': os.path.join(FEDORAALTDEST, 'testing', '31', 'Modular')} + - ]}} + - }, + 'epel8': {'topic': 'epel', + 'version': '8', + 'modules': ['epel'], + diff --git a/roles/bodhi2/backend/tasks/main.yml b/roles/bodhi2/backend/tasks/main.yml + index a4b2a2b..d84f86a 100644 + --- a/roles/bodhi2/backend/tasks/main.yml + +++ b/roles/bodhi2/backend/tasks/main.yml + @@ -76,7 +76,7 @@ + # bodhi2/backend/files/koji_sync_listener.py + # This cronjob runs only once a day. The listener script runs reactively. + cron: name="owner-sync" minute="15" hour="4" user="root" + - job="/usr/local/bin/lock-wrapper owner-sync '/usr/local/bin/owner-sync-pagure f34 f34-container f34-modular f33 f33-container f33-modular f33-flatpak f32 f32-container f32-modular f32-flatpak f31 f31-container f31-flatpak f31-modular epel8 epel8-playground epel8-modular epel7 dist-6E-epel module-package-list modular'" + + job="/usr/local/bin/lock-wrapper owner-sync '/usr/local/bin/owner-sync-pagure f34 f34-container f34-modular f33 f33-container f33-modular f33-flatpak f32 f32-container f32-modular f32-flatpak epel8 epel8-playground epel8-modular epel7 dist-6E-epel module-package-list modular'" + cron_file=update-koji-owner + when: env == "production" + tags: + diff --git a/roles/bodhi2/backend/templates/koji_sync_listener.toml b/roles/bodhi2/backend/templates/koji_sync_listener.toml + index 753adc0..41954ca 100644 + --- a/roles/bodhi2/backend/templates/koji_sync_listener.toml + +++ b/roles/bodhi2/backend/templates/koji_sync_listener.toml + @@ -48,10 +48,6 @@ taglist = [ + "f32-container", + "f32-modular", + "f32-flatpak", + - "f31", + - "f31-container", + - "f31-flatpak", + - "f31-modular", + "epel8", + "epel8-playground", + "epel8-modular", + diff --git a/roles/koji_hub/templates/hub.conf.j2 b/roles/koji_hub/templates/hub.conf.j2 + index 2f8b716..4816dba 100644 + --- a/roles/koji_hub/templates/hub.conf.j2 + +++ b/roles/koji_hub/templates/hub.conf.j2 + @@ -187,6 +187,5 @@ sidetag = + tag f34-build :: allow + tag f33-build :: allow + tag f32-build :: allow + - tag f31-build :: allow + tag eln-build :: allow + all :: deny + diff --git a/roles/mbs/common/files/default-modules.production/platform-f31.yaml b/roles/mbs/common/files/default-modules.production/platform-f31.yaml + deleted file mode 100644 + index 0608f93..0000000 + --- a/roles/mbs/common/files/default-modules.production/platform-f31.yaml + +++ /dev/null + @@ -1,28 +0,0 @@ + -data: + - description: Fedora 31 traditional base + - license: + - module: [MIT] + - name: platform + - profiles: + - buildroot: + - rpms: [bash, bzip2, coreutils, cpio, diffutils, fedora-release, findutils, gawk, + - glibc-minimal-langpack, grep, gzip, info, make, patch, redhat-rpm-config, + - rpm-build, sed, shadow-utils, tar, unzip, util-linux, which, xz] + - srpm-buildroot: + - rpms: [bash, fedora-release, fedpkg-minimal, glibc-minimal-langpack, gnupg2, + - redhat-rpm-config, rpm-build, shadow-utils] + - stream: f31 + - summary: Fedora 31 traditional base + - context: 00000000 + - version: 1 + - xmd: + - mbs: + - buildrequires: {} + - commit: f31 + - requires: {} + - koji_tag: module-f31-build + - mse: TRUE + - virtual_streams: [fedora] + -document: modulemd + -version: 1 + - + diff --git a/roles/pkgdb-proxy/files/pkgdb-gnome-software-collections.json b/roles/pkgdb-proxy/files/pkgdb-gnome-software-collections.json + index d2f9a89..0eae499 100644 + --- a/roles/pkgdb-proxy/files/pkgdb-gnome-software-collections.json + +++ b/roles/pkgdb-proxy/files/pkgdb-gnome-software-collections.json + @@ -41,7 +41,7 @@ + "dist_tag": ".fc31", + "koji_name": "f31", + "name": "Fedora", + - "status": "Active", + + "status": "EOL", + "version": "31" + }, + { + diff --git a/roles/releng/files/cloud-updates b/roles/releng/files/cloud-updates + index 0a37b49..ebb807c 100644 + --- a/roles/releng/files/cloud-updates + +++ b/roles/releng/files/cloud-updates + @@ -7,5 +7,5 @@ MAILTO=releng-cron@lists.fedoraproject.org + 15 7 * * * root TMPDIR=`mktemp -d /tmp/CloudF32.XXXXXX` && pushd $TMPDIR && git clone -n https://pagure.io/pungi-fedora.git && cd pungi-fedora && git checkout f32 && LANG=en_US.UTF-8 ./cloud-nightly.sh RC-$(date "+\%Y\%m\%d").0 && popd && rm -rf $TMPDIR + + # Fedora 31 Cloud nightly compose + -MAILTO=releng-cron@lists.fedoraproject.org + -15 8 * * * root TMPDIR=`mktemp -d /tmp/CloudF31.XXXXXX` && pushd $TMPDIR && git clone -n https://pagure.io/pungi-fedora.git && cd pungi-fedora && git checkout f31 && LANG=en_US.UTF-8 ./cloud-nightly.sh RC-$(date "+\%Y\%m\%d").0 && popd && rm -rf $TMPDIR + +#MAILTO=releng-cron@lists.fedoraproject.org + +#15 8 * * * root TMPDIR=`mktemp -d /tmp/CloudF31.XXXXXX` && pushd $TMPDIR && git clone -n https://pagure.io/pungi-fedora.git && cd pungi-fedora && git checkout f31 && LANG=en_US.UTF-8 ./cloud-nightly.sh RC-$(date "+\%Y\%m\%d").0 && popd && rm -rf $TMPDIR + diff --git a/roles/releng/files/container-updates b/roles/releng/files/container-updates + index d3a0e14..6932bec 100644 + --- a/roles/releng/files/container-updates + +++ b/roles/releng/files/container-updates + @@ -1,6 +1,6 @@ + #Fedora 31 Container Updates nightly compose + -MAILTO=releng-cron@lists.fedoraproject.org + -45 5 * * * root TMPDIR=`mktemp -d /tmp/containerF31.XXXXXX` && pushd $TMPDIR && git clone -n https://pagure.io/pungi-fedora.git && cd pungi-fedora && git checkout f31 && LANG=en_US.UTF-8 ./container-nightly.sh RC-$(date "+\%Y\%m\%d").0 && popd && rm -rf $TMPDIR + +#MAILTO=releng-cron@lists.fedoraproject.org + +#45 5 * * * root TMPDIR=`mktemp -d /tmp/containerF31.XXXXXX` && pushd $TMPDIR && git clone -n https://pagure.io/pungi-fedora.git && cd pungi-fedora && git checkout f31 && LANG=en_US.UTF-8 ./container-nightly.sh RC-$(date "+\%Y\%m\%d").0 && popd && rm -rf $TMPDIR + + # Fedora 33 Container Updates nightly compose + MAILTO=releng-cron@lists.fedoraproject.org + diff --git a/roles/robosignatory/templates/robosignatory.toml.j2 b/roles/robosignatory/templates/robosignatory.toml.j2 + index 41ab24c..60295c1 100644 + --- a/roles/robosignatory/templates/robosignatory.toml.j2 + +++ b/roles/robosignatory/templates/robosignatory.toml.j2 + @@ -92,30 +92,6 @@ handlers = ["console"] + + # Temporary tags + + - [[consumer_config.koji_instances.primary.tags]] + - from = "f31-kde" + - to = "f31-kde" + - key = "{{ (env == 'production')|ternary('fedora-31', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('3c3359c4', 'd300e724') }}" + - + - [[consumer_config.koji_instances.primary.tags]] + - from = "f31-gnome" + - to = "f31-gnome" + - key = "{{ (env == 'production')|ternary('fedora-31', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('3c3359c4', 'd300e724') }}" + - + - [[consumer_config.koji_instances.primary.tags]] + - from = "f31-python" + - to = "f31-python" + - key = "{{ (env == 'production')|ternary('fedora-31', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('3c3359c4', 'd300e724') }}" + - + - [[consumer_config.koji_instances.primary.tags]] + - from = "f30-kde" + - to = "f30-kde" + - key = "{{ (env == 'production')|ternary('fedora-30', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('cfc659b9', 'd300e724') }}" + - + # Infra tags + + [[consumer_config.koji_instances.primary.tags]] + @@ -143,12 +119,6 @@ handlers = ["console"] + keyid = "{{ (env == 'production')|ternary('47dd8ef9', 'd300e724') }}" + + [[consumer_config.koji_instances.primary.tags]] + - from = "f31-infra-candidate" + - to = "f31-infra-stg" + - key = "{{ (env == 'production')|ternary('fedora-infra', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('47dd8ef9', 'd300e724') }}" + - + - [[consumer_config.koji_instances.primary.tags]] + from = "f32-infra-candidate" + to = "f32-infra-stg" + key = "{{ (env == 'production')|ternary('fedora-infra', 'testkey') }}" + @@ -170,18 +140,6 @@ handlers = ["console"] + # Gated coreos-pool tag + + [[consumer_config.koji_instances.primary.tags]] + - from = "f30-coreos-signing-pending" + - to = "coreos-pool" + - key = "{{ (env == 'production')|ternary('fedora-30', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('cfc659b9', 'd300e724') }}" + - + - [[consumer_config.koji_instances.primary.tags]] + - from = "f31-coreos-signing-pending" + - to = "coreos-pool" + - key = "{{ (env == 'production')|ternary('fedora-31', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('3c3359c4', 'd300e724') }}" + - + - [[consumer_config.koji_instances.primary.tags]] + from = "f32-coreos-signing-pending" + to = "coreos-pool" + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + @@ -297,19 +255,6 @@ handlers = ["console"] + keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + type = "modular" + + - [[consumer_config.koji_instances.primary.tags]] + - from = "f31-signing-pending" + - to = "f31-updates-testing-pending" + - key = "{{ (env == 'production')|ternary('fedora-31', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('3c3359c4', 'd300e724') }}" + - + - [[consumer_config.koji_instances.primary.tags]] + - from = "f31-modular-signing-pending" + - to = "f31-modular-updates-testing-pending" + - key = "{{ (env == 'production')|ternary('fedora-31', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('3c3359c4', 'd300e724') }}" + - type = "modular" + - + #epel8 modular tags + [[consumer_config.koji_instances.primary.tags]] + from = "epel8-modular-signing-pending" + @@ -417,12 +362,6 @@ handlers = ["console"] + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + + - [[consumer_config.koji_instances.primary.tags]] + - from = "f31-openh264" + - to = "f31-openh264" + - key = "{{ (env == 'production')|ternary('fedora-31', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('3c3359c4', 'd300e724') }}" + - + # f33-rebuild + [[consumer_config.koji_instances.primary.tags]] + from = "f33-rebuild" + +* Run the associated playbooks on *batcave* +:: + + $ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/bodhi-backend.yml + $ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/koji-hub.yml + $ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/mbs.yml + $ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/releng-compose.yml + $ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/proxies -t pkgdb2 + $ sudo ansible-playbook /srv/web/infra/ansible/playbooks/manual/autosign.yml + $ sudo ansible-playbook /srv/web/infra/ansible/playbooks/openshift-apps/bodhi.yml + +MBS Platform Retirement +----------------------- +* To retire the platform in mbs, run the following command on mbs-backend01.iad2.fedoraproject.org +:: + + $ sudo mbs-manager retire platform:f31 Final announcement ------------------ -* from releng to f-announce-l - * on EOL date if at all possible - * link to previous reminder announcement (use HTTPS) +* Send the final announcement to devel@, devel-announce@, test-announce@, announce@ lists Announcement content ^^^^^^^^^^^^^^^^^^^^ +:: + Hello all, -* As of the , Fedora X has reached its end of life for - updates and support. No further updates, including security updates, - will be available for Fedora X. A previous reminder was sent on - [0]. Fedora X+1 will continue to receive updates until - approximately one month after the release of Fedora X+3. The - maintenance schedule of Fedora releases is documented on the Fedora - Project wiki [1]. The Fedora Project wiki also contains instructions - [2] on how to upgrade from a previous release of Fedora to a version - receiving updates. - - . + As of the 24th of November 2020, Fedora 31 has reached its end of life + for updates and support. No further updates, including security + updates, will be available for Fedora 31. All the updates that are + currently in testing won't get pushed to stable. Fedora 32 will + continue to receive updates until approximately one month after the + release of Fedora 34. The maintenance schedule of Fedora releases is + documented on the Fedora Project wiki [0]. The Fedora Project wiki + also contains instructions [1] on how to upgrade from a previous + release of Fedora to a version receiving updates. - [0] - [1]https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle#Maintenance_Schedule - [2]https://getfedora.org/ + Mohan Boddu. -.. note:: - All dates should follow xxth of month year format.(Example: 19th of July 2016) + [0] https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle#Maintenance_Schedule + [1] https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/ Update eol wiki page ^^^^^^^^^^^^^^^^^^^^ @@ -156,17 +438,13 @@ Update eol wiki page https://fedoraproject.org/wiki/End_of_life update with release and number of days. -Verification -============ -.. note:: - FIXME: This section needs some love Consider Before Running ======================= * Resource contention in infrastructure, such as outages * Extenuating circumstances for specific planned updates, if any -* ot +* Send the reminder announcement, if it isn't sent already .. _maintenance schedule: https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle#Maintenance_Schedule @@ -176,4 +454,6 @@ Consider Before Running https://pagure.io/fedora-badges/blob/master/f/rules/you-can-pry-it-from-my-cold-undead-hands.yml .. _File Taskotron ticket: https://pagure.io/taskotron/new_issue?title=Fedora%20EOL%20notification&content=Fedora%20NN%20is%20now%20EOL +.. _releng: + https://pagure.io/releng