Learn more about these different git repos.
Other Git URLs
I have been wanting to simplify my package maintenance workflows for a while, and I'm trying to adopt package.cfg to reduce my need to for managing branches.
package.cfg
However, it seems that package.cfg is missing a way to specify to build for all targets, especially when you don't know what they are.
For example, I expect something like the following to work:
[koji] targets = *
What I expect this to do is make it build for every release target available in PDC when this is present in master. However, for cases where I'm required to maintain a branch (soversion bump or whatever), this would be rendered ineffective and it would just build for the fXX/epelXX branch.
fXX
epelXX
So for example, on the master branch, it'll build for F29, F30, F31, and F32 (rawhide). However, if I branch that to an f29 branch, then that will revert to the standard behavior of building only for that target (as if I didn't have a package.cfg).
master
f29
Could this be made possible with fedpkg?
fedpkg
In case it wasn't clear, what I mean here is that I'd like to maintain a package with just a master branch, as nearly all of my packages work this way effectively.
However, in the case where I need to branch for maintenance purposes (preserving ABI stability, targeted security fix, some other thing, etc.), I'd like to be able to branch master at a specific point, and have it build for that release only. In this scenario, this target gets excluded from master builds going forward. A future master build will build for everything except that target, and that branch will cover that target.
The main case for this I have is capnproto. master and the current fedora release branches are effectively the same, whereas epel7 is older and different for stability reasons.
capnproto
epel7
In this model, capnproto would be continually updated everywhere until I hit a soversion bump, and in that case, I would make branches for where I want to avoid the soversion bump so that they're automatically excluded. and handled separately from that point on. When those releases become EOL, they become a non-concern going forward.
I think what you want should be possible by specifying targets = fedora, which should get all active Fedora releases. There should also be a epel shortcut available.
targets = fedora
epel
@lsedlar There's a few problems right now.
targets = fedora epel
targets = *
Looking at my RFE in https://pagure.io/fedpkg/issue/354 I think the "magic keyword" approach is interesting but I wonder how it can be revolved when pdc isn't available (for any reason).
I would have a preference on using "all" instead of "*".
On a side note, I wonder if you already assume that you are only using one branch for all distro releases, because this workflow assume no merge is done on the related git branches. This could be an issue if one come to fix a stable branch and get an "outdated" git ref.
(For my own use-case, I'm using a script that merges, checks and requests build for all branches that I want to update).
@kwizart I'm trying to move my packages to just use a single master branch unless I have a reason not to. From my attempt with this with libeconf, it didn't work anything like I expected it to. :broken_heart:
libeconf
I'm okay with this keyword as an alternative to *.
*
Log in to comment on this ticket.