Installation | License | Team | Getting help |
We have articulated our vision for this project as a "Press Release from the Future". We are now pursing that vision to make it a reality. Have feedback or want to get involved? Post an issue!
This extension includes both a client-side JupyterLab extension and a server-side Jupyter notebook extension. Install these using the command line with:
pip install jupyterlab-metadata-service
jupyter labextension install jupyterlab-metadata-service
Note: This repo has not been published yet, so the commands above won't actually work, yet.
If you are running Notebook 5.2 or earlier, enable the server extension by running
jupyter serverextension enable --py --sys-prefix jupyterlab-metadata-service
The latest versions of the following browsers are currently known to work:
- Firefox
- Chrome
- Safari
To contribute to the project, please read the contributor documentation.
JupyterLab Metadata Service Extensions follows the Jupyter Community Guides.
Follow the instructions below to set up your environment for development.
For now, you must develop against the bleeding-edge JupyterLab. Let's close the master JupyterLab branch, and also this branch of this repo.
git clone https://github.com/jupyterlab/jupyterlab.git
git clone -b add_graphql_apollo https://github.com/Quansight/jupyterlab-metadata-service.git
# If you already have an environment with this name:
# conda remove --name jupyterlab-metadata-service --all
conda create -n jupyterlab-metadata-service -c conda-forge notebook
source activate jupyterlab-metadata-service
The backend server is Apollo GraphQL. We have a JupyterLab extension that will auto-start Apollo, monitor it (and restart it if needed), and also proxy requests to Apollo through JupyterLab.
cd jupyterlab-metadata-service/backend
pip install -e .
cd jupyterlab_metadata_service_server
npm install
cd ../../..
To develop against an unreleased version of JupyterLab
requires that you add this extension
as a package inside the jupyterlab
repo:
cd jupyterlab
pip install -e .
jlpm run add:sibling ../jupyterlab-metadata-service/frontend
jupyter lab --watch --dev
Now you can edit the files in the package in ./packages/jupterlab-commenting
. Saving changes should cause JupyterLab to do an incremental re-compile, and you can refresh JupyterLab in your browser to see the changes in effect.
NOTE: Running add:sibling
copies all the frontend files, so to commit any edits you make, copy the changes back to the ../jupyterlab-metadata-service/frontend
directory.
When JupyterLab officially releases version 1.0, the following will work to develop in this repo without having to clone JupyterLab master.
cd jupyterlab-metadata-service/frontend
# Install JS dependencies:
jlpm install
# Register this extension with JupyterLab in development-mode:
jupyter labextension link .
Now you can run JupyterLab in auto-reload mode, like this:
jupyter lab --watch
If you modify the code in the frontend/
folder, you'll have to rebuilt it (once rebuilt, JupyterLab will notice and do a partial re-build of itself, from the command above):
jlpm run build
If you don't want to run the above command every time you modify code, you can watch the source with the following command:
jlpm run watch
JupyterLab Metadata Service extension uses a shared copyright model that enables all contributors to maintain the copyright on their contributions. All code is licensed under the terms of the revised BSD license.
JupyterLab Metadata Service Extension is part of Project Jupyter and is developed by an open community.
Current maintainers of this project are listed in alphabetical order, with affiliation, and main areas of contribution:
- Brian Granger, Cal Poly (co-creator, strategy, vision, management, UI/UX design, architecture).
- Igor Derke, Quansight (general development, extensions)
- Ivan Ogasawara, Quansight (general development, extensions)
- Katherine Oliphant, Quansight (general development, extensions)
- Ryan Henning, Quansight (general development, management)
- Saul Shanabrook, Quansight (general development, extensions)
- Tim George, Cal Poly (UI/UX design, strategy, management, user needs analysis)
We encourage you to ask questions on the mailing list, and participate in development discussions or get live help on Gitter. Please use the issues page to provide feedback or submit a bug report.