I haven’t looked at pgAdmin4, but I’m the current maintainer of
nodejs-svgo and several other Fedora packages that use the new NodeJS
packaging guidelines. I’m not the original packager for nodejs-svgo, and
I wasn’t the first to convert it to the new NodeJS guidelines. I welcome
further community discussion on this topic.
The current NodeJS guidelines seem to be intended to provide a clear and
relatively straightforward process for bundling NodeJS dependencies
using packages from NPM.
They don’t (explicitly) ask packagers to:
- audit possibly hundreds of recursive production and dev dependencies
to see if any of their contents are generated, bundled, or transpiled
- figure out if the affected files are actually needed and either
(1) strip them, or (2) add additional source archives and somehow
build the affected dependencies from scratch as part of the RPM build,
then repeat the process recursively for all the new dev dependencies
required to do so
- repeat the whole process every time the package is updated
It seems like if this were the typical case, it would have deserved a
mention in the NodeJS guidelines.
I understand your position that this is what would be required for
bundled dependencies in the general case. On the other hand, if this is
truly the standard that is intended to apply to NodeJS dependency
bundles, then I think it’s not an exaggeration or an overreaction to say
that the new NodeJS packaging guidelines are a mistake: NodeJS packaging
would be at least as unworkable as it was under the old guidelines that
required unbundling everything, and nearly every package using NodeJS
would need to be retired, since maintaining one package would be nearly
as much effort as maintaining separate packages for its entire
dependency tree.
Consider, too, the example spec file[1] in the NodeJS guidelines, which
would package “tape”. You can generate the prod and dev bundles with
“nodejs-packaging-bundler tape 5.1.1”, unpack them, and take a look:
even the prod tarball contains a bundled browser build
“object.assign/dist/browser.js”, and the dev bundle contains 28
directories named “dist”. (The prod bundle is ~2k files and the dev
bundle is ~12k files including ~800 package.json’s.)
Surely the example spec file is meant to be compliant with the
guidelines it illustrates?
– Ben Beasley
[1]
https://docs.fedoraproject.org/en-US/packaging-guidelines/Node.js/#_example_spec
On 12/9/21 11:31, Vitaly Zaitsev via devel wrote:
On 09/12/2021 16:56, Sandro Mani wrote:
This does not appear to be accurate for nodejs packages - take i.e.
node-svgo, which compliant with the guidelines bundles node_modules
dir in svgo-2.8.0-nm-dev.tgz resp svgo-2.8.0-nm-prod.tgz.
You can vendor only sources. No prebuilt assets are allowed.
NW.js isn't used in this package.
https://github.com/postgres/pgadmin4/blob/master/pkg/linux/build-functions.sh#L130-L136
https://github.com/postgres/pgadmin4/blob/master/runtime/yarn.lock#L1011-L1024
https://nwjs.io/blog/v0.59.0/
_______________________________________________
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
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure