On Sat, 2025-05-17 at 09:17 -0700, Brad Smith wrote: > Sometime ago I asked a similar question on matrix (or IRC?) Fedora > Devel and some very kind person provided the following. I cannot > recall who it was. > > My use case is simple, build Kubernetes or CRI-O using a version of > golang in updates-testing but not yet available in stable. I have used > these steps several times since F39 was a new thing. > > ``` > fedpkg request-side-tag --base-tag f39-build > koji wait-repo f39-build-side-xxxxx > koji tag f39-build-side-xxxxx golang-1.21.3-1.fc39 > koji wait-repo f39-build-side-xxxxx --build=golang-1.21.3-1.fc39 > Build your package: fedpkg build --target=f39-build-side-xxxxx > koji untag f39-build-side-xxxxx golang-1.21.3-1.fc39 > ```
If that produces a build of kubernetes or cri-o that *depends* on that golang version, and you then create an update from the side tag before golang goes stable, it's not ideal. In that case we now have a kubernetes/cri-o update that depends on the golang update, but there's no guarantee the golang update will go stable first. If the kubernetes/cri-o update goes stable first, it will suddenly become uninstallable for anyone who doesn't have updates- testing installed. If the *existing* kubernetes/cri-o package depends on the *older* golang, the situation is even worse, because now both updates have to be pushed stable at the exact same time, or kubernetes/cri-o becomes uninstallable. In the less-bad case, where the old version of kubernetes/cri-o would still work with the new version of golang, you should do one of three things: 1) include the kubernetes/cri-o build in the golang update (this needs to be co-ordinated with the golang maintainer) 2) wait for the golang update to go stable before submitting the kubernetes/cri-o update 3) submit the kubernetes/cri-o update, but disable both autopush settings (karma and time) and make sure you only push it manually after the golang update is stable In the worst case, where the old kubernetes/cri-o would not work with the new golang, you should do 1). This needs to be co-ordinated with the golang maintainer; the golang maintainer should build golang on a side tag, so you can build kubernetes/cri-o on the same side tag and create a combined update. That way we can be sure the updated packages will go stable together and no dependency issues will arise. -- Adam Williamson (he/him/his) Fedora QA Fedora Chat: @adamwill:fedora.im | Mastodon: @ad...@fosstodon.org https://www.happyassassin.net -- _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue