Re: Fedora 34 Change: Stop Shipping Individual Nodejs Library Packages (Self-Contained)

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

 



On Thu, Dec 10, 2020 at 5:39 AM Dominik 'Rathann' Mierzejewski
<dominik@xxxxxxxxxxxxxx> wrote:
>
> On Wednesday, 09 December 2020 at 21:45, Troy Dawson wrote:
> > On Wed, Dec 9, 2020 at 11:52 AM James Cassell
> > <fedoraproject@xxxxxxxxxxxxx> wrote:
> > > On Wed, Dec 9, 2020, at 1:44 PM, Ben Cotton wrote:
> > > > https://fedoraproject.org/wiki/Changes/NodejsLibrariesBundleByDefault
> [...]
> > > Is there really no better solution?
> >
> > Not that we've found.  This isn't an off the cuff proposal, it was
> > months of discussion on mailling lists and off.
>
> You say months of discussion, but in reality it's no more than 50
> messages between half a dozen people stretching several months, indeed.
> I think you should have started the discussion on devel instead of
> confining it to nodejs list.
>
> > To be honest, this is really years in the making.  macros and scripts
> > were tried for years, making them better and better in hopes that it
> > would ease the problem.  When things finally started falling apart, we
> > really could say we'd tried all we could, but nothing was sustainable.
>
> I think it boils down to not having enough packagers, as usual.

Hi Dominik,

It might be the case that with significantly more packagers involved,
and also more scripts and automation, we could do a better job
packaging nodejs libraries.

I am also disappointed that we're unable to package nodejs
applications the "right" way from a distribution's point of view.
However, with dozens if not hundreds of dependencies per package, and
potentially conflicting requirements for versions of libraries, it is
extremely difficult to keep nodejs packages up to date and in sync.

For many years now, most of the nodejs library packages in Fedora have
been effectively unmaintained anyway-- they were stuck on older
versions, because updates would involve creating dozens, if not
hundreds, of new packages and also require updating dozens of *other*
packages. And there is no guarantee that simply updating to the latest
version will work for all dependent packages anyway, so it was
generally not done. (My experience has been that it generally *does*
work despite what the npm metadata claims-- but it doesn't always, and
even when it does, our macros use the npm metadata to create versioned
Requires tags and so packages will need to be updated regardless).

In some sense, nodejs is not that different from other language
ecosystems with their own packaging frameworks, but it's definitely an
extreme outlier in terms of the size and complexity of the dependency
graphs. Further-- unlike some other language ecosystems, I think--
there's frankly little value in Fedora redistributing most nodejs
modules as separate packages. Most of the packages are noarch and
simply install a handful of javascript files into a directory without
actually doing anything to "build" the package, so it's not like we
can enforce a consistent set of build flags or anything like that.

So, from my point of view, the only other thing distribution packaging
might offer at that point is the ability to ship a series of libraries
with a coherent set of versions. But that's almost impossible with
regards to nodejs anyway-- applications will have conflicting
requirements and developers are not going to want to use the versions
of the libraries that we ship.

So what's the point? At some point, it's simply not worth going
through the process to create and maintain hundreds of these packages
in order to ship a single application. It's a huge time sink and
trying to do it has definitely made me, at least, a less motivated and
engaged Fedora contributor in general.

I will also point out that, earlier this year, a large chunk of nodejs
packages were orphaned and no one was particularly interested in
stepping up to take them over. I ended up taking some of them with the
hopes of keeping a few pieces of software alive in the short term, but
then another large chunk of nodejs packages were orphaned, no one took
them, and, frankly, I gave up. If the choices are "we don't package
nodejs software at all" and "we package nodejs software by bundling
all the libraries"... I don't like it either, but the latter option is
better than the former.

Ben Rosser
_______________________________________________
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