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