Re: Ursa Major (modules in buildroot) enablement

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

 



On Tue, Nov 6, 2018 at 12:26 PM Stephen Gallagher <sgallagh@xxxxxxxxxx> wrote:
>
> As a hypothetical example, maybe python-sphinx has a major
> backwards-incompatible update that becomes the default in Fedora 30.
> The package you maintain will only build its docs with the older Sphinx.
> Without Ursa Major, you basically have two choices: 1) Stop building
> the docs until upstream catches up to Sphinx, or 2) Try to write a patch
> to support the new version of Sphinx. With Ursa Major, you potentially
> gain 3) BuildRequires the previous version of Sphinx for your package.

So, this statement is the core of what I don't like about modularity.
Pitching it as a means of allowing people to "keep back" even in
packages for the distribution is bad for a distribution that pushes
forward. One of the major reasons I prefer Fedora to other
distributions is that we contribute to the advancement of FOSS through
our developers and packagers. This goes to the extent of helping
upstreams port forward and leverage new versions and new
functionality.

Now, I don't hate modularity as a concept, but I have personally felt
that the design and approach to modules in Fedora is horribly
misguided. From my perspective, it seems to be pitched as a way for
Fedora to move slower, and that's not what I want from a distribution
like Fedora.

Moreover, as it stands, I don't think modularity provides any quality
of life improvements for packagers within Fedora (it adds extra steps
and makes it confusing to figure out what is maintained), and
currently is a huge impairment for packagers outside of Fedora. I've
brought up the issues I have with the "modularization" of things
within Fedora from the context of a third-party packager, and I
haven't yet seen a solution outlined with my concerns fully handled.
And as I've also pointed out privately and publicly in other
instances, the extra "foreign" metadata is difficult or impossible for
most tools today to handle. There is some hope that those issues will
be addressed, but I'm unsure if anyone cares enough to prioritize
these issues.

It's very clear that modules as they currently stand aren't designed
for Fedora. They're designed for Red Hat Enterprise Linux. And that's
not good, because we're trying to use it in Fedora.

Personally, I see the value proposition for modules as such in the
context of Fedora:
* Providing non-default, older version packages for backwards
compatibility and supporting stepped upgrade processes. Common
examples of this are ownCloud/Nextcloud, OpenShift/Kubernetes, and so
on.
* Offering alternative variants of language runtime stacks from the
system version. The tooling around modules automates the chain
building process and could actually be used to generate alternate
versions of language stacks very easily. This can be something like
having Python 2 being managed as a module that can be built on demand
for people who need it, or supporting PHP 5 when PHP 7 won't work, or
something like that.

What I am annoyed about is that there's been almost zero interest in
actually improving the quality of life of packagers who handle the
bulk of packages in Fedora, the so-called "ursine" packages (which I'm
not terribly pleased about the name...). I've outlined for a couple of
years now some improvements we could make here.

I also continue to wonder why we aren't pushing for a merger of Koji,
Koschei, and COPR to provide better workflows across the board. One of
our biggest problems is that it's _impossible_ to stage any change in
a suitably useful way and do things like install checks, media
creation, OpenQA runs, and so on. This is the critical difference
between our development process and openSUSE's, as an example.

We also seem to have some kind of fear about having extra optional
repositories for people to enable for non-default stuff, which is why
modules are wired up the way they are (modules look like repos to the
solver, and enabling and disabling them triggers that base logic).

I also feel that some of the tooling we developed for modules actually
would equally apply well for regular packages. For example, MBS
implements a giant hack for Koji so that it's actually possible to
generate a side-tag, build all the packages and their incorporated
dependencies, and then export it to be included in a module. But why
not adapt that model for everything else? Why not allow someone to
trigger a build of something, check for reverse dependencies, include
them automatically, and then build it in a side tag in the exactly
correct order (as determined by the solver)? The reverse dependencies
could get a normal rebuild spec bump and then have that committed to
dist-git (or not, depending on how we do it!), and then merge it back
into the distro after it all succeeds. The advantage of this is that
if something does fail, it can be independently handled and merged
into the side tag, and once all the builds in a tag are green, it
could auto-merge into the main distribution tag (rawhide,
updates-candidate, or whatever). And of course, building and
auto-pushing for all supported distro targets is a huge simplification
that would help a lot.

In summary, I feel like modules as a concept makes sense, but I don't
understand how the current implementation is good for Fedora as a
distribution. A lot of what we've built makes a lot of sense for
regular packages, so I don't understand why we don't do that.

-- 
真実はいつも一つ!/ Always, there's only one truth!
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[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