Arbitrary Branching The Upstream Pivot Matt Prahl Presented by Software Engineer, Red Hat
Topics 1. What is arbitrary branching? 2. Why was arbitrary branching implemented? 3. What tooling changes took place? 4. How to get an arbitrary branch?
What is an Arbitrary Branch? Branches other than f26, f25, epel7, etc. Usually something that maps to upstream such as a major version number Branches that have their own “service levels”, not tied to the service level of a Fedora release
Current Service Levels https://pdc.fedoraproject.org/rest_api/v1/component-sla-types/
Why “Arbitrary Branching”?
Beneficial To Modularity Modularity is an ongoing initiative to resolve the issue of divergent, occasionally conflicting lifecycles of different components.
Tooling Changes
Architectural Decisions Option One: Modify PkgDB to support “arbitrary branching” Option Two: Join up with the Pagure over dist-git efforts and supplement it with PDC APIs Had to add Arbitrary Branching support while maintaining the old way
Pagure over dist-git
PDC https://pdc.fedoraproject.org/rest_api/v1/component-branches/?global_component=fedrepo-req&name=epel7
Changes This Caused... New tool: fedrepo-req New branches in git require PDC entries Forking and pull requests are allowed ACLs: Repo wide Handled through the UI
Changes This Caused Bugzilla default assignee overrides and monitoring are set in pagure.io/releng/fedora-scm- requests Orphaned packages Retired packages
How Do I Use This?
fedrepo-req Examples How to request a new repo fedrepo-req reponame -t 12345 How to request a standard branch fedrepo-req-branch reponame f26 How to request an arbitrary branch fedrepo-req-branch reponame 2.1 --sl security_fixes:2020-01-01 --sl bug_fixes:2020- 01-01
fedrepo-req-admin
fedrepo-req-admin Demo
Created Project
PDC Entry
Monitoring Entry
Summary Arbitrary branches are branches that have service levels not tied to a Fedora release Arbitrary branches enable Modularity Pagure over dist-git is the new interface to dist-git Packaging requests are done through fedrepo- req
Questions? Contact: mprahl@redhat.com