Re: Proposal for vendoring/bundling golang packages by default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hau idatzi du Fabio Valentini (decathorpe@xxxxxxxxx) erabiltzaileak
(2025 urt. 20(a), al. (21:27)):
>
> I also don't understand the argument of "bundling would let us solve
> 200 broken packages caused by Go compiler changes faster". If the
> libraries fail to compile in standalone packages, then they should
> fail to compile in any Go application that vendors them as
> dependencies too, right? So it just moves and multiplies the problem
> (into all applications that vendor this dependency).

Let me try to clarify this scenario a bit further.

Imagine a complex application like doctl, which has numerous
dependencies listed in its go.mod file. To ship an unbundled version
of doctl in Fedora, the number of required packages far exceeds the
set defined in go.mod. This is because each dependency in go.mod has
its own dependencies, which would also need to be included in Fedora.
However, if doctl uses vendored dependencies, it might not require
these additional packages, as they wouldn't be part of the bundled
application.

Here are the same details with numbers: while doctl has 122
dependencies listed in its go.mod file, Fedora requires 752 packages
to be installed to build the package of which 629 are golang-*-devel
packages.

For example, doctl's go.mod file defines 3 indirect dependencies in
the containerd modules (console, containerd, and log). However, for
Fedora, at least 16 containerd modules would need to be included
(aufs, btrfs, cgroups, cni, console, containerd, continuity, fifo,
fuse-overlayfs-snapshotter, imgcrypt, nri, runc, stargz-snapshotter,
ttrpc, typeurl, and zfs).

Additionally, in the Go 1.24 scenario where many packages break, the
issue arises only during the %check phase, not during the binary
build. Since creating a binary with bundled dependencies doesn't test
those dependencies, only the main packages would need to be fixed,
simplifying the scenario considerably.

The downside, as you mentioned, is that if two packages share a
dependency and a fix is required for both but no downstream patch is
carried, then both packages would need changes if bundled. By
contrast, in an unbundled scenario, only one package would need to be
updated.

Regards,
Mikel
-- 
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux