minrk/jupyter-keepalive

Release to PyPI and package built JS artifact

consideRatio opened this issue · 4 comments

It would be great to have this released to PyPI with a pre-built and packaged labextension so that users won't need to use NodeJS themselves to install this.

I know work has been done recently in https://github.com/jupyterhub/jupyter-server-proxy that may be relevant to inspect to learn how to do this.

minrk commented

@consideRatio published 0.0.1dev0, can you test that with pip install --pre jupyter-keepalive? If that works, I'll make a 0.1 release.

  • @minrk I've not used this myself yet actually, so I'm not sure what to expect (opened #6 about this).

In practice, I note that after installing this, it is not registered as a jupyter serverextension or jupyter labextension, so when using the list subcommand I see no mention of jupyter-keepalive. But, it should be mentioned there - right?

Do I need to manually install the serverextension and/or labextension for now?

I think the shared-data is relevant, and for comparison, here is jupyter-server-proxy's pyproject.toml's shared-data:
https://github.com/jupyterhub/jupyter-server-proxy/blob/5ff4c77245a4e92d4c7bb1e7651b65f7a898312b/pyproject.toml#L76-L79

And, this projects:

[tool.hatch.build.targets.wheel.shared-data]
"jupyter-config" = "etc/jupyter/jupyter_server_config.d"

The config file is provided properly.

(base) ➜  jupyter_server_config.d cat jupyter_keepalive.json 
{
  "ServerApp": {
    "jpserver_extensions": {
      "jupyter_keepalive": true
    }
  }
}
(base) ➜  jupyter_server_config.d cat jupyter-server-proxy-jupyterserverextension.json 
{
  "ServerApp": {
    "jpserver_extensions": {
      "jupyter_server_proxy": true
    }
  }
}

Ah, I learned about jupyter server extension list now. There, jupyter_keepalive shows up, but using jupyter serverextension list it doesn't, and similarly with jupyter lab extension list compared to jupyter labextension list.

Okay, so things may work!! I don't know how to verify it though as I'm not understanding how to use this package yet - which relates to #6.