I am sending this to the Fedora nodejs community / SIG before sending
it to fedora-devel and/or the packaging committee. I'm doing that so
we (the people who actually maintain, or try to maintain, the nodejs
packages) have a chance to talk and discuss things without too much
The current way of packaging every nodejs module/library as it's own
package has created library stagnation. It is extremely hard to
update any of these modules due to other modules depending on already
released versions. It is also very hard to add any Fedora package
that requires new nodejs libraries due to the volume of package
reviews that have to happen.
Due to problem1, and other reasons, some of our major nodejs packagers
are orphaning their nodejs packages. This is leading to many packages
being unable to install. This is starting a downward spiral of
uninstallable nodejs packages.
Keep nodejs and npm in Fedora. Possibly yarn too.
Get rid of all non-essential nodejs libraries. Those that are
essential, bundle all their build, test, and runtime nodejs libraries.
Create scripts that make it easy to bundle, and maintain, these
essential nodejs libraries.
If needed, create scripts that make it easy for non-nodejs packages to
bundle their nodejs libraries properly.
LIST OF PROBLEMS TO WORK OUT:
Problem1: Currently, all the libraries/modules are links under
<package>/node_modules/ and dnf doesn't like changing links into
Solution1: Bundled runtime libraries/modules will be in
<package>/bundled_node_modules/ and all the links in
<package>/node_modules/ will point there.
Problem2: Many of the bundled libraries are archful, meaning they need
to be compiled. What if an essential nodejs library was originally a
Solution2: All bundled nodejs library packages will be treached as
archful, meaning they will need to be built on each supported arch.
What do you, the Fedora nodejs packagers and community think of this proposal?
Does it sound ok?
If so, let's start working through all the problems, finding solutions.
If not, then let's find a different solution to our current crisis.
Thanks for your time.