Re: Modularity and all the things

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

 



Igor Gnatenko wrote:

> On Wed, Oct 23, 2019 at 2:52 PM Petr Šabata <contyk@xxxxxxxxxx> wrote:
>> While these issues are being resolved, we are considering temporarily
>> disallowing default streams in Fedora. I don’t want to abandon the
>> idea completely, as doing so reduces the motivation to actually build
>> modules and reap the benefits they might provide.
> 
> This basically makes modularity not useful for many things:
> 
> 1. People will have to have different workflows between "default"
> version (standard workflow, as we have today) and "modular" version.
> Also that means, on the distribution upgrade maintainers will have to
> do many things to remove modular stream, add old one and upgrade
> non-modular version. This is also not only about maintainers, but end
> users too:
> 
> FXX: fish 3.x is non-modular, stream 4.x exists
> FXX+1: fish 4.x is non-modular, stream 3.x exists
> 
> * If user wants to stay on 3.x, he needs to enable stream explicitly
> *after* upgrade and then downgrade the package (which is actually
> unsupported).
> * If user wants to stay on 4.x, he needs to enable stream explicitly
> during FXX (which is totally fine), but after upgrade he has to
> explicitly disable it.

I think the right approach would just be to have both fish 3.x and 4.x as 
module streams for all releases, independently of what they ship:

> Obviously you can have 3.x stream for FXX and 4.x for FXX+1, but that
> means:
> 
> * Maintainer has to maintain that version *twice* (modular and
> non-modular version)

It should just be a matter of git merge (usually a fast forward) and fedpkg 
build.

> * Nobody can guarantee that those will be compatible

If they are built from the same specfile and against the same libraries (the 
distro defaults, not other modules, but that would be the default if you do 
not specificially specify otherwise in your module metadata), why would they 
not?

But of course, there is no *guarantee* that a module stream is compatible 
with the default, non-modular version. That is why they are alternate 
streams to begin with.

> 2. In Rust we use modularity to build bunch of packages, filter
> buildroot-only packages and ship only one user-facing RPM. If we
> remove default stream, people won't be ever able to do `dnf install
> ripgrep'. This is worst UX we can provide.

This means that the packaging guidelines for Rust need to be improved. If 
you need a build-time dependency to build the package, it needs to be 
shipped, so that users can reproduce the build and so that they can compile 
other Rust software.

> I think problems with modularity is not about packager experience or
> some missing features (e.g. I'm waiting for some features for 1+
> years, but that's not crucial). The problem is that we don't have
> well-defined *user* experience.
> 
> Do you think you will be able to come up with some exhaustive
> documentation how installation/upgrades/downgrades/switches/whatnot
> should look like in modularity? I would imagine you need at least 70
> "test-cases" for simple things.

That part, I mostly agree with. I think the packager experience is also 
lacking and that this cannot be neglected either, but the worst is indeed 
the end-user experience. (The promise that users would not notice the 
default streams at all just does not work out. The difference shows in the 
form of upgrade path issues, differences in handling retired packages (due 
to the possible hard dependency on a distro/platform version), performance 
regressions, etc.)

> After last few years with modularity, I don't think it is improving
> but it definitely causes some problems.
> 
> While I would like to achieve goals you stated in the beginning, I
> don't think we are ready to introduce modularity to our users and
> packagers yet. I would like to see it getting back to whiteboard,
> together with our community define behaviors and implement it outside
> of our main infrastructure. Give it feedback for 1-2 releases and if
> it makes sense for people here, get it in here.
> Yes, that means that people who enjoy modularity will have to start
> maintaining non-modular packages again and experiment with modularity
> somewhere else but I don't think it is bad iddea.

That is actually a more radical change than disallowing default streams. It 
would basically disallow default streams too, or allow them only in a
non-default repository (which means that you still have to maintain the
non-modular version).

I would personally be OK with either approach (just disallowing default 
streams or reverting/externalizing Modularity entirely), I am fine with 
everything that makes modules fully optional again, but I guess the former 
would be easier to get consensus on and implement.

        Kevin Kofler
_______________________________________________
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




[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