Migrate pungi-fedora Repository from Pagure to Forgejo #13090
Labels
No labels
after freeze
automation
backlog
blocked
change-ack
change-nak
change-noreleng
changes
Closed As
Can't Fix
Closed As
Duplicate
Closed As
Fixed
Closed As
Fixed with Explanation
Closed As
Get back later
Closed As
Grooming
Closed As
Insufficient data
Closed As
Invalid
Closed As
It's all good
Closed As
taiga
Closed As
upstream
dev
docs
easyfix
epel
f26
f27
f28
f29
f30
f31
f32
f33
f34
f35
f36
f37
f38
f39
f40
f41
f42
f43
f44
f45
fedora
groomed
high-gain
high-trouble
in-progress
in-review
investigation
legal
low-gain
low-trouble
mass rebuild
medium-gain
medium-trouble
meeting
mini-initiative
new_artifact
ops
pdc_retirement
rawhide
RCA
review
script
sidetarget
sprint-0
sprint-1
sprint-2
sprint-3
sprint-4
sprint-5
unfrozen
waiting on external
Backlog Status
Needs Review
Backlog Status
Ready
chore
documentation
points
01
points
02
points
03
points
05
points
08
points
13
Priority
High
Priority
Low
Priority
Medium
Sprint Status
Blocked
Sprint Status
Done
Sprint Status
In Progress
Sprint Status
Review
Sprint Status
To Do
Technical Debt
Work Item
Bug
Work Item
Epic
Work Item
Spike
Work Item
Task
Work Item
User Story
No milestone
No project
No assignees
5 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
releng/tickets#13090
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
As part of the ongoing RelEng migration effort, we need to migrate the pungi-fedora repository from Pagure to Forgejo. This repository is central to Fedora’s compose process and is referenced by several automation pathways within RelEng and Infra.
This work must be completed in Sprint 5, with the first week dedicated to investigation and the second to implementation. The deadline for completion is two weeks from now.
Phase 1: Investigation (Week 1)
Tasks:
Phase 2: Implementation (Week 2)
Tasks:
Commit history
All branches and tags
Issues, labels, milestones
Existing Pungi/compose hooks
Acceptance Criteria:
Metadata Update from @jnsamyak:
Forgot to add one item, please also make sure to look out for the mailing list if connected, always make sure to send out an annoucment for this before moving, once you start working on it, make sure to send out "when" it will be moved so community knows about it.
Here are the results of the investigation phase.
The Pagure repository can be found here: https://pagure.io/pungi-fedora
Identify all existing branches, active PRs, tags, and metadata in Pagure.
Branches:
main(Rawhide/F44),eln,f43,f42,f41.f23tof40and various special branches (preserved but inactive).Active PRs:
Tags:
Metadata:
Audit CI configs, webhooks, compose triggers, and any automation that directly references
pungi-fedora.CI configs:
.zuul.yamlwith 2 validation jobs:pungi-config-validate- validates*.confsyntax.validate-variants- validatesvariants-fedora.xml.Webhooks:
Compose triggers: (more details on this later on)
roles/releng/.rawhide.j2: 3x/day (5am, 2pm, 10pm UTC).branched.j2: 1x/day (7am UTC, whenFedoraBranched=True).eln: 3x/day on weekdays, 2x/day on weekends.cloud-updates.j2: Daily forf43,f42,f41.container-updates.j2- Daily forf43,f42,f41.git clone https://pagure.io/pungi-fedora.gitDocument dependencies linking
pungi-fedoratoPungi, compose automation, and other RelEng workflows.Pungi:
Pungiis a generic distribution compose tool that takes in configuration files frompungi-fedora.pungi-fedorarepository is cloned by the cron jobs, NOT byPungi.Pungithen reads the configuration from local files and uses local configuration paths (e.g.pungi-koji --config=fedora.conf).Pungishould require no changes as part of the migration.Compose automation: (this is the critical part)
pungi-fedoradaily./roles/releng/templates.rawhide.j2compose-rawhide01.rdu3.fedoraproject.orggit clone https://pagure.io/pungi-fedora.gitmainbranched.j2compose-branched01.rdu3.fedoraproject.orggit clone https://pagure.io/pungi-fedora.gitgit checkout f{{ FedoraBranchedNumber }}eln/roles/releng/filescompose-eln01.rdu3.fedoraproject.orggit clone https://pagure.io/pungi-fedora.gitgit checkout elnelncloud-updates.j2f43,f42,f41).git clone -n https://pagure.io/pungi-fedora.gitgit checkout f{{ FedoraCycleNumber }}(f43)git checkout f{{ FedoraPreviousCycleNumber }}(f42)git checkout f{{ FedoraPreviousPreviousCycleNumber }}(f41)container-updates.j2f43,f42,f41).cloud-updates.j2.Other RelEng workflows: (in other words documentation/SOPs)
https://pagure.io/infra-docs-fpo/blob/master/f/modules/release_guide/pages
sop_beta_RC_compose.adoc- Lines 18, 102sop_final_RC_compose.adoc- Lines 18, 102sop_create_release_signing_key.adoc- Lines 196, 200sop_mass_branching_checklist.adoc- Line 151sop_mass_branching.adoc- Lines 128, 733Check for open issues and review if any need handling before migration.
I ran the migration tool, the Forgejo repository can be found here. [1]
I have also prepared the Ansible PR [2] and the PR to update our RelEng documentation [3].
Now I'm trying to investigate the CI part of the migration as I don't really understand how Zuul works and how it's configured.
[1] https://forge.fedoraproject.org/releng/pungi-fedora
[2] https://pagure.io/fedora-infra/ansible/pull-request/2980
[3] https://pagure.io/infra-docs-fpo/pull-request/437
Seems like the repository for Software Factory (the software development forge that integrates Zuul) configuration can be found here [1]. The sources file where the individual projects may be added can be found here [2].
[1] https://pagure.io/fedora-project-config
[2] https://pagure.io/fedora-project-config/blob/master/f/resources/fedora-sources.yaml
What is the state of this? While not urgent, I do have changes ready to push to
elnbranch.@patrikp wrote in #13090 (comment):
It depends what zuul jobs are you looking for. I believe zuul jobs that are run on Ansible repo can be found here
To clarify, I'm looking for a way to enable Zuul for Forgejo in general as it's currently not enabled. Would you happen to know how to do that @yselkowitz? Is it as simple as adding another line in the config file [1], e.g.
connection: forge.fedoraproject.org?[1] https://pagure.io/fedora-project-config/blob/master/f/resources/fedora-sources.yaml#_6
I suspect it's much more complicated than that, but all I've ever done was add a repo to an existing connection. But I'd imagine it would involve at least creating a bot account and credentials (token) and securely importing them on the other end.
However, I'm wondering if it wouldn't make more sense to use this as an opportunity to switch from Zuul CI to Fedora CI (TMT)?
You make a good point and it aligns with my findings. There's a proposal to get rid of Zuul altogether [1] so I don't think setting up the new forge for Zuul is in the cards. I don't know how that'll go with other repos that will be migrated in the near future that actually use Zuul for complex CI stuff, I don't think there's any sort of plan in place, and if there is one I haven't been able to find out more about it.
However, for the purposes of
pungi-fedoraspecifically, since it only does some basic sanity checks and the scripts are already in the repo itself, it should be fairly straightforward to make them run using Forgejo actions [2]. There's also a separate ticket for investigation [3].Apologies for the confusion, this is the first migration wave and we're figuring things out on the go. I think we can finish the migration of
pungi-fedorain the next few days and figure out the CI afterwards.[1] https://fedoraproject.org/wiki/Changes/PackitDistgitCI
[2] https://forgejo.org/docs/latest/user/actions/basic-concepts/
[3] #13109
Something to keep in mind is permissions. For instance, I have (had) write permissions to pagure.io/pungi-fedora but that was not migrated to forgejo.
The migration will happen in the next 24 hours. I sent an e-mail to relevant mailing lists (
devel,devel-announceandtest-announce).Using forgejo actions here makes sense and looks straight-forward, but is #13109 about using actions in releng repos or about setting up runners for forge.fp.o in the first place?
The Ansible PR was merged and playbook ran, the updated
/etc/cron.dfiles seem to be correct on the hosts, the Pagure repository is now in read-only mode, docs have been updated and an announcement e-mail sent to relevant mailing lists. We will watch out for the composes and can revert the changes if something goes wrong.I took the liberty of adding you as a collaborator to the project with write access.
Just FYI, I don't think you can manually add people here, you need to add them to the fas group associated with maintainer, etc.
The migration work is done here and is under monitoring. There is no need to have this ticket open. Closing this, and we can always reopen this 🍡