[Pkg-javascript-devel] [Debian-science-sagemath] Sage 7.6

Ximin Luo infinity0 at debian.org
Wed Apr 5 22:24:00 UTC 2017


+pkg-javascript-devel

Gordon Ball:
> [..]
> 
> My notes on what is needed to upgrade ipywidgets/jupyter-notebook and
> general jupyter stuff:
> 
> No new dependencies, probably uncomplicated:
> 
>  * ipykernel 4.5.2 -> 4.6.0
>  * ipython 5.1.0 -> 5.3.0
>  * ipython-genutils 0.1.0 -> 0.2.0
>  * jupyter-client 4.4.0 -> 5.0.1
>  * jupyter-core 4.2.1 -> 4.3.0
>  * jupyter-console 5.0.0 -> 5.1.0 (already in dpmt git)
>  * nbformat 4.2.0 -> 4.3.0
>  * nbconvert 4.2.0 -> 5.1.1 (already in dpmt git)
>  * traitlets 4.3.1 -> 4.3.2
>  * qtconsole 4.2.1 -> 4.3.0
>  * prompt-toolkit 1.0.9 -> 1.0.14
> 
> Complicated
> 
>  * jupyter-notebook 4.2.3 -> 5.0.0
>      + upgrade codemirror -> 5.22.2
>      + upgrade underscore -> 1.8.3 (already in debian)
>      + drop term.js
>      + add xterm.js 2.3.2
>      + add preact 7.2.0
>      + add preact-compat 0.14.4
>      + add proptypes 0.14.4
>  * ipywidgets 5.2.2 -> 6.0.0
>      + add phosphor 0.7.0
>      + new internal JS package jupyter-widgets-schema
>      + new internal JS package jupyterlab-widgets
>      + upgrade jquery -> 3.1.1 (already in debian)
>      + upgrade jquery-ui -> 1.12.1 (already in debian)
>      + add font-awesome 4.5.0 (already in debian)
>      + drop bootstrap
>      + add ajv 4.9.0
>      + add jupyterlab-services
>      + add @types-backbone 1.3.33
>      + add @types-semver 5.3.30
> 
> Further dependencies:
> 
>  * xterm.js -> @types/node, typescript 2.2.0, browserify
>  * preact -> babel, webpack, rollup, typescript 2.2.2
>  * preact-compat -> babel, webpack, rollup, typescript, preact
>  * proptypes -> babel
>  * phosphor ->
>  * ajv -> co, json-stable-stringify, browserify
>  * co -> browserify
>  * json-stable-stringify -> jsonify (in debian)
> 
> Notebook buildsystem remains the same.
> 
> The ipywidgets buildsystem is still webpack based, but has gained a
> bunch of typescript dependencies as well, which will probably make
> emulating it even more complicated. The repo has moved to
> github.com/jupyter-widgets/ipywidgets - I suspect the JS and python
> stuff will get separated into different repositories at some point which
> should make it easier to package than the current monolith. Ipywidgets
> now also generates jupyterlab widgets and depends on jupyterlab
> javascript, but this is hopefully optional until jupyterlab is packaged.
> 

Thanks, this information will be very useful. I took a very quick look a few days ago and also agree that jupyterlab widgets can probably be skipped for sage.

> Jupyter is generally moving towards typescript rather than javascript,
> which is probably in general a good thing but means that where it still
> depends on javascript libraries, we need along side them type annotation
> packages (node packages: `@types/JSLIB`, I don't think any are yet in
> debian).
> 

npm is the main pain point here rather than javascript itself. Do these typescript packages still use npm (or a derivative), or a less stupid package manager?

Moving to typescript won't solve any of this stuff, unless they also move to a better buildsystem - which would automatically fix these development practises that make it difficult to package, at very little cost to the ipywidgets developers.

X

rant for pkg-js-devel's benefit, skip if you already agree that npm is shit:

The whole concept around declaring strict-version-constraints is what causes the whole mess, as well as the fact that they don't have a well-defined concept of what a "source package" is, and mislead their users into thinking that pre-built javascript is "source code".

Together these factors encourage library writers to not pay attention to API compatibility, which raises the cost of producing a working "build product" (and therefore its perceived value), which encourages people to check their binary-blob build products into version control (as well as binary blobs of their dependencies) and at the same time discourages them from testing their programs across many different environments.

Advertising that they are the world's "biggest repository of open source software" is a fucking insult to the concept of open source, when 90% of it is pre-built binary blobs!

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git



More information about the Pkg-javascript-devel mailing list