jupyterlab / extension-cookiecutter-ts

A cookiecutter recipe for JupyterLab extensions in Typescript
BSD 3-Clause "New" or "Revised" License
182 stars 88 forks source link

Use npm by default #219

Open fcollonval opened 2 years ago

jtpio commented 2 years ago

Curious about the motivation behind this. Or is it mostly for checking something on CI?

fcollonval commented 2 years ago

I would like at some point to start a discussion to move away from jlpm.

Motivations are:

That said, I think it could be nice to promote it for extensions. But I'm less confident, we should switch to npm in core (but maybe from jlpm to yarn).

bollwyvl commented 2 years ago

mandatory node JS dev tool

but what version? What configuration? what if it conflicts with some other version?

This was the original motivation: it was a turbulent time for js package management, and as we were reliant on having webpack running on every user's machine, a single tool, and version, we could document and rely on all supported platforms which had good reproducibility characteristics was incredibly important... and i partially think this is still the case today:

While we have been relying on, for example, npm bundle to work reliably and reproducibly... but a package-lock.json from a few years ago could not be used to reproduce anything.

Many node-related (out of memory, too many file handles, etc) issues have broken users' workflows all the time... but the particular aspect of the bundled package manager really hasn't.

new developer life

The only way i'd see us really wanting to do this is if, indeed, all of the nodejs/npm-related stuff is removed from all code paths on users' machines, and anything related to it is squarely hidden behind another installable package.

fcollonval commented 2 years ago

Thanks @bollwyvl for sharing your thought on this as you have been deeply involved in setting up the building chain.

but what version? What configuration? what if it conflicts with some other version?

Other than the webpack configuration (and version) that we are controlling, is the package manager still critical for pre-built extensions?