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 via email to