Bug#934258: Experimentations on packaging jupyterlab
Hi,
I tried my hand at experimental packaging for jupyterlab.
For the Python part, it lacks nbclassic, it's ITP bug #1000667, this
will be done in no time.
The JavaScript part is another story entirely. I made experiments
compiling by hand a few of the packages in packages/.
Here is how you can get as far as me: you need a trick and a patch,
both at the end of this mail. [And of course the relevant node-*
packages!]
Apply the trick in the coreutils, services and statedb directories.
That will allow you to compile, in that order: coreutils, statedb,
nbformat, settingregistry, observables, services, translation,
rendermime-interfaces, mathjax2, metapackage and pdf-extension.
For the rest, ui-components is as far as I can tell the main blocker ;
it wants typestyle, which in turn wants csstype and freestyle. Perhaps
those are easy, but I don't know yet.
Cheers,
J.Puydt
PS:
The trick is to do this in the relevant packages/ directory:
mkdir -p node_modules/@types
ln -s /usr/share/nodejs/@types/node node_modules/@types/
The patch is:
diff --git a/tsconfigbase.json b/tsconfigbase.json
index b9aea77..de6fd2a 100644
--- a/tsconfigbase.json
+++ b/tsconfigbase.json
@@ -17,6 +17,36 @@
"sourceMap": true,
"strictNullChecks": true,
"target": "es2017",
- "types": []
+ "types": [],
+ "paths": {
+ "@jupyterlab/coreutils": ["./packages/coreutils"],
+ "@jupyterlab/nbformat": ["./packages/nbformat"],
+ "@jupyterlab/observables": ["./packages/observables"],
+ "@jupyterlab/rendermime-interfaces": ["./packages/rendermime-
interfaces"],
+ "@jupyterlab/services": ["./packages/services"],
+ "@jupyterlab/settingregistry": ["./packages/settingregistry"],
+ "@jupyterlab/statedb": ["./packages/statedb"],
+ "@jupyterlab/translation": ["./packages/translation"],
+ "@lumino/algorithm": ["/usr/share/nodejs/@lumino/algorithm"],
+ "@lumino/commands": ["/usr/share/nodejs/@lumino/commands"],
+ "@lumino/coreutils": ["/usr/share/nodejs/@lumino/coreutils"],
+ "@lumino/datagrid": ["/usr/share/nodejs/@lumino/datagrid"],
+ "@lumino/disposable": ["/usr/share/nodejs/@lumino/disposable"],
+ "@lumino/domutils": ["/usr/share/nodejs/@lumino/domutils"],
+ "@lumino/dragdrop": ["/usr/share/nodejs/@lumino/dragdrop"],
+ "@lumino/messaging": ["/usr/share/nodejs/@lumino/messaging"],
+ "@lumino/polling": ["/usr/share/nodejs/@lumino/polling"],
+ "@lumino/properties": ["/usr/share/nodejs/@lumino/properties"],
+ "@lumino/signaling": ["/usr/share/nodejs/@lumino/signaling"],
+ "@lumino/virtualdom": ["/usr/share/nodejs/@lumino/virtualdom"],
+ "@lumino/widgets": ["/usr/share/nodejs/@lumino/widgets"],
+ "@types/node": ["/usr/share/nodejs/@types/node"],
+ "ajv": ["/usr/share/nodejs/ajv"],
+ "json5": ["/usr/share/nodejs/json5"],
+ "minimist": ["/usr/share/nodejs/minimist"],
+ "moment": ["/usr/share/nodejs/moment"],
+ "path": ["/usr/share/nodejs/@types/node"],
+ "url-parse": ["/usr/share/nodejs/url-parse"]
+ }
}
}
Cheers,
J.Puydt
Reply to: