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

Reply via email to