forums, mailing lists and other tools

Carsten Agger agger at modspil.dk
Wed Jan 31 20:19:27 UTC 2018



On 01/18/2018 10:28 AM, Daniel Pocock wrote:

> There is an issue:
> a) if the JavaScript is distributed as minified blobs and we can't
> rebuild it easily from source,
> b) if a large application makes heavy use of things like the NPM
> repository for its build process
>
> A lot of developers have given up trying to package large
> JavaScript-heavy web applications for Debian because they are incomplete
> or not really free software somewhere in the stack or the tool chain.
>
> The front-end developers end up using other repositories like NPM,
> thinking it is easier than doing something through Debian or Fedora, but
> it turns out that is just laziness, this type of thing would never
> happen if the code had been properly packaged:
>
> https://developers.slashdot.org/story/18/01/13/0149252/erroneous-spam-flag-affected-102-npm-packages
>
> https://developers.slashdot.org/story/16/03/23/0652204/how-one-dev-broke-node-and-thousands-of-projects-in-11-lines-of-javascript
>
> Conclusion: if stuff is not properly packaged in the beginning it
> becomes a minefield for support in the future.
I was thinking that this warning might in fact apply to my own 
practices. I don't really work in JavaScript, but I'm using a lot of 
Python packages in my day-to-day, and I almost never install them from 
Debian packages.

Why not?

* Versions. Often the packaged versions of Django, Plone, and a lot of 
others, are outdated. People normally don't install these things from 
Debian packages. Plone has its buildout system which pulls stuff from 
PyPI and other repositories, and for Django applications I always use 
pip against PyPI for installing.

* Non-root install. When using pip and virtualenv, everything can be 
installed locally. This also means you can fix things in the source code 
without having or using root access.

* Multiple installs - you can have multiple versions of the same package 
in non-root environments on the same host - something Django & Plone 
sites use really a lot.

So there's actually good reasons not to use Python libraries through 
Debian packages. I imagine the same is the case for JavaScript 
libraries, not least regarding the necessity of having several different 
versions coexist in the same OS install.

*On the other hand*, I do realize that if a key dependency suddenly goes 
missing on PyPI, the applications will break. But I don't think the 
correct solution for that is to use the Debian package except in very 
specific circumstances - building an in-house mirror of the dependencies 
would seem to work better. Or what do you think?

Best
Carsten



More information about the Discussion mailing list