[Pkg-javascript-devel] Javascript team policy and rejection of node-three binary package

Pirate Praveen praveen at onenetbeyond.org
Fri Mar 9 05:49:55 UTC 2018


On ചൊവ്വ 06 മാർച്ച് 2018 07:42 വൈകു, Ian Jackson wrote:
> Pirate Praveen writes ("Javascript team policy and rejection of node-three binary package"):
>> 1. Node.js has standard locations for discovering installed packages
>> which is different from browser targeted javascript libraries.
>>
>> Node.js expects pure js modules to be installed at /usr/lib/nodejs but
>> javascript libraries are installed at /usr/share/javascript
> 
> This is not an argument in favour of separate packages AFAICT ?

They are in two different directories because they target two different
APIs. Most of the time, files installed at /usr/lib/nodejs needs
browserification (webpacking/module bundling) to be able to be installed
at /usr/share/javascript. Though there are now formats like UMD
(Universal Module) which allows the code to be run in both environments.
I think in most cases where the software supports both environments, umd
modules are used, so it would be fine to provide a single binary
package. I just explained why these two separate targets exist.

>> 2. Dependency on nodejs is required only during build or when other
>> Node.js modules depend on it. a browser targeted library does not need
>> to depend on nodejs package.
> 
> This could be solved by dropping the nodejs dependency from all the
> nodejs module packages and requiring top-level applications to depend
> on nodejs.

I see two problems with that approach. 1. It makes these modules
installable but unuseable in architectures where nodejs itself is not
available. 2. We won't be able to specify a minimum version of nodejs
for these modules.

For example, node-regexpu-core required nodejs >= 6 and this prevented
its testing migration for a long time because testing only had nodejs 4
for a long time.

I think separate binary should be allowed at least in the second case.

>> If you take example of node-handlebars source package, libjs-handlebars
>> is targeted at browsers and does not need to declare a dependency on
>> nodejs. But handlebars package need nodejs to run. If there is only a
>> single binary package, nodejs will get installed unnecessarily.
> 
> Does handlebars contain anything that is useful to run directly ?

handlebars is templating system widely used, not only in nodejs. It has
binding for different languages (like ruby-handlebars-assets) and also a
command line interface. The command line can be used for compiling
handlebars templates.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-javascript-devel/attachments/20180309/8c3b40b6/attachment.sig>


More information about the Pkg-javascript-devel mailing list