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