Migration of fedora-scm-requests to Forgejo #13108
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
day-to-day
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
release-process
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
10 participants
Notifications
Due date
No due date set.
Depends on
Reference
releng/tickets#13108
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?
Summary
The fedora-scm-requests repository is a critical component of the Fedora workflow, used extensively across package maintainers, Release Engineering, and Infra to handle requests related to SCM operations (package creation, branch requests, ACL changes, orphaning, retirements, etc.).
As part of the RelEng sub-repository migration plan for Sprint 5, we are migrating this repository from Pagure to Forgejo to align with the Forgejo-based workflow used across the Fedora Infrastructure.
This work follows the two-week Sprint schedule:
Week 1: Investigation and dependency assessment
Week 2: Implementation and validation
Deadline: Two weeks from today (when picked up).
Is it really worth doing this now? The scm request toddler code will have to be changed again when distgit moves to Forgejo, and also it'd nice to wait to do this until then so the tracker can be hosted on src.fp.o instead of on the main forge instance.
I think @gotmax23 has a valid point. Releng should not move the repository yet. However, it makes sense to proceed with investigating and identifying all the changes that will be needed across the ecosystem, for example, in toddlers and fedpkg.
The person doing the investigation should also consider Forgejo’s newer functionality. Leveraging Forgejo Actions could allow releng to keep both the tracker and the automation definitions in a single repository.
agree, lets discuss it at the meeting. I would say it will be better process in a two-step way:
fedpkgto open tickets ion both pagure and forgetoddlerautomation works with messages comming from forgepagureinfedpkgWill pagure.io live long enough to keep using it for this until the distgit is on forgejo?
@churchyard No, see https://communityblog.fedoraproject.org/the-forge-is-our-new-home/. The distgit will start the migration after pagure.io is migrated and archived.
That's what I thought. Hence, the proposed solution to this won't work.
I think one of the possible approaches is to just drop this functionality from the toddlers and re-implement it like this:
Update here:
I worked on making toddler changes for scm-requests: apps/toddlers#429;
But this is blocked by fedpkg changes (on @patrikp), and the ticket we closed for moving the repository has to be opened again, because currently it doesn't make sense to have a repository that is not synced properly with the latest updates happening at pagure. So, I'll reopen that ticket, also as part of processing ticket two; things need to be configured for that repository.
Labels: close issues with a comment and a label; these names must match toddlers config (
label_invalid/label_processed). Defaults are the strings above.I remember creating a
releng-botfor compose-tracker / compose-tracker-issues. I think we can similarly create a new one or reuse it as an account for commenting, closing, and opening the issue here as well?And, another crucial bit, need to hook Webhook → fedora-messaging (W2FM), any recommendation for making it repo/or org level?
Lastly, to add these configurations (tokens et al) to Ansible private (I think that was the place, but I might need to check again (jog up my last brain cell :)
But bottom line being once we have supported fedpkg changes in, for toddler changes, this is a mental roadmap that I used: #13370 (comment)
CC: @patrikp @humaton @kevin @zlopez
@jnsamyak wrote in #13108 (comment):
It's going to be tricky to copy this repo over and switch to it, since users are somewhat out of our control... but we can do a flag day.
Yeah.
Docs are at: https://docs.fedoraproject.org/en-US/forge-documentation/webhook_to_fedora_messaging/
any org admin can set it up for an org.
I would argue we should just set it automatically for all non private repos
( forge/forge#569 )
Once fedpkg changes are in, new fedpkg packages need built for all supported releases.
Then they need to be pushed stable.
Then maintainers need to start using them. ;)
But yeah, once they are available we can point people to update if they can't request the old way.
fedpkg changes have been merged [1] and the maintainer is currently working on the release and building the packages.
[1] packaging/fedpkg#636
fedora-scm-requestsMigration Checklist!Main ticket: releng/tickets#13108 (see linked sub-tickets for per-step tracking)
Toddlers rollout PR: apps/toddlers#429
Migration date: Wed Aug 05, 2026 at 14 UTC
Legend:
[ ]not started ·[~]in progress ·[x]done · ⚠️ needs infra/sysadmin-main privilegesPhase 0: T-minus (days before migration day)
Phase 1: Pre-move announcement ("it's moving, upgrade fedpkg")
1.1 Confirm the minimum
fedpkg/fedpkg-*are there, (Update: they are currently unpushed)1.2 Send the pre-move announcement to
devel-announce@lists.fedoraproject.orgCover:fedora-scm-requeststicket queue) and whensudo dnf upgrade fedpkg 'fedpkg-*'before the cutover if you plan to file new-package/new-branch requests after that date1.3 Post a short heads-up in
#fedora-relengand#fedora-adminMatrix channels.1.4 Directly ping (Matrix/email) the frequent filers, doing 1.3 will help anyway, but reaching out to some will help ease the testing or be prepared to test out with some sample packages, ask @kevin etc?
Phase 2: Stable-release testing-updates push + rawhide builds
Do this ahead of/alongside cutover so the release pipeline itself isn't mid-compose when tooling changes underneath it.
⚠️ The actual stable/testing push is usually kicked via the standing RelEng push cron/Bodhi masher run but in our case we unpushed those changes so we can just push it back to testing through UI. Confirm whether this needs a manual
bodhi-pushinvocation or is already scheduled; don't duplicate the automated masher run.Phase 3: Create the Forge repo (again sync it, so we have the top of the changes with us ready?)
releng/fedora-scm-requestsrepo on Forge by migrating it through pagure exporter.releng-scm-botor equivalent) collaborator access with issue read/write. I think this needs to be created in ansible private repo right @kevin? Also we need to create a webhook fo rmessage bus right, I think we missed this discussion yesterday.relengorg.Phase 4: Merge & roll out the new toddlers code
I think we can do this using ansible playbook too:
Test it out.
I think we can do this using ansible playbook too:
Test it out.
Phase 5: End-to-end test with real volunteers or us
releng/fedora-scm-requests, gets picked up by toddlers, and the resulting dist-git repo/branch actually appears inrpms/:Phase 6: Post-move announcement & Monitoring
devel-announce@,#fedora-releng,#fedora-admin). Include:forge.fedoraproject.org/releng/fedora-scm-requestsfedpkg request-repo/request-branchnow target Forge automatically iffedpkgis up to date no user-facing command change expected, just backendpagure.io/releng/fedora-scm-requests(Fedora wiki, Join docs, packager onboarding docs) to point at the Forge URL.Some comments:
Is this not the one we already sent? I don't think we need another one...
Well, first we need to request testing on those updates and do a compose to push them to testing
We could later (after they are confirmed to work, have karma) do a special stable push for them, but it might be that the regular cron would be fine. I think as long as they are in testing thats ok.
For rawhide we need to:
I think we can use the 'releng-bot' user that is already a member of releng?
And yes a webhook to fedora-messaging is wanted. (In fact I would say add this at the releng org level).
You want a '-t all,build,deploy' there to make it apply and build and then deploy.
On the 'it's done' announcement, we may want to mention that the updated fedpkg may be in updates-testing, so install from there if needed.
releng-bot referenced this issue2026-08-05 18:46:31 +00:00
Migration is successful, we will keep this ticket open for this week for any questions and issues.
One thing I haven't seen addressed anywhere is what repositories and permissions a token dedicated to SCM requests must have. I'm guessing access to 'releng/scm-requests' and 'Read/Write issues' would suffice but I'm unable to choose 'releng/scm-requests' in the repositories so I had to go with 'Public only'
Well, take a look at 'fedpkg request-branch --help':
"Before the operation, you need to generate a Forgejo API token at:
https://forge.fedoraproject.org/user/settings/applications
Update your token with the following command:
fedpkg set-forgejo-token
Command saves token to fedpkg config file:
~/.config/rpkg/fedpkg.conf"
But yeah, it could be scoped to releng/fedora-scm-requests repo only.
Note that it's "fedora-scm-requests" not "scm-requests"
Indeed. My bad.
I'm unable to select 'releng/fedora-scm-requests' in the "Available repositories" section. It seems I can only choose the Server SIG repositories and my forks.
:( Sounds like a forge bug/limitation... looks like it was just implemented that way without thinking about tickets:
https://codeberg.org/forgejo/forgejo/pulls/11696#issuecomment-11736297
https://status.fedoraproject.org/resolved.html#:~:text=%20Migration%20of%20fedora-scm-requests%20from%20Pagure%20to%20Forgejo links to this ticket, and says:
It would be helpful if this said "to version 1.48", especially since that version hasn't hit stable yet.