From 49b973a2f2447897f65abe7b3ed77abbebdf1d71 Mon Sep 17 00:00:00 2001 From: Mohan Boddu Date: Mar 31 2020 14:20:03 +0000 Subject: Updating mass branching doc Signed-off-by: Mohan Boddu --- diff --git a/docs/source/sop_mass_branching.rst b/docs/source/sop_mass_branching.rst index ef81a90..18c79f7 100644 --- a/docs/source/sop_mass_branching.rst +++ b/docs/source/sop_mass_branching.rst @@ -15,6 +15,21 @@ polish mode. Action ====== +Repos to branch +--------------- + +All the following listed repos needs updating, including adding a new branch +for branched release and updating master branch with new release values. + +1. https://pagure.io/pungi-fedora +2. https://pagure.io/fedora-kickstarts +3. https://pagure.io/fedora-comps +4. https://pagure.io/fedora-lorax-templates/ +5. https://pagure.io/releng/fedora-module-defaults/ +6. https://pagure.io/workstation-ostree-config/ +7. https://src.fedoraproject.org/rpms/fedora-release +8. https://src.fedoraproject.org/rpms/fedora-repos + PDC --- @@ -63,94 +78,457 @@ Where ```` will be something like ``f28`` and the `` +:: -Where ```` will be something like ``f28``, the ```` -the path to the file generated by pdc above and ```` specifies -the path where the updated gitolite configuration should be written. + --- a/roles/pkgdb-proxy/files/pkgdb-gnome-software-collections.json + +++ b/roles/pkgdb-proxy/files/pkgdb-gnome-software-collections.json + @@ -4,8 +4,8 @@ + "allow_retire": true, + "branchname": "master", + "date_created": "2014-05-14 12:36:15", + - "date_updated": "2019-08-14 17:07:23", + - "dist_tag": ".fc32", + + "date_updated": "2020-02-11 17:07:23", + + "dist_tag": ".fc33", + "koji_name": "rawhide", + "name": "Fedora", + "status": "Under Development", + @@ -13,6 +13,17 @@ + }, + { + "allow_retire": false, + + "branchname": "f32", + + "date_created": "2014-05-14 12:36:15", + + "date_updated": "2020-02-11 17:07:23", + + "dist_tag": ".fc32", + + "koji_name": "f32", + + "name": "Fedora", + + "status": "Active", + + "version": "32" + + }, + + { + + "allow_retire": false, + "branchname": "f31", + "date_created": "2014-05-14 12:36:15", + "date_updated": "2018-08-14 17:07:23", -.. note:: It may be a good idea to keep a back up of the gitolite configuration - file before mass-branching (in case something goes wrong). +fedora-packages +^^^^^^^^^^^^^^^ -.. note:: Specifying an output file that is not the current gitolite configuration - file is interesting as it allows you to diff the files before putting - the new one in place. +There is a file in the fedora-packages webapp source that needs to be updated +with new releases. It tells fedora-packages what tags to ask koji about. Just +like before, make the following edit the ansible repo in `packages3 role`_: -Once the script has ran, it will remind you to:: +:: - $ sudo -u pagure HOME=/srv/git gitolite compile - $ sudo systemctl start httpd pagure_gitolite_worker + --- a/roles/packages3/web/files/distmappings.py + +++ b/roles/packages3/web/files/distmappings.py + @@ -1,5 +1,9 @@ + # Global list of koji tags we care about + -tags = ({'name': 'Rawhide', 'tag': 'f32'}, + +tags = ({'name': 'Rawhide', 'tag': 'f33'}, + + + + {'name': 'Fedora 32', 'tag': 'f32-updates'}, + + {'name': 'Fedora 32', 'tag': 'f32'}, + + {'name': 'Fedora 32 Testing', 'tag': 'f32-updates-testing'}, + + {'name': 'Fedora 31', 'tag': 'f31-updates'}, + {'name': 'Fedora 31', 'tag': 'f31'}, +Bodhi +^^^^^ -PkgDB ------ +Bodhi needs to be updated to add new release. This needs to be done in `bodhi2 role`_ +in infra ansible repo. This change includes, updating koji-sync-listener.py, +new-updates-sync, pungi configs for both rpm and modular updates, bodhi templates. -This is temporary until pkgdb can be fully decommissioned but in the mean -time, the new release needs to be added to it. -To do so, adjust and then run the following queries on db01.stg or db01 -(database pkgdb2):: +:: - -- Update rawhide - UPDATE collection - SET dist_tag = '.fc29' - WHERE koji_name = 'rawhide'; - -- Insert the new collection - INSERT INTO collection (name, version, status, owner, branchname, dist_tag, koji_name, allow_retire, date_created, date_updated) - VALUES ('Fedora', 28, 'Under Development', 'pingou', 'f28', '.fc28', 'f28', FALSE, NOW(), NOW()); + --- a/roles/bodhi2/backend/files/koji-sync-listener.py + +++ b/roles/bodhi2/backend/files/koji-sync-listener.py + @@ -23,7 +23,7 @@ def handle(content): + sys.stdout.flush() + # XXX If you modify this taglist. Please also modify the other copy in + # bodhi2/backend/tasks/main.yml + - taglist = 'f32 f32-container f32-modular f31 f31-container f31-flatpak f31-modular f30 f30-container f30-flatpak f30-modular epel8 epel8-playground epel8-modular epel7 dist-6E-epel module-package-list modular' + + taglist = 'f33 f33-container f33-modular f33-flatpak f32 f32-container f32-modular f32-flatpak f31 f31-container f31-flatpak f31-modular f30 f30-container f30-flatpak f30-modular epel8 epel8-playground epel8-modular epel7 dist-6E-epel module-package-list modular' + cmd = [ + '/usr/local/bin/owner-sync-pagure', + '--package', package, + + diff --git a/roles/bodhi2/backend/files/new-updates-sync b/roles/bodhi2/backend/files/new-updates-sync + index 2228517..3baa775 100755 + --- a/roles/bodhi2/backend/files/new-updates-sync + +++ b/roles/bodhi2/backend/files/new-updates-sync + @@ -20,7 +20,51 @@ FEDORAALTDEST = '/pub/fedora-secondary/updates/' + EPELDEST = '/pub/epel/' + OSTREESOURCE = '/mnt/koji/compose/ostree/repo/' + OSTREEDEST = '/mnt/koji/ostree/repo/' + -RELEASES = {'f31': {'topic': 'fedora', + +RELEASES = {'f32': {'topic': 'fedora', + + 'version': '32', + + 'modules': ['fedora', 'fedora-secondary'], + + 'repos': {'updates': { + + 'from': 'f32-updates', + + 'ostrees': [{'ref': 'fedora/32/%(arch)s/updates/silverblue', + + 'dest': OSTREEDEST, + + 'arches': ['x86_64', 'ppc64le', 'aarch64']}], + + 'to': [{'arches': ['x86_64', 'armhfp', 'aarch64', 'source'], + + 'dest': os.path.join(FEDORADEST, '32', 'Everything')}, + + {'arches': ['ppc64le', 's390x'], + + 'dest': os.path.join(FEDORAALTDEST, '32', 'Everything')} + + ]}, + + 'updates-testing': { + + 'from': 'f32-updates-testing', + + 'ostrees': [{'ref': 'fedora/32/%(arch)s/testing/silverblue', + + 'dest': OSTREEDEST, + + 'arches': ['x86_64', 'ppc64le', 'aarch64']}], + + 'to': [{'arches': ['x86_64', 'aarch64', 'armhfp', 'source'], + + 'dest': os.path.join(FEDORADEST, 'testing', '32', 'Everything')}, + + {'arches': ['ppc64le', 's390x'], + + 'dest': os.path.join(FEDORAALTDEST, 'testing', '32', 'Everything')} + + ]}} + + }, + + 'f32m': {'topic': 'fedora', + + 'version': '32m', + + 'modules': ['fedora', 'fedora-secondary'], + + 'repos': {'updates': { + + 'from': 'f32-modular-updates', + + 'ostrees': [], + + 'to': [{'arches': ['x86_64', 'aarch64', 'armhfp', 'source'], + + 'dest': os.path.join(FEDORADEST, '32', 'Modular')}, + + {'arches': ['ppc64le', 's390x'], + + 'dest': os.path.join(FEDORAALTDEST, '32', 'Modular')} + + ]}, + + 'updates-testing': { + + 'from': 'f32-modular-updates-testing', + + 'ostrees': [], + + 'to': [{'arches': ['x86_64', 'aarch64', 'armhfp', 'source'], + + 'dest': os.path.join(FEDORADEST, 'testing', '32', 'Modular')}, + + {'arches': ['ppc64le', 's390x'], + + 'dest': os.path.join(FEDORAALTDEST, 'testing', '32', 'Modular')} + + ]}} + + }, + + 'f31': {'topic': 'fedora', + 'version': '31', + 'modules': ['fedora', 'fedora-secondary'], + 'repos': {'updates': { + + --- a/roles/bodhi2/backend/tasks/main.yml + +++ b/roles/bodhi2/backend/tasks/main.yml + @@ -73,7 +73,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 f32 f32-container f32-modular f31 f31-container f31-flatpak f31-modular f30 f30-container f30-flatpak f30-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 f33 f33-container f33-modular f33-flatpak f32 f32-container f32-modular f32-flatpak f31 f31-container f31-flatpak f31-modular f30 f30-container f30-flatpak f30-modular 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/pungi.module.conf.j2 b/roles/bodhi2/backend/templates/pungi.module.conf.j2 + index a594069..266cbf9 100644 + --- a/roles/bodhi2/backend/templates/pungi.module.conf.j2 + +++ b/roles/bodhi2/backend/templates/pungi.module.conf.j2 + @@ -16,6 +16,8 @@ sigkeys = [ + 'cfc659b9', + [% elif release.version_int == 31 %] + '3c3359c4', + +[% elif release.version_int == 32 %] + + '12c944d0', + [% elif release.version_int == 8 %] + '2f86d6a1', + [% endif %] + + diff --git a/roles/bodhi2/backend/templates/pungi.rpm.conf.j2 b/roles/bodhi2/backend/templates/pungi.rpm.conf.j2 + index adfa110..e68f565 100644 + --- a/roles/bodhi2/backend/templates/pungi.rpm.conf.j2 + +++ b/roles/bodhi2/backend/templates/pungi.rpm.conf.j2 + @@ -31,6 +31,8 @@ sigkeys = [ + '3c3359c4', + [% elif release.version_int == 32 %] + '12c944d0', + +[% elif release.version_int == 33 %] + + '9570ff31', + [% elif release.version_int == 6 %] + '0608b895', + [% elif release.version_int == 7 %] + + diff --git a/roles/bodhi2/base/templates/production.ini.j2 b/roles/bodhi2/base/templates/production.ini.j2 + index f6bd701..3ae6711 100644 + --- a/roles/bodhi2/base/templates/production.ini.j2 + +++ b/roles/bodhi2/base/templates/production.ini.j2 + @@ -605,6 +605,8 @@ f{{ FedoraRawhideNumber }}c.pre_beta.mandatory_days_in_testing = 0 + # Rawhide gating - Updates in rawhide don't require any days in testing. + f{{ FedoraRawhideNumber }}.status = pre_beta + f{{ FedoraRawhideNumber }}.pre_beta.mandatory_days_in_testing = 0 + +f32.status = pre_beta + +f32.pre_beta.mandatory_days_in_testing = 0 + ## + ## Buildroot Override + ## + +Greenwave +^^^^^^^^^ + +Greenwave needs to know about the new release. This is done in `greenwave openshift role`_: +:: -Ansible -------- + diff --git a/roles/openshift-apps/greenwave/templates/fedora.yaml b/roles/openshift-apps/greenwave/templates/fedora.yaml + index cf0e9fb..5c2a0f3 100644 + --- a/roles/openshift-apps/greenwave/templates/fedora.yaml + +++ b/roles/openshift-apps/greenwave/templates/fedora.yaml + @@ -53,6 +53,7 @@ rules: + --- !Policy + id: "taskotron_release_critical_tasks_for_testing" + product_versions: + + - fedora-33 + - fedora-32 + - fedora-31 + - fedora-30 + @@ -66,6 +67,7 @@ rules: + --- !Policy + id: "taskotron_release_critical_tasks_for_stable" + product_versions: + + - fedora-33 + - fedora-32 + - fedora-31 + - fedora-30 + +mbs +^^^ + +Add the new rawhide platform. Its done in `mbs role`_ in infra ansible repo. -Apps in ansible need to be updated to be aware of a new branch. +:: + diff --git a/roles/mbs/common/files/default-modules.production/platform-f33.yaml b/roles/mbs/common/files/default-modules.production/platform-f33.yaml + new file mode 100644 + index 0000000..960356c + --- /dev/null + +++ b/roles/mbs/common/files/default-modules.production/platform-f33.yaml + @@ -0,0 +1,28 @@ + +data: + + description: Fedora 33 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: f33 + + summary: Fedora 33 traditional base + + context: 00000000 + + version: 1 + + xmd: + + mbs: + + buildrequires: {} + + commit: f33 + + requires: {} + + koji_tag: module-f33-build + + mse: TRUE + + virtual_streams: [fedora] + +document: modulemd + +version: 1 + + -fedora-packages +Enable Branched Compose +^^^^^^^^^^^^^^^^^^^^^^^ + +We need to enable the branched compose. This is done in `releng role`_ of infra ansbile repo + +:: + + --- a/roles/releng/files/branched + +++ b/roles/releng/files/branched + @@ -1,3 +1,3 @@ + # branched compose + #MAILTO=releng-cron@lists.fedoraproject.org + -#15 7 * * * root TMPDIR=`mktemp -d /tmp/branched.XXXXXX` && cd $TMPDIR && git clone https://pagure.io/pungi-fedora.git && cd pungi-fedora && git checkout f31 && /usr/local/bin/lock-wrapper branched-compose "PYTHONMALLOC=debug LANG=en_US.UTF-8 ./nightly.sh" && sudo -u ftpsync /usr/local/bin/update-fullfiletimelist -l /pub/fedora-secondary/update-fullfiletimelist.lock -t /pub fedora fedora-secondary + +15 7 * * * root TMPDIR=`mktemp -d /tmp/branched.XXXXXX` && cd $TMPDIR && git clone https://pagure.io/pungi-fedora.git && cd pungi-fedora && git checkout f32 && /usr/local/bin/lock-wrapper branched-compose "PYTHONMALLOC=debug LANG=en_US.UTF-8 ./nightly.sh" && sudo -u ftpsync /usr/local/bin/update-fullfiletimelist -l /pub/fedora-secondary/update-fullfiletimelist.lock -t /pub fedora fedora-secondary + +Fedora Branched ^^^^^^^^^^^^^^^ -There is a file in the fedora-packages webapp source that needs to be updated -with new releases. It tells fedora-packages what tags to ask koji about. Just -like before, make the following edit the ansible repo: +Set FedoraBranched variable to True in infra ansible repo :: + --- a/vars/all/FedoraBranched.yaml + +++ b/vars/all/FedoraBranched.yaml + @@ -1 +1 @@ + -FedoraBranched: False + +FedoraBranched: True - diff --git a/roles/packages3/web/files/distmappings.py b/roles/packages3/web/files/distmappings.py - index c72fd4b..b1fbaa5 100644 - --- a/roles/packages3/web/files/distmappings.py - +++ b/roles/packages3/web/files/distmappings.py - @@ -1,5 +1,9 @@ - # Global list of koji tags we care about - -tags = ({'name': 'Rawhide', 'tag': 'f20'}, - +tags = ({'name': 'Rawhide', 'tag': 'f21'}, - + - + {'name': 'Fedora 20', 'tag': 'f20-updates'}, - + {'name': 'Fedora 20', 'tag': 'f20'}, - + {'name': 'Fedora 20 Testing', 'tag': 'f20-updates-testing'}, - - {'name': 'Fedora 19', 'tag': 'f19-updates'}, - {'name': 'Fedora 19', 'tag': 'f19'}, - @@ -13,10 +17,6 @@ tags = ({'name': 'Rawhide', 'tag': 'f20'}, - {'name': 'Fedora 17', 'tag': 'f17'}, - {'name': 'Fedora 17 Testing', 'tag': 'f17-updates-testing'}, - - - {'name': 'Fedora 16', 'tag': 'f16-updates'}, - - {'name': 'Fedora 16', 'tag': 'f16'}, - - {'name': 'Fedora 16 Testing', 'tag': 'f16-updates-testing'}, - - - {'name': 'EPEL 6', 'tag': 'dist-6E-epel'}, - {'name': 'EPEL 6', 'tag': 'dist-6E-epel-testing'}, +Robosignatory +^^^^^^^^^^^^^ + +Robosignatory has two parts: + +1. Disable branched signing, so that we can freeze branched until we get a compose +2. Adding new release + +Both can be in `robosignatory role`_ in infra ansible repo + +:: + --- a/roles/robosignatory/templates/robosignatory.toml.j2 + +++ b/roles/robosignatory/templates/robosignatory.toml.j2 + @@ -218,23 +218,23 @@ handlers = ["console"] + + # Gated rawhide and branched + + - [[consumer_config.koji_instances.primary.tags]] + - from = "f32-signing-pending" + - to = "f32-updates-testing-pending" + - key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + - + - [consumer_config.koji_instances.primary.tags.sidetags] + - pattern = 'f32-build-side-' + - from = '-signing-pending' + - to = '-testing-pending' + - trusted_taggers = ['bodhi'] + - + - [[consumer_config.koji_instances.primary.tags]] + - from = "f32-pending" + - to = "f32" + - key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + - keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + +# [[consumer_config.koji_instances.primary.tags]] + +# from = "f32-signing-pending" + +# to = "f32-updates-testing-pending" + +# key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + +# keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + + + +# [consumer_config.koji_instances.primary.tags.sidetags] + +# pattern = 'f32-build-side-' + +# from = '-signing-pending' + +# to = '-testing-pending' + +# trusted_taggers = ['bodhi'] + + + +# [[consumer_config.koji_instances.primary.tags]] + +# from = "f32-pending" + +# to = "f32" + +# key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + +# keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + + [[consumer_config.koji_instances.primary.tags]] + from = "f32-modular-pending" + + --- a/roles/robosignatory/templates/robosignatory.toml.j2 + +++ b/roles/robosignatory/templates/robosignatory.toml.j2 + @@ -216,8 +216,46 @@ handlers = ["console"] + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + + + [[consumer_config.koji_instances.primary.tags]] + + from = "f33-coreos-signing-pending" + + to = "coreos-pool" + + key = "{{ (env == 'production')|ternary('fedora-33', 'testkey') }}" + + keyid = "{{ (env == 'production')|ternary('9570ff31', 'd300e724') }}" + + + # Gated rawhide and branched + + + [[consumer_config.koji_instances.primary.tags]] + + from = "f33-signing-pending" + + to = "f33-updates-testing-pending" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + + + + [consumer_config.koji_instances.primary.tags.sidetags] + + pattern = 'f33-build-side-' + + from = '-signing-pending' + + to = '-testing-pending' + + trusted_taggers = ['bodhi'] + + + + [[consumer_config.koji_instances.primary.tags]] + + from = "f33-pending" + + to = "f33" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + + + + [[consumer_config.koji_instances.primary.tags]] + + from = "f33-modular-pending" + + to = "f33-modular" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + + type = "modular" + + + + [[consumer_config.koji_instances.primary.tags]] + + from = "f33-modular-updates-candidate" + + to = "f33-modular" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + keyid = "{{ (env == 'production')|ternary('12c944d0', 'd300e724') }}" + + type = "modular" + + + # [[consumer_config.koji_instances.primary.tags]] + # from = "f32-signing-pending" + # to = "f32-updates-testing-pending" + @@ -469,15 +507,43 @@ handlers = ["console"] + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + key = "{{ (env == 'production')|ternary('fedora-31', 'testkey') }}" + + - [consumer_config.ostree_refs."fedora/rawhide/aarch64/silverblue"] + + [consumer_config.ostree_refs."fedora/32/x86_64/silverblue"] + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + - [consumer_config.ostree_refs."fedora/rawhide/ppc64le/silverblue"] + + [consumer_config.ostree_refs."fedora/32/aarch64/silverblue"] + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + - [consumer_config.ostree_refs."fedora/rawhide/x86_64/silverblue"] + + [consumer_config.ostree_refs."fedora/32/ppc64le/silverblue"] + + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + [consumer_config.ostree_refs."fedora/32/x86_64/updates/silverblue"] + + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + [consumer_config.ostree_refs."fedora/32/x86_64/testing/silverblue"] + + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + [consumer_config.ostree_refs."fedora/32/aarch64/updates/silverblue"] + + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + [consumer_config.ostree_refs."fedora/32/aarch64/testing/silverblue"] + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + [consumer_config.ostree_refs."fedora/32/ppc64le/updates/silverblue"] + + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + [consumer_config.ostree_refs."fedora/32/ppc64le/testing/silverblue"] + + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + + key = "{{ (env == 'production')|ternary('fedora-32', 'testkey') }}" + + + + [consumer_config.ostree_refs."fedora/rawhide/aarch64/silverblue"] + + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + + key = "{{ (env == 'production')|ternary('fedora-33', 'testkey') }}" + + [consumer_config.ostree_refs."fedora/rawhide/ppc64le/silverblue"] + + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + + key = "{{ (env == 'production')|ternary('fedora-33', 'testkey') }}" + + [consumer_config.ostree_refs."fedora/rawhide/x86_64/silverblue"] + + directory = "/mnt/fedora_koji/koji/compose/ostree/repo/" + + key = "{{ (env == 'production')|ternary('fedora-33', 'testkey') }}" + + + [consumer_config.coreos] Push the changes ^^^^^^^^^^^^^^^^ @@ -161,6 +539,13 @@ ansible playbook: :: sudo rbac-playbook groups/packages.yml -t packages/web + sudo rbac-playbook groups/releng-compose.yml + sudo rbac-playbook groups/bodhi-backend.yml + sudo rbac-playbook openshift-apps/greenwave.yml + sudo -i ansible-playbook /srv/web/infra/ansible/playbooks/groups/proxies.yml -t pkgdb + sudo rbac-playbook groups/mbs.yml -t mbs + +Ask someone in fedora infra to run the robosignatory playbook. Taskotron @@ -172,67 +557,331 @@ be added. Koji ---- The koji build system needs to have some tag/target work done to handle builds -from the new branch and to update where builds from master go. See the -:ref:`section on Koji in the Adding Build Targets SOP ` -for details. +from the new branch and to update where builds from master go. +Run `make-koji-release-tags`_ script in `pagure releng`_ repo Fedora Release -------------- The Fedora release package needs to be updated in both the new branch and in master. -.. note:: - FIXME Link to fedora release bump SOP ... FIXME Does that SOP exist? +Changes to master branch in fedora-release package: + +:: + + diff --git a/fedora-release.spec b/fedora-release.spec + index bdba221..ad8d8f4 100644 + --- a/fedora-release.spec + +++ b/fedora-release.spec + @@ -1,5 +1,5 @@ + %define release_name Rawhide + -%define dist_version 32 + +%define dist_version 33 + %define bug_version rawhide + + # Change this when branching to fNN + @@ -13,8 +13,8 @@ + + Summary: Fedora release files + Name: fedora-release + -Version: 32 + -Release: 0.5 + +Version: 33 + +Release: 0.1 + License: MIT + URL: https://fedoraproject.org/ + + @@ -646,6 +646,9 @@ echo _DISABLED_ > %{buildroot}%{_prefix}/lib/variant + + + %changelog + +* Tue Feb 11 2020 Mohan Boddu - 33-0.1 + +- Setup for rawhide being F33 + + + * Fri Feb 7 2020 Zbigniew Jędrzejewski-Szmek - 32-0.5 + - Add 'disable *' default preset for user units (#1468501) + +Changes to branched branch in fedora-release package: +:: + + diff --git a/fedora-release.spec b/fedora-release.spec + index ad8d8f4..2588ec9 100644 + --- a/fedora-release.spec + +++ b/fedora-release.spec + @@ -1,9 +1,9 @@ + -%define release_name Rawhide + -%define dist_version 33 + -%define bug_version rawhide + +%define release_name Thirty Two + +%define dist_version 32 + +%define bug_version 32 + + # Change this when branching to fNN + -%define doc_version rawhide + +%define doc_version f32 + + # Changes should be submitted as pull requests under + # https://src.fedoraproject.org/rpms/fedora-release + @@ -13,8 +13,8 @@ + + Summary: Fedora release files + Name: fedora-release + -Version: 33 + -Release: 0.1 + +Version: 32 + +Release: 0.6 + License: MIT + URL: https://fedoraproject.org/ + + @@ -646,8 +646,8 @@ echo _DISABLED_ > %{buildroot}%{_prefix}/lib/variant + + + %changelog + -* Tue Feb 11 2020 Mohan Boddu - 33-0.1 + -- Setup for rawhide being F33 + +* Tue Feb 11 2020 Mohan Boddu - 32-0.6 + +- Branching F32 from rawhide + + * Fri Feb 7 2020 Zbigniew Jędrzejewski-Szmek - 32-0.5 + - Add 'disable *' default preset for user units (#1468501) + +Fedora Repos +------------ + +Similar to fedora-release, fedora-repos package also needs to be updated. + +Changes to master branch of fedora-repos package: + +:: + + diff --git a/archmap b/archmap + index b602401..cfd6fb7 100644 + --- a/archmap + +++ b/archmap + @@ -68,3 +68,5 @@ fedora-iot-2019: i386 x86_64 armhfp aarch64 ppc64le s390x + fedora-31-primary: i386 x86_64 armhfp aarch64 ppc64le s390x + + fedora-32-primary: i386 x86_64 armhfp aarch64 ppc64le s390x + + + +fedora-33-primary: i386 x86_64 armhfp aarch64 ppc64le s390x + diff --git a/fedora-repos.spec b/fedora-repos.spec + index bf3f993..0763f8e 100644 + --- a/fedora-repos.spec + +++ b/fedora-repos.spec + @@ -1,7 +1,7 @@ + Summary: Fedora package repositories + Name: fedora-repos + -Version: 32 + -Release: 0.4%{?_module_build:%{?dist}} + +Version: 33 + +Release: 0.1%{?_module_build:%{?dist}} + License: MIT + URL: https://fedoraproject.org/ + + @@ -168,6 +168,9 @@ install -m 644 %{_sourcedir}/fedora.conf $RPM_BUILD_ROOT/etc/ostree/remotes.d/ + /etc/ostree/remotes.d/fedora.conf + + %changelog + +* Tue Feb 11 2020 Mohan Boddu - 33-0.1 + +- Setup for rawhide being F33 + + + * Tue Feb 11 2020 Mohan Boddu - 32-0.4 + - Remove baseurl download.fp.o (puiterwijk) + - Enabling dnf countme + +Changes to branched branch of fedora-repos package: + +:: + + diff --git a/fedora-modular.repo b/fedora-modular.repo + index e7c436e..8bccd7b 100644 + --- a/fedora-modular.repo + +++ b/fedora-modular.repo + @@ -1,7 +1,7 @@ + [fedora-modular] + name=Fedora Modular $releasever - $basearch + metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-$releasever&arch=$basearch + -enabled=0 + +enabled=1 + countme=1 + #metadata_expire=7d + repo_gpgcheck=0 + diff --git a/fedora-rawhide-modular.repo b/fedora-rawhide-modular.repo + index 25548ac..9242e07 100644 + --- a/fedora-rawhide-modular.repo + +++ b/fedora-rawhide-modular.repo + @@ -22,7 +22,7 @@ + [rawhide-modular] + name=Fedora - Modular Rawhide - Developmental packages for the next Fedora release + metalink=https://mirrors.fedoraproject.org/metalink?repo=rawhide-modular&arch=$basearch + -enabled=1 + +enabled=0 + countme=1 + metadata_expire=6h + repo_gpgcheck=0 + diff --git a/fedora-rawhide.repo b/fedora-rawhide.repo + index 7fb162c..cb76183 100644 + --- a/fedora-rawhide.repo + +++ b/fedora-rawhide.repo + @@ -22,7 +22,7 @@ + [rawhide] + name=Fedora - Rawhide - Developmental packages for the next Fedora release + metalink=https://mirrors.fedoraproject.org/metalink?repo=rawhide&arch=$basearch + -enabled=1 + +enabled=0 + countme=1 + metadata_expire=6h + repo_gpgcheck=0 + diff --git a/fedora-repos.spec b/fedora-repos.spec + index 0763f8e..b719b9f 100644 + --- a/fedora-repos.spec + +++ b/fedora-repos.spec + @@ -1,7 +1,7 @@ + Summary: Fedora package repositories + Name: fedora-repos + -Version: 33 + -Release: 0.1%{?_module_build:%{?dist}} + +Version: 32 + +Release: 0.5%{?_module_build:%{?dist}} + License: MIT + URL: https://fedoraproject.org/ + + @@ -168,8 +168,9 @@ install -m 644 %{_sourcedir}/fedora.conf $RPM_BUILD_ROOT/etc/ostree/remotes.d/ + /etc/ostree/remotes.d/fedora.conf + + %changelog + -* Tue Feb 11 2020 Mohan Boddu - 33-0.1 + -- Setup for rawhide being F33 + +* Tue Feb 11 2020 Mohan Boddu - 32-0.5 + +- Disable rawhide repos + +- Enable fedora, updates, updates-testing repos + + * Tue Feb 11 2020 Mohan Boddu - 32-0.4 + - Remove baseurl download.fp.o (puiterwijk) + diff --git a/fedora-updates-modular.repo b/fedora-updates-modular.repo + index b73258f..0b3767c 100644 + --- a/fedora-updates-modular.repo + +++ b/fedora-updates-modular.repo + @@ -1,7 +1,7 @@ + [updates-modular] + name=Fedora Modular $releasever - $basearch - Updates + metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-f$releasever&arch=$basearch + -enabled=0 + +enabled=1 + countme=1 + repo_gpgcheck=0 + type=rpm + diff --git a/fedora-updates-testing-modular.repo b/fedora-updates-testing-modular.repo + index 9dcedbb..026b010 100644 + --- a/fedora-updates-testing-modular.repo + +++ b/fedora-updates-testing-modular.repo + @@ -1,7 +1,7 @@ + [updates-testing-modular] + name=Fedora Modular $releasever - $basearch - Test Updates + metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-modular-f$releasever&arch=$basearch + -enabled=0 + +enabled=1 + countme=1 + repo_gpgcheck=0 + type=rpm + diff --git a/fedora-updates-testing.repo b/fedora-updates-testing.repo + index db00456..1478416 100644 + --- a/fedora-updates-testing.repo + +++ b/fedora-updates-testing.repo + @@ -1,7 +1,7 @@ + [updates-testing] + name=Fedora $releasever - $basearch - Test Updates + metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&arch=$basearch + -enabled=0 + +enabled=1 + countme=1 + repo_gpgcheck=0 + type=rpm + diff --git a/fedora-updates.repo b/fedora-updates.repo + index 3691dc4..8f009f7 100644 + --- a/fedora-updates.repo + +++ b/fedora-updates.repo + @@ -1,7 +1,7 @@ + [updates] + name=Fedora $releasever - $basearch - Updates + metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch + -enabled=0 + +enabled=1 + countme=1 + repo_gpgcheck=0 + type=rpm + diff --git a/fedora.repo b/fedora.repo + index 3e59790..8dc0323 100644 + --- a/fedora.repo + +++ b/fedora.repo + @@ -1,7 +1,7 @@ + [fedora] + name=Fedora $releasever - $basearch + metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch + -enabled=0 + +enabled=1 + countme=1 + #metadata_expire=7d + repo_gpgcheck=0 + +.. note:: + Build fedora-release, fedora-repos package for **branched release before enabling the rawhide gating** Bodhi ----- -Bodhi needs to be turned on for the new branch. Instructions in the `Bodhi SOP`_ +Linking Empty Repos +^^^^^^^^^^^^^^^^^^^ -Enable nightly branched compose -------------------------------- -A cron job needs to be modified and turned on for the new branch. +We need to link empty repos so that new-updates-sync wont complain about missing repos. +The following commands should be run on **bodhi-backend01.phx2.fedoraproject.org** -.. note:: - FIXME Link to nightly branched SOP ... Does that SOP exist? +:: + + $ sudo ln -s /mnt/koji/compose/updates/empty-repo/ /mnt/koji/compose/updates/f32-updates + $ sudo ln -s /mnt/koji/compose/updates/empty-repo/ /mnt/koji/compose/updates/f32-updates-testing + $ sudo ln -s /mnt/koji/compose/updates/empty-repo/ /mnt/koji/compose/updates/f32-modular-updates + $ sudo ln -s /mnt/koji/compose/updates/empty-repo/ /mnt/koji/compose/updates/f32-modular-updates-testing +Creating Empty Repos +^^^^^^^^^^^^^^^^^^^^ -Update kickstart used by nightly live ISOs ------------------------------------------- +To create empty repos on the master mirror, run `create_emtpy_repos.sh`_ from `pagure releng`_ repo. +This should be run on **bodhi-backend01.phx2.fedoraproject.org** -On a nightly basis, a live ISO image is created for each `spin`_ and hosted at -http://alt.fedoraproject.org/pub/fedora/linux/development/rawhide/Spins/. The -`dnf`_/`yum`_ repositories used by `spin-kickstarts`_ need to be updated to -use the branched repository. Please `file a rel-eng ticket`_ to request updating -the kickstart file used to generate the nightly spin ISO's. +:: + $ sudo -u ftpsync sh scripts/branching/create_empty_repos.sh 31 -Comps ------ -A new comps file needs to be created for the next fedora release (the one after -what we just branched for). +Creating rawhide release +^^^^^^^^^^^^^^^^^^^^^^^^ + +To create a rawhide release in bodhi, you need to run -Please see :doc:`sop_updating_comps` +:: + + $ bodhi releases create --name "F32" --long-name "Fedora 32" --id-prefix FEDORA --version 32 --branch f32 --dist-tag f32 --stable-tag f32 --testing-tag f32-updates-testing --candidate-tag f32-updates-candidate --pending-stable-tag f32-updates-pending --pending-testing-tag f32-updates-testing-pending --pending-signing-tag f32-signing-pending --state pending --override-tag f32-override --create-automatic-updates --not-composed-by-bodhi + +You need to run the ``bodhi openshift`` playbook, so that UI will know about the new release. +Then, you need to restart **fm-consumer@config.service** and **bodhi-celery.service** services on +**bodhi-backend01.phx2.fedoraproject.org** +:: + + $ sudo rbac-playbook openshift-apps/bodhi.yml + $ sudo systemctl restart fm-consumer@config.service bodhi-celery.service -MirrorManager -------------- -Mirror manager will have to be updated so that the `dnf`_/`yum`_ repo -redirections are going to the right places. .. note:: - FIXME Link to MM SOP ... exists? + Build fedora-release, fedora-repos package for **rawhide after enabling the rawhide gating** -Update critpath ---------------- +Enable autosigning on branched release +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Packagedb has information about which packages are critpath and which are not. -A script that reads the `dnf`_/`yum`_ repodata (critpath group in comps, and -the package dependencies) is used to generate this. Read -:doc:`sop_update_critpath` for the steps to take. +Once the branched compose is composed, we need to re-enable robosignatory on branched release Fedora Container Base Image @@ -286,15 +935,27 @@ Consider Before Running -.. _Final Freeze: https://fedoraproject.org/wiki/Schedule +.. _pkgdb-proxy role: + https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/pkgdb-proxy +.. _packages3 role: + https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/packages3 +.. _bodhi2 role: + https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/bodhi2 +.. _greenwave openshift role: + https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/openshift-apps/greenwave +.. _mbs role: + https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/mbs +.. _releng role: + https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/releng +.. _robosignatory role: + https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/robosignatory +.. _make-koji-release-tags: + https://pagure.io/releng/blob/master/f/scripts/branching/make-koji-release-tags +.. _pagure releng: + https://pagure.io/releng +.. _create_emtpy_repos.sh: + https://pagure.io/releng/blob/master/f/scripts/branching/create_empty_repos.sh .. _File a Taskotron ticket: https://pagure.io/taskotron/new_issue?title=Fedora%20Branched%20notification&content=Fedora%20NN%20is%20now%20Branched -.. _Bodhi SOP: https://infrastructure.fedoraproject.org/infra/docs/bodhi.rst -.. _spin: http://spins.fedoraproject.org -.. _dnf: https://fedoraproject.org/wiki/Dnf -.. _yum: https://fedoraproject.org/wiki/Yum -.. _spin-kickstarts: https://pagure.io/fedora-kickstarts/ -.. _file a rel-eng ticket: - https://pagure.io/releng/new_issue .. _Fedora Layered Image Build System: https://docs.pagure.org/releng/layered_image_build_service.html