Re: Packaging pgAdmin4

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

 



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




[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