Matthew Miller wrote:
> I hear three different main frustrations here: first, the short F27
> schedule; second, frustration with with the packagedb retirement; and
> third, modularity.

These are frustrations I also share:

> Schedule 
> ========
[snip]
> If, instead, we lengthened the schedule, adding 6 months from the F26
> release, we'd be in mid/late December, which we know from experience means
> January. With delays, maybe February pushing March. And then, we'd be in
> the exact same position for F28, debating whether to shorten that or
> instead schedule for September instead of May. That would actually be
> _more_ delay for _more_ things.

You could actually just have skipped the October-November release as you did 
during the F21 cycle, leading to a single 9-month cycle, then back to 6 
months. I think a 9-month cycle would be much more realistic than a 3-month 
cycle to fix a 3-month offset from the desired release dates.

Three 7-month cycles would also have worked (and if the first one really 
slipped as much as you think, it'd be a 9-month cycle and you'd switch back 
to 6 months right away, as in the previous paragraph).

> Pkgdb retirement 
> =================== 
>
> On the one hand, the new https://src.fedoraproject.org/ site is 
> awesome.

Is it really? The Pagure git browser is still missing as basic features as 
browsing the history of individual files or directories, something I already 
complained about when it was forced on us as a replacement for the Fedora 
Hosted Trac. Both Trac and Cgit are nice, mature Free Software projects. 
Their repository browsing abilities are great. I do not see why they needed 
to be replaced with something incomplete just because they were Not Invented 
Here and the incomplete replacement was.

> Modularity 
> ========== 
>
> Yes, there's a lot of prototyping and reworking. Some of this may fail. 
> But that's how it should be — it's really not possible to have 
> innovation without trying some unsure paths.

Going down a road that will almost certainly fail is not "how it should be".

> If you want to try other paths that help us solve some of the same
> problems, I'll support experimenting with them too.

I am both not sure that the problems you want to solve are actually 
problems, and that if they are, they can be solved in any reasonable way. 
(And yes, this implies that I do not consider the Modularity plans 
reasonable.)
 
> On your specific complaint about DNF not distinguishing between rpms
> and modules, you're definitely not alone; the Boltron feedback
> overwhelming tilted that way. See earlier thread on topic — and as I
> said in that thread, I think it makes most sense to treat modules like
> "super comps groups" (with either a superset of existing groups syntax
> and reuse of @, or simply a different syntax). In any case, this
> feedback _is_ important and _is_ listened to.

I, too, hope that this will be addressed.

What I also hope is that there will be a way (by uninstalling a plugin RPM 
or by setting some dnf.conf option) to avoid retrieving the module metadata 
entirely. (In fact, I'd hope that that'll be the default on the traditional 
Spins!)
 
> I do want to _strongly_ stress, though, that the point of modularity
> isn't to avoid parallel installability. That's a separate problem.

It is not clear to me what problems are solved by Modularity that cannot be 
solved by either parallel-installable compat packages or just making 
everything work with the latest versions as we have always done. Modularity 
just adds conflicts (that need containers to work around), inconsistent EOL 
dates (that make life harder for our users, including us ourselves), and 
more complexity for us packagers.
 
> Modularity will allowing *us* at the packaging end to separate source 
> and spec lifecycle from binary and artifact lifecycle.

That, by itself, is not a goal. It is a way to achieve an unspecified goal.

> And, it will also allow those of us working on assembling spins and more
> options — for example, we can have different streams for Atomic without
> needing to actually duplicate every package. (And we could do the same for
> KDE or whatever other artifacts would benefit from that, if we want.)

That destroys the possibility to install all Fedora packages on all Fedora 
spins, which the shared Everything repository guaranteed. With Modularity 
fully implemented, you can end up being unable to install KDE Plasma on the 
GNOME Workstation or the other way round (at least without resorting to 
containers) because the desktops depend on conflicting versions of some 
library module. How is that an improvement?
 
> And that's not even with doing arbitrary branching for individual 
> packages.

The arbitrary branching is what leads to users having to track a different 
end of life date for, in the worst case, every single package. If Modularity 
is a success, users will have installed dozens of modules. If each of them 
comes with a different branch EOL, how does the user know when it's time to 
upgrade to a supported branch? (Or else, if you do the upgrade 
automatically, how do you ensure it does not break things? We have releases 
rather than a rolling release for a reason!)

> If everything works out successfully with _that_, it will eventually make
> _less_ work for packagers. Right now, I have a package which I maintain
> for F25, F26, Rawhide, EPEL6, and EPEL7. There's no difference in any of
> the versions and no real reason to keep them separated;

In that case, you can just merge master to all branches and keep them fast-
forwardable, where is the issue?

> in the future, I will be able to have just one branch that goes to all of
> them.

So it would not even be rebuilt? That's less flexible than the current 
approach that can deal with soname bumps. With your approach, in the case of 
an soname bump, you end up requiring the wrong version of the library module 
on at least one Fedora release and thus causing a module version conflict.

> Or I could have a "stable" and "experimental" branch that people could
> choose from regardless of the base.

That, too, only works well when the libraries did not change, for the same 
reason.

> This can benefit *way* more packages than simply leaf desktop
> applications.

If you do this arbitrary branching to a non-leaf package, you cause version 
conflicts for all the packages depending on the non-leaf package (which 
exist by definition, or it would be a leaf). Then, matching versions of all 
those dependent packages are needed. And the container workaround is a lot 
less useful for non-leaf packages.

> Will we get there? I don't know! It's new and different and definitely
> scary.

It is scary indeed. Modularity is just throwing us back to the "RPM hell" 
times, and the only proposed solution is to containerize everything, or at 
least everything that conflicts, which is a very inefficient and wasteful 
solution to a problem that did not exist before Modularity.

> But... it's also worth trying.

Is it really? Have we not learned enough from past experiences?

Allowing arbitrary versions of arbitrary packages, without ensuring that 
they match globally, does not scale. You unavoidably run into conflicts. It 
has been experienced not only by us ("RPM hell"), but also on other 
operating systems (e.g., "DLL hell").

Grouping the packages into self-consistent modules does not solve the 
problem. It only means that you have larger "packages" (the modules) 
consisting of multiple actual packages. But you still cannot allow combining 
arbitrary versions of them, as the Modularity plans are all about, without 
running into conflicts.

The only case where being self-consistent implies being globally consistent 
is if you have only one Everything module.

> In the meantime, if you're a packager who doesn't care about any of 
> this, until modularity can demonstrate real success and advantages, you 
> can _continue_ to not care. Modules are going to be drawn from f27 (and 
> I expect f28) streams which will act as always, and even if Fedora 
> Modular Server is a success, I expect we'll also provide a minimal 
> install from which a traditional Fedora-based server can be built for a 
> good long time. 

I sure hope so. But I fear that we non-module users will be marginalized 
more and more. I also fear that the new branching scheme will either become 
mandatory, or there will be pressure to port some packages to it because of 
new-style-branched packages depending on them. And I am very worried about 
the implications of arbitrary branching on update availability (disparate 
EOL dates that are impossible for users to track).

        Kevin Kofler
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org

Reply via email to