diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..515f3372 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,41 @@ +# Build releases and (on tags) publish to PyPI +name: Release + +# always build releases (to make sure wheel-building works) +# but only publish to PyPI on tags +on: + push: + pull_request: + +jobs: + build-release: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: "3.10" + + - name: install build package + run: | + pip install --upgrade pip + pip install build + pip freeze + + - name: build release + run: | + python -m build --sdist --wheel . + ls -l dist + + - uses: actions/upload-artifact@v3 + with: + name: jupyter-${{ github.sha }} + path: "dist/*" + if-no-files-found: error + + - name: publish to pypi + uses: pypa/gh-action-pypi-publish@v1.5.1 + if: startsWith(github.ref, 'refs/tags/') + with: + user: __token__ + password: ${{ secrets.pypi_password }} diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..c5e99e38 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,17 @@ +version: 2 + +# Set the OS, Python version and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.11" + apt_packages: + - graphviz + +# Build documentation in the "docs/" directory with Sphinx +sphinx: + configuration: docs/source/conf.py + +python: + install: + - requirements: docs/doc-requirements.txt diff --git a/README.es-ES.md b/README.es-ES.md index c5c4d390..173f7a53 100644 --- a/README.es-ES.md +++ b/README.es-ES.md @@ -1,6 +1,6 @@ # Jupyter -*Leer en otros idiomas: [English](README.md), [Español](README.es-ES.md), [Português](README.pt-BR.md)* +*Leer en otros idiomas: [English](README.md), [Español](README.es-ES.md), [Português](README.pt-BR.md), [Français](README.fr-FR.md)* Meta paquete de Jupyter para su instalación y documentación. diff --git a/README.fr-FR.md b/README.fr-FR.md new file mode 100644 index 00000000..33a3ad0d --- /dev/null +++ b/README.fr-FR.md @@ -0,0 +1,31 @@ +# Jupyter + +*Lire ceci dans d'autres langues: [English](README.md), [Español](README.es-ES.md), [Português](README.pt-BR.md)* + +Jupyter metapackage pour installation et docs. + +## Faire tourner les docs localement +D'abord naviguer dans le répertoire `/docs` et créer un environment `conda` : + +```bash +conda env create -f environment.yml +``` + +Activer l'environment: + +```bash +source activate jupyter_docs +``` + +Construire les docs: + +```bash +make clean +make html +``` + +Les docs seront construit dans `build/html`. Ils peuvent être vus dans `build/html/index.html` ou en démarrant le serveur HTTP puis en naviguant sur `0.0.0.0:8000` dans votre navigateur web. +```bash +python3 -m http.server +``` + diff --git a/README.md b/README.md index 639a5337..f5e1fd78 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Jupyter -*Read this in other languages: [English](README.md), [Español](README.es-ES.md), [Português](README.pt-BR.md)* +*Read this in other languages: [English](README.md), [Español](README.es-ES.md), [Português](README.pt-BR.md), [Français](README.fr-FR.md)* -Jupyter metapackage for installation and docs. +Jupyter metapackage for installation and documents ## Documentation structure @@ -13,16 +13,16 @@ It is written in a combination of [reStructuredText](https://docutils.sourceforg ## Build the documentation locally -There are a few ways to build the documentation, see below for instructions: +There are a few ways to build the documentation; see below for instructions: -### Build the documentation automaticlaly with `nox` +### Build the documentation automatically with `nox` -The easiest way to build the documentation locally is by using the [`nox` command line tool](https://nox.thea.codes/). This tool makes it easy to automate commands in a repository, and we have included a `docs` command to quickly install the dependencies and build the the documentation. +The easiest way to build the documentation locally is by using the [`nox` command line tool](https://nox.thea.codes/). This tool makes it easy to automate commands in a repository, and we have included a `docs` command to quickly install the dependencies and build the documentation. To build and preview the site locally, follow these steps: 1. **Clone this repository**. - + ```console $ git clone https://github.com/jupyter/jupyter $ cd jupyter @@ -33,7 +33,7 @@ To build and preview the site locally, follow these steps: $ pip install nox ``` 3. **Run the `docs` command** - + ```console $ nox -s docs ``` @@ -52,7 +52,7 @@ To start this live server, use the following `nox` command: $ nox -s docs-live ``` -When the build is finished, go to the URL that is displayed. It should show a live preview of your doucmentation. +When the build is finished, go to the URL that is displayed. It should show a live preview of your documentation. To stop serving the website, press **`Ctrl`**-`C` in your terminal @@ -65,19 +65,19 @@ First, install [the `miniconda` Python distribution](https://conda.io/miniconda. Next, navigate to the `/docs` directory and create a `conda` environment: ```bash -conda env create -f environment.yml -``` +conda env create -f environment.yml +``` Activate the environment: ```bash -source activate jupyter_docs +source activate jupyter_docs ``` **Build the docs** using Sphinx with the following commands: ```bash -make clean +make clean make html ``` @@ -86,3 +86,22 @@ The docs will be built in `build/html`. They can be viewed by opening `build/htm ```bash python3 -m http.server ``` + +## Releasing the jupyter metapackage + +Anyone with push access to this repo can make a release +of the Jupyter metapackage (this happens very rarely). +We use [tbump][] to publish releases. + +tbump updates version numbers and publishes the `git tag` of the version. +[Our GitHub Actions](https://github.com/jupyter/jupyter/actions) +then build the releases and publish them to PyPI. + +The steps involved: + +1. Install tbump: `pip install tbump` +2. Tag and publish the release `tbump $NEW_VERSION`. + +That's it! + +[tbump]: https://github.com/your-tools/tbump diff --git a/README.pt-BR.md b/README.pt-BR.md index 8f34385d..f03503b3 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -1,6 +1,6 @@ # Jupyter -*Ler em outros idiomas: [English](README.md), [Español](README.es-ES.md), [Português](README.pt-BR.md)* +*Ler em outros idiomas: [English](README.md), [Español](README.es-ES.md), [Português](README.pt-BR.md), [Français](README.fr-FR.md)* Metapacote de Jupyter para instalação e documentação. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..86c88c32 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,10 @@ +# Security Policy + +## Reporting a Vulnerability + +All IPython and Jupyter security are handled via security@ipython.org. +You can find more information on the Jupyter website. https://jupyter.org/security + +## Tidelift + +You can report security concerns for IPython via the [Tidelift platform](https://tidelift.com/security). diff --git a/docs/environment.yml b/docs/environment.yml index 254e15ce..77190120 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -1,5 +1,5 @@ name: jupyter_docs dependencies: - - python=3.7 + - python=3.10 - pip: - -r doc-requirements.txt diff --git a/docs/source/_static/_images/jupyter_software_diagram_alpha.png b/docs/source/_static/_images/jupyter_software_diagram_alpha.png new file mode 100644 index 00000000..a99a98fa Binary files /dev/null and b/docs/source/_static/_images/jupyter_software_diagram_alpha.png differ diff --git a/docs/source/_static/_images/jupytercad-screenshot.jpg b/docs/source/_static/_images/jupytercad-screenshot.jpg new file mode 100644 index 00000000..58f2c4e2 Binary files /dev/null and b/docs/source/_static/_images/jupytercad-screenshot.jpg differ diff --git a/docs/source/_static/_images/jupyterlab.png b/docs/source/_static/_images/jupyterlab.png new file mode 100644 index 00000000..20a34cd2 Binary files /dev/null and b/docs/source/_static/_images/jupyterlab.png differ diff --git a/docs/source/_static/_images/notebook_insulin_lab_small.png b/docs/source/_static/_images/notebook_insulin_lab_small.png new file mode 100644 index 00000000..6eb845d2 Binary files /dev/null and b/docs/source/_static/_images/notebook_insulin_lab_small.png differ diff --git a/docs/source/_static/_images/repos_map.png b/docs/source/_static/_images/repos_map.png deleted file mode 100644 index 4022a584..00000000 Binary files a/docs/source/_static/_images/repos_map.png and /dev/null differ diff --git a/docs/source/_static/_images/repos_map.svg b/docs/source/_static/_images/repos_map.svg deleted file mode 100644 index f8a8ede8..00000000 --- a/docs/source/_static/_images/repos_map.svg +++ /dev/null @@ -1,1259 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - ipython - - - - nbformat - - - - traitlets - - - - jupyter_client - - - - notebook - - - - jupyter_core - - - - jupyter_console - - - - qtconsole - - - - ipywidgets - - - - nbgrader - - - - jupyterhub - - - - tmpnb - - - - ipykernel - - - - - - - - - - - - - - - - Everythingdepends on: - Config system andwidget base layer - Python execution,magics, andipython terminal interface Kernel communication machinery - - - jupyter - - - jupyter command, config file handling and filesystem locations Messaging ipynb file loading, saving, format version migration and trust Jupyter terminal application Jupyter Qtconsole application Jupyter notebook application Metapackage and overview docs Notebooks for multiple users with logins Notebooks for multiple users with no logins Notebooks as assignments - creating and grading Interactive widgets - nbconvert - - - - - - - - Convert notebook files to other formats - - - - - nbviewer - - - HTML views of notebooks on the web Kernel - API - Applications - Servers - - diff --git a/docs/source/community/community-call-notes/2019-may.md b/docs/source/community/community-call-notes/2019-may.md index 05bf1af8..dbebb423 100644 --- a/docs/source/community/community-call-notes/2019-may.md +++ b/docs/source/community/community-call-notes/2019-may.md @@ -55,7 +55,7 @@ Add your potential agenda item here **24 hours before** the meeting at the lates * 6.0 release of notebook? * post jupyterlab 1.0? * Qt(5.6)-based PDF output from JupyterLab (0.35) - Quick demo of using QtWebEngine to load a notebook in lab and make a PDF. $_{n+1}$th time's the charm! [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/deathbeds/nbconvert-pdfqt/master?urlpath=lab%2Ftree%2Fnotebooks%2Findex.ipynb) | [issue](https://github.com/jupyter/nbconvert/issues/1031) | [repo](https://github.com/deathbeds/nbconvert-pdfqt) | [name=Nick] + Quick demo of using QtWebEngine to load a notebook in lab and make a PDF. $_{n+1}$th time's the charm! [![Launch Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/deathbeds/nbconvert-pdfqt/master?urlpath=lab%2Ftree%2Fnotebooks%2Findex.ipynb) | [issue](https://github.com/jupyter/nbconvert/issues/1031) | [repo](https://github.com/deathbeds/nbconvert-pdfqt) | [name=Nick] ## Attendees diff --git a/docs/source/community/community-call-notes/2020-december.md b/docs/source/community/community-call-notes/2020-december.md index fb7b1f3d..a4dac670 100644 --- a/docs/source/community/community-call-notes/2020-december.md +++ b/docs/source/community/community-call-notes/2020-december.md @@ -34,7 +34,7 @@ This is a place to make short announcements (without a need for discussion). > Add agenda items here **before** the meeting. We will reorganize the agenda so that it fits in the 60m meeting slot. * **WXYZDVCS** Work-in-progress report on [`wxyz.dvcs`](https://github.com/deathbeds/wxyz), a bridge from Jupyter Widgets to distributed version control - _Nick_ - * _Hopefully_ released this week 🤞, [![][binder]](https://mybinder.org/v2/gh/deathbeds/wxyz/master?urlpath=lab/tree/src/py/wxyz_notebooks/src/wxyz/notebooks/index.ipynb) works though! + * _Hopefully_ released this week 🤞, [![Launch Binder]](https://mybinder.org/v2/gh/deathbeds/wxyz/master?urlpath=lab/tree/src/py/wxyz_notebooks/src/wxyz/notebooks/index.ipynb) works though! * Pierre's notebooks for teaching Python and data science * [JupyterLab Classic](https://github.com/jtpio/jupyterlab-classic) - *Jeremy* diff --git a/docs/source/community/community-call-notes/2020-november.md b/docs/source/community/community-call-notes/2020-november.md index 92f00cfd..a0273217 100644 --- a/docs/source/community/community-call-notes/2020-november.md +++ b/docs/source/community/community-call-notes/2020-november.md @@ -28,7 +28,7 @@ This is a place to make short announcements (without a need for discussion). Add agenda items here **before** the meeting. We will reorganize the agenda so that it fits in the 60m meeting slot. -* 🦌 [IPyElk 0.2.0](https://github.com/jupyrdf/ipyelk) [![binder-badge](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyrdf/ipyelk/42db3e3?urlpath=lab%2Ftree%2Fexamples%2F_index.ipynb) +* 🦌 [IPyElk 0.2.0](https://github.com/jupyrdf/ipyelk) [![Launch Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyrdf/ipyelk/42db3e3?urlpath=lab%2Ftree%2Fexamples%2F_index.ipynb) * > Jupyter Widgets for interactive graphs _at scale_ powered by the [Eclipse Layout Kernel (ELK)](https://github.com/kieler/elkjs), [sprotty](https://github.com/eclipse/sprotty), [networkx](https://networkx.github.io). * [dgaf](https://github.com/deathbeds/dgaf) (deathbeds generalized automation framework) diff --git a/docs/source/community/community-call-notes/2021-april.md b/docs/source/community/community-call-notes/2021-april.md index 879c6c1b..3c0b775d 100644 --- a/docs/source/community/community-call-notes/2021-april.md +++ b/docs/source/community/community-call-notes/2021-april.md @@ -33,7 +33,7 @@ For more discussion on the format of these calls, see the thread [here](https:// - **Gonzalo** Internationalization workflow for extension developers - Some feedback... :man-facepalming: - - ![Text asking why there is a delay for publishing the language packs needed for internationalization](https://i.imgur.com/mho6Ka9.png) + - "As I see, there is a delay with the creation and publishing of language packs. We use Jupyter Lab as a base for one of our products and we are interested in using language lacks in it (especially Chinese and Japanese. What is the reason for the delay and is it possible to help the project somehow? We are interested in contributing to the Jupyter Lab project in many domains, for example, sofrware development, testing and translation." - Releasing language packages :world_map::card_file_box: - [Current packages and state](https://crowdin.com/project/jupyterlab) (showing first 10) @@ -52,7 +52,7 @@ For more discussion on the format of these calls, see the thread [here](https:// - **Nbterm** - [Blog: Jupyter Notebooks in the terminal](https://blog.jupyter.org/nbterm-jupyter-notebooks-in-the-terminal-6a2b55d08b70) - [Github Repository](https://github.com/davidbrochart/nbterm) - ![Notebook cell input and outputs represented in the terminal](https://i.imgur.com/kzNyCno.png) + ![Notebook cell input and outputs represented in the terminal. The terminal has a black background and syntax coloring. Line numbers appear to the left of each line as "In 1", "In 2" etc. Inputs appear as text within a grey bounding box. Each input line's output appears as grey text below the box.](https://i.imgur.com/kzNyCno.png) ## Other Links Shared diff --git a/docs/source/community/community-call-notes/2021-november.md b/docs/source/community/community-call-notes/2021-november.md index cd285eeb..9478b126 100644 --- a/docs/source/community/community-call-notes/2021-november.md +++ b/docs/source/community/community-call-notes/2021-november.md @@ -1,6 +1,6 @@ # November 30, 2021 -**Date:** Novermber 30, 2021, at 8am Pacific (your [timezone](https://arewemeetingyet.com/Los%20Angeles/2021-11-30/8:00/Jupyter%20Community%20Call)) +**Date:** November 30, 2021, at 8am Pacific (your [timezone](https://arewemeetingyet.com/Los%20Angeles/2021-11-30/8:00/Jupyter%20Community%20Call)) **[Discourse](https://discourse.jupyter.org/t/jupyter-community-calls/668)** diff --git a/docs/source/community/community-call-notes/2022-april.md b/docs/source/community/community-call-notes/2022-april.md new file mode 100644 index 00000000..797037e7 --- /dev/null +++ b/docs/source/community/community-call-notes/2022-april.md @@ -0,0 +1,91 @@ +# Jupyter Community Call 04/26 + +**Date:** April 26, 2022, at 7am Pacific (in your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-04-26/7:00/Jupyter%20Community%20Call)) + +[**Discourse**](https://discourse.jupyter.org/t/jupyter-community-calls/668) + +[**YouTube recording**](https://youtu.be/WDkudE2RvRk) + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +This is a place to make short announcements (without a need for discussion). + +* **Sarah** Shout out to everyone who is here for handling time zones! + +## Agenda Items + +* **[JupyterLab-LaTeX UX improvements PR](https://github.com/jupyterlab/jupyterlab-latex/pull/192)** Result of 2 semesters of work by [Junior Design Capstone class](https://techstyle.lmc.gatech.edu/cs-tech-comm-junior-design-sequence/) team from Georgia Tech done for client (Axle Informatics/NIH). Project included a user research section which is summarized in PR. New features highlights: + * Preview button + * Formatting buttons (bold, italic, underlined, subscript, superscript) + * Autocomplete for common LaTeX tags (i.e. `\subsection`) + * tikzplots templates + * Table creation helper + * Suggestion: UX to help with LaTeX install discovery, errors (even as documentation) + +* **JupyterLab-Git usability improvements** 4 features added to [JupyterLab-Git](https://github.com/jupyterlab/jupyterlab-git) as a result of the [12-week Spring 2022 MLH Fellowship Open-Source Program](https://fellowship.mlh.io/programs/open-source). The majority of the work was done by [Dat Quach](https://github.com/quachtridat) and [Zeshan Fayyaz](https://github.com/ZeshanFayyaz) with help and feedback from [Frédéric Collonval](https://github.com/fcollonval). + * [Credential cache](https://github.com/jupyterlab/jupyterlab-git/pull/1099): save Git login credentials temporarily + * [Commit diff](https://github.com/jupyterlab/jupyterlab-git/pull/1108): compare two arbitrary commits in the *History* panel + * [Reset to remote](https://github.com/jupyterlab/jupyterlab-git/pull/1087): force reset a branch to match its remote tracking branch + * [A warning for unsaved staged files](https://github.com/jupyterlab/jupyterlab-git/pull/1075): warn the user when there are unsaved changes on files that are in the staged area + +* **Frederic** + * _Search and Replace across files_ extension (release in the coming week) + * [GitHub repository](https://github.com/jupyterlab-contrib/search-replace) + * Demo + * The extension is using a CLI tool called [Ripgrep](https://github.com/BurntSushi/ripgrep) + * This limits the usage of the extension to contents served from a file system. + * Potential solutions for building index for other needs (like non OS filesystem) (thanks to Nick): + * https://whoosh.readthedocs.io/en/latest/intro.html + * https://pypi.org/project/lunr/ + +* **Gayle** - Jupyter Community Events Manager + * 4th Round of CFP for Jupyter Community Workshop + * Starting interviews for highlighted contributor write up in blog. If interested schedule time on calendar: https://calendly.com/gayle-numfocus/30min?month=2022-04 + +* **Steve** + * New [cookiecutter](https://github.com/jupyter-server/extension-cookiecutter) template for creating Jupyter Server Extensions + * We created it during the weekly Jupyter Server [contributing hour](https://github.com/jupyter-server/team-compass/issues/22) + +* **Jason W** + * Shout out for triage meetings! (Can be found on the [Jupyter Community Calendar](https://docs.jupyter.org/en/latest/community/content-community.html#jupyter-community-meetings)) + * Typically at 10:00 PDT, though not this week + * You can triage on your own: [JupyterLab issues needing triage](https://github.com/jupyterlab/jupyterlab/labels/status%3ANeeds%20Triage) + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- [lyx]https://www.lyx.org/ +- https://github.com/BurntSushi/ripgrep +- https://whoosh.readthedocs.io/en/latest/intro.html +- https://pypi.org/project/lunr/ + +## Attendees + +| Name | Institution | GitHub Handle| +|------------|---------------------------|--------------| +| Konstantin |Axle Informatics/NIH | @ktaletsk | +| Dat Quach | Major League Hacking (MLH) | @quachtridat | +| Jason Weill | AWS | @jweill-aws | +| Sarah Gibson | 2i2c | @sgibson91 | +| A. T. Darian | QuantStack | @afshin | +| Gayle Ollington|NumFOCUS|@gollington | | +| Frederic Collonval | QuantStack | @fcollonval +| Alex Bozarth | IBM | @ajbozarth | +| Steven Silvester | MongoDB | @blink1073 | +| Chris Sewell | EPFL | @chrisjsewell +| Wayne Decatur | Upstate Medical Univ. | @fomightez +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf | + +Plus 1 more. \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2022-august.md b/docs/source/community/community-call-notes/2022-august.md new file mode 100644 index 00000000..dcd4eb54 --- /dev/null +++ b/docs/source/community/community-call-notes/2022-august.md @@ -0,0 +1,57 @@ +# Jupyter Community Call 08/30 + +**Date:** August 30, 2022, at 7am Pacific (in your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-08-30/7:00/Jupyter%20Community%20Call)) + +[**Discourse**](https://discourse.jupyter.org/t/jupyter-community-calls/668) + +[**Youtube**](https://youtu.be/l_Jv-_9Nv1o) + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +* **Isabela** Shout out to the different group of people we have today! New faces or not, thanks for taking the initiative to be here. + +## Agenda Items + +* **Naas** Presenting Naas open source framework to create data products from notebook templates. + * [Jupyter Naas GitHub Repo](https://github.com/jupyter-naas) + * Three main repos: [Naas](https://github.com/jupyter-naas/naas), [awesome-notebooks](https://github.com/jupyter-naas/awesome-notebooks), and [drivers](https://github.com/jupyter-naas/drivers). + * Future facing work can be sampled at [nass-content-engine](https://github.com/jupyter-naas/naas-content-engine). The idea is templates as widgets. +* **Linda or Bosco (Frederic as backup)** - Demonstrate new jupyterlab-git features added through the [MLH](https://mlh.io) Summer 22 program. + > New features are already available in v0.39.0, try it with `pip install -U jupyterlab-git` + > [Full changelog is available there](https://github.com/jupyterlab/jupyterlab-git/releases) +* **Darian** + * [Lumino 2](https://github.com/orgs/jupyterlab/projects/4) update leading up to JupyterLab 4 and Notebook 7 ([migrating JupyterLab to Lumino 2](https://github.com/jupyterlab/jupyterlab/pull/12992)) + * Jupyter Governance update + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- [The Tyranny of Structurelessness - Jo Freeman](https://www.jofreeman.com/joreen/tyranny.htm) + +## Attendees + +| Name | Institution | GitHub Handle| +|----------|---------------------------|--------------| +| Jeremy Ravenel | Naas | @jupyter-naas +| Frederic Collonval | QuantStack | @fcollonval | +| AT Darian | QuantStack | @afshin | +| David Brochart | QuantStack | @davidbrochart | +|Maxime Jublou|Naas|@Dr0p42| +| Gabriel Fouasnon | Quansight Labs | @gabalafou | +| Wayne Decatur | Upstate Medical University | @fomightez | +| Alex Bozarth | IBM | @ajbozarth | +| Eric Holscher | Read the Docs | @ericholscher | +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf | + +Plus 8 more. \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2022-february.md b/docs/source/community/community-call-notes/2022-february.md new file mode 100644 index 00000000..2174fd04 --- /dev/null +++ b/docs/source/community/community-call-notes/2022-february.md @@ -0,0 +1,72 @@ +# February 22, 2022 + +**Date:** February 22, 2022, at 8am Pacific (your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-02-22/8:00/Jupyter%20Community%20Call)) + +**[Discourse](https://discourse.jupyter.org/t/jupyter-community-calls/668)** + +**[YouTube link](https://youtu.be/-_i1JTRnlXc)** + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +This is a place to make short announcements (without a need for discussion). + +* **Isabela:** Jupyter accessibility workshops are coming up in March. [Sign up for the March 12 event](https://hopin.com/events/jupyter-accessibility-workshop-intro-to-accesibility-and-inclusive-design-with-eric-bailey). [Sign up for the March 19 event](https://hopin.com/events/jupyter-accessibility-workshop-auditing-in-open-source). +* **Tony:** We now have Jupyter triage meetings (on Thursdays). Find them on the [community calendar](https://docs.jupyter.org/en/latest/community/content-community.html#jupyter-community-meetings) +* **Nick:** [`flit 3.7.0`](https://flit.readthedocs.io/en/stable/history.html#version-3-7) released, supports `data_files` for kernelspecs, extensions, etc. +* **@jasongrout:** We are releasing RC prereleases of ipywidgets 8.0 and 7.7 very soon. Will announce on [Jupyter Discourse](https://discourse.jupyter.org/latest) when it happens. + +## Agenda Items + +* **Ana Ruvalcaba/Gayle Ollington** Introduction and welcome to Gayle, Community Events Manager for Project Jupyter. + * [Jupyter Community Building Committee Charter](https://jupyter.org/governance/communitybuildingcommittee.html) + * [December 2021 Jupyter Community Update](https://blog.jupyter.org/jupyter-community-2021-update-84c5cd3c5e75) +* **Frederic Collonval**: WIP [Jupyter styled components](https://jupyterlab-contrib.github.io/jupyter-ui-toolkit) to speed up your dev. + Come as web components or React components and are ARIA compliant thanks to the underlying [FAST Framework](https://explore.fast.design/). + Related [JEP pre-proposal](https://github.com/jupyter/enhancement-proposals/issues/88) + - Question: will these be eventually used for ipywidgets? Answer: There hasn't been a discussion yet, but it is possible to make a new library (like the ones for Vue and Angular) +* **Jeremy Tuloup, Nicholas Bollweg** [An embeddable REPL powered by JupyterLite](https://jupyterlite.readthedocs.io/en/latest/applications/repl.html), various updates (cache busting, slimer app, Pyodide 0.19) +* **Tasko Olevski, Andreas Bleuler** [Amalthea](https://github.com/SwissDataScienceCenter/amalthea) - A Kubernetes operator for Jupyter Servers. Short introduction to the project and its goals. [Link to presentation](https://docs.google.com/presentation/d/18DvgOFoJko2bd9Cvmd7sSLsV0jbacNPoUfpHtbapeMY/edit?usp=sharing) + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- Today's date is an anagram! [a 22-02-2022 tweet](https://twitter.com/simongerman600/status/1495870748866621441) +- [CarpenPi project](https://github.com/CarpenPi) +- [mamba-org/quetz-frontend repository](https://github.com/mamba-org/quetz-frontend/pull/98) +- [ipydrawio in JupyterLite](https://ipydrawio--92.org.readthedocs.build/en/92/_static/lab/index.html) +- [tangle examples notebook in JupyterLite](https://pidgy.readthedocs.io/en/latest/_/retro/notebooks/index.html?path=tangle_examples.ipynb&room=duck-day-wuack) +- [Renku](https://renkulab.io/) + +## Attendees + +| Name | Institution | GitHub Handle| +|----------|---------------------------|--------------| +| Jason Grout | Databricks | @jasongrout +| Frederic Collonval | QuantStack | @fcollonval | +| Sarah Gibson | 2i2c | @sgibson91 +| David Brochart | QuantStack | @davidbrochart | +| Nick Bollweg | Georgia Tech | @bollwyvl @nrbgt | +|Simon Li 🦆 | University of Dundee| @manics | +|tonyfast | quansight | @tonyfast | +|Tasko Olevski| SDSC / ETH Zürich | @olevski | +| Jeremy Tuloup | QuantStack | @jtpio | +| Simon Adorf | EPFL | @csadorf | +| Andreas Bleuler | SDSC / ETH Zürich | @ableuler | +|Zach Sailer | Apple | @Zsailer | +|Isabela Presedo-Floyd 🦆 | Quansight Labs | @isabela-pf | +|Ana Ruvalcaba | California Polytechnic State University | @Ruv7 +|Gayle Ollington | NumFOCUS + +Plus 6 more \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2022-january.md b/docs/source/community/community-call-notes/2022-january.md new file mode 100644 index 00000000..7ef824f2 --- /dev/null +++ b/docs/source/community/community-call-notes/2022-january.md @@ -0,0 +1,61 @@ +# January 25, 2022 + +**Date:** January 25, 2022, at 8am Pacific (your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-01-25/8:00/Jupyter%20Community%20Call)) + +**[Discourse](https://discourse.jupyter.org/t/jupyter-community-calls/668)** + +**[YouTube link](https://youtu.be/zMBAEtEygOA)** + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +This is a place to make short announcements (without a need for discussion). + +* Zach has a shout out! Hooray for these calls continuing into 2022! +* Tony: congrats to the team who made the first two Jupyter accessibility workshops happen in the last two weeks +* Steve: Shout out to Zach for being an early adopter of the new Jupyter governance process with jupyter-server! +* Tony: Shout out to Darian for sharing the Jupyter governance process changes with the whole community +* Tony: Great work to the Binder team for keeping Binder ready to go for the world. +* Tony: Thanks to everyone attending for keeping community calls running +* Zach: Cool demo on Twitter of MyST in a Jupyter notebook (this is later on the agenda) + +## Agenda Items + +* **MLflow Kernel Demo** by Jitendra Pandey (jitendra@infinstor.com). MLflow Kernel connects to an MLflow service and records all the data science activities in the Jupyter notebook as MLflow artifacts. It is open source at [infinstor/mlflow-kernel](https://github.com/infinstor/mlflow-kernel) and [Infinstor quickstart: mlflow kernel](https://www.infinstor.com/quickstart/mlflow-kernel.) +* Demonstrations of [Jupyter cache](https://jupyter-cache.readthedocs.io), [JupyterLab MyST](https://github.com/executablebooks/jupyterlab-myst) (and maybe [PR to rewrite myst-nb](https://github.com/executablebooks/MyST-NB/pull/380)) + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- [rst-to-myst](https://github.com/executablebooks/rst-to-myst) + +## Attendees + +| Name | Institution | GitHub Handle| +|----------|---------------------------|--------------| +| jitendra | [InfinStor](https://www.infinstor.com/) | InfinStor +| Frederic Collonval | QuantStack | @fcollonval | +| Chris Sewell | EPFL/EBP | @chrisjsewell +| Sarah Gibson | 2i2c | @sgibson91 +| Simon Li | University of Dundee | @manics +| Rollin Thomas | NERSC | @rcthomas +| Zach Sailer | Apple | @Zsailer +| Adhitya Vadivel | [InfinStor](https://www.infinstor.com/) | @adhityav +| Gabriel Fouasnon | Quansight | @gabalafou | +| Wayne Decatur | Upstate Medical University | @fomightez +| tony fast | Quansight | @tonyfast | +| A. T. Darian | Two Sigma | @afshin | +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf | + +Plus 6 more \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2022-july.md b/docs/source/community/community-call-notes/2022-july.md new file mode 100644 index 00000000..5ae3c59e --- /dev/null +++ b/docs/source/community/community-call-notes/2022-july.md @@ -0,0 +1,63 @@ +# Jupyter Community Call 07/26 + +**Date:** July 26, 2022, at 8am Pacific (in your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-07-26/8:00/Jupyter%20Community%20Call)) + +**[Discourse](https://discourse.jupyter.org/t/jupyter-community-calls/668)** + +**[YouTube](https://youtu.be/D6HvNONkhlE)** + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +This is a place to make short announcements (without a need for discussion). + +* **Darian** Governance update: Executive Council, Software Steering Council, Distinguished Contributors +* **Darian** [Lumino 2](https://github.com/jupyterlab/lumino/pull/319) +* **rcthomas** Reminder on Github 2FA for Jupyter Project developers + * https://blog.jupyter.org/requiring-2fa-for-jupyter-github-organizations-ad15507da9b1 +* **nick** [voila-dashboards](https://github.com/voila-dashboards/voila/pull/846) almost works with lab (no more cdnjs/unpkg, etc.) +* **fcollonval** JupyterLab 3.4.4 released - [Changelog](https://github.com/jupyterlab/jupyterlab/releases/tag/v3.4.4) +* **Isabela** JupyterLab accessibility calls are still happening, and everyone is welcome. Our next call is tomorrow at 10:15am Pacific! +* **nick** [ipywidgets latest docs](https://ipywidgets.readthedocs.io/en/latest/) now include jupyterlite demos + +## Agenda Items + +* **Isabela** Favorite community call memories/what you want next + * Demos of work people are building on top of Jupyter (but not sales pitches) + * "Pie" + * Themes for calls! + * Lightning talk length of share (right now we have one minute or ten) + * "live demos are always good even if they're incomplete" + * "I'd like people to report a new thing they learned "today I learned" using a Jupyter notebook recently" + * Sign up sheet to mix up hosts! Good for everyone to get experience and can bring in new energy. + * Recognize testers + * Once a quarter: "here's four ways you can contribute" as a recurring topic so people get reminded and don't have to watch the back catalog to hear it (or a list of projects to contribute to) + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- [The New Soul Vegetarian Cookbook](https://www.amazon.com/New-Soul-Vegetarian-Cookbook/dp/0942683137 https://www.amazon.com/Grit-Cookbook-World-Wise-Down-Home-Recipes/dp/1556526482) + +## Attendees + +| Name | Institution | GitHub Handle| +|----------|---------------------------|--------------| +| Frederic Collonval | QuantStack | @fcollonval | +| Simon Li | University of Dundee | @manics | +| A. T. Darian | QuantStack | @afshin | +| Wayne Decatur | Upstate University | @fomightez | +| Rollin Thomas | NERSC | @rcthomas | +| Jeremy Tuloup | QuantStack | @jtpio | +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf | + +Plus 4 more. \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2022-june.md b/docs/source/community/community-call-notes/2022-june.md new file mode 100644 index 00000000..8d0e0598 --- /dev/null +++ b/docs/source/community/community-call-notes/2022-june.md @@ -0,0 +1,49 @@ +# Jupyter Community Call June 28 + +**Date:** June 28, 2022, at 3am Pacific (in your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-06-28/15:00/Jupyter%20Community%20Call)) + +**[Discourse](https://discourse.jupyter.org/t/jupyter-community-calls/668)** + +**[YouTube Link](https://youtu.be/pyEE4tjsj3U)** + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +- Steve: coming soon - getting rid of ``setuptools`` for extension authors - work is being coordinated on a PR on [JupyterLab](https://github.com/jupyterlab/jupyterlab/pull/12606) +- Nick: [jupyterlite](https://github.com/jupyterlite/jupyterlite/releases/tag/v0.1.0b10) kernels can now access contents directly + +## Agenda Items + +* **Tony** ??? ([how general is the nbformat?](https://gist.github.com/tonyfast/6c236af7dcaa87fc012f31b720575dd7)) + * And where are we going next + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- [My Brainfuck CPU - A simple Processor in Python via MyHDL (part 1)](https://nbviewer.org/github/sandbender/BF_CPU/blob/master/BF_MYHDL_CPU_v2.ipynb) +- [jmshea/digicom-jupyter Digital Communications JupyterLite Site](https://github.com/jmshea/digicom-jupyter) +- [Idea: Binder + JupyterLite = BinderLite? (Jupyter Discourse)](https://discourse.jupyter.org/t/idea-binder-jupyterlite-binderlite/14449) +- [Neal Brennan: 3 Mics](https://www.imdb.com/title/tt6438918/?ref_=nm_flmg_wr_7) +- [Types - Web Assembly](https://webassembly.github.io/spec/core/syntax/types.html) + +## Attendees + +| Name | Institution | GitHub Handle| +|------------------|---------------------------|--------------| +| Steven Silvester | MongoDB | @blink1073 +| Nick Bollweg | Georgia Tech | @bollwyvl +| A. T. Darian| QuantStack | @afshin | +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf +| Tony Fast | Quansight | @tonyfast | + +Plus 1 more. \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2022-march.md b/docs/source/community/community-call-notes/2022-march.md new file mode 100644 index 00000000..b9105c4c --- /dev/null +++ b/docs/source/community/community-call-notes/2022-march.md @@ -0,0 +1,31 @@ +# March 29, 2022 + +**Date:** March 29, 2022, at 8am Pacific (your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-03-29/8:00/Jupyter%20Community%20Call)) + +**[Discourse](https://discourse.jupyter.org/t/jupyter-community-calls/668)** + +There is no recording for this call. + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +This is a place to make short announcements (without a need for discussion). + +* **Zach** [voila-gridstack](https://github.com/voila-dashboards/voila-gridstack) is great and Zach can't wait for a release on PyPI sometime soon! + * [viola-dashboards/voila #846 Switch to a lab-based app for the Voila frontend ](https://github.com/voila-dashboards/voila/pull/846) + +## Agenda Items + +With time changes, this meeting was accidentally double-booked with the Jupyter Security meeting! Since we had an open agenda before the community call, our notes overlap with theirs. + +For notes from this call, please refer to the [March 29, 2022 jupyter/security meeting notes!](https://github.com/jupyter/security/tree/main/meetings/2022-03-29.md) \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2022-may.md b/docs/source/community/community-call-notes/2022-may.md new file mode 100644 index 00000000..04129cae --- /dev/null +++ b/docs/source/community/community-call-notes/2022-may.md @@ -0,0 +1,72 @@ +# Jupyter Community Call May 31 + +**Date:** May 31, 2022, at 7am Pacific (in your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-05-31/7:00/Jupyter%20Community%20Call)) + +**[Discourse](https://discourse.jupyter.org/t/jupyter-community-calls/668)** + +**[YouTube link](https://youtu.be/KzH7yJ07PgQ)** + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +* **Isabela:** Shout out to the security team for rolling out awesome documentation on the [Jupyter Vulnerability Handling Process](https://github.com/jupyter/security/blob/main/docs/vulnerability-handling.md#roles)! + +* **Isabela:** Reminder that the [Jupyter Community Workshops call for proposals](https://blog.jupyter.org/jupyter-community-workshops-c7491a3cca00) has been extended! You can now apply until June 6. + +* **Mike** Organising an internal intermediate/advanced jupyter training at Oxford, anything cool you would like to to share with biomedical researchers? + * Matthias: I would search a bit on the napari side. + * Chris Holdgraf is in Europe and runs [2i2c](https://2i2c.org/), he might be a good person to ask. + * Romeo: reach out about relevant talks + * Deep Learning in biomedical and genomics data + * ...using JuypterLab + * ...using Elyra Pipelines + * Deep Learning based image analysis in Radiology + * An overview and life demo of JupyterLab Extensions for Genomics + * An overview and life demo of JupyterLab Extensions for Life Science +* [Please don’t disable authentication in Jupyter servers- Jupyter blog](https://blog.jupyter.org/please-dont-disable-authentication-in-jupyter-servers-dd197206e7f6) + +* **Matthias**: SciPy draft done! Hooray! +* **Gayle**: Shout out to Sylvain for speaking at the upcoming [PyData London](https://pydata.org/london2022/) + +## Agenda Items + +Add agenda items here **before** the meeting. We will reorganize the agenda so that it fits in the 60m meeting slot. + +* **Name** This is an example of agenda item formatting. + +* **Matthias** And https://github.com/jupyter/jupyter.github.io/pull/696, we'd love to know if some folks want to participate / help handle the process – no need to be be a security expert. +* **Matthias** Question : Anything to organise about SciPy ? + * Gayle: there is interest in organizing, but we need ideas! Reach out if there's something you'd like to organize. + * Isabela: not aware of anything that has developed yet, but can ask around. +* **Isabela** Sharing two cool resources I don't see talked about often: + * [jupyter/surveys](https://github.com/jupyter/surveys) + * [JupyterLab user stories](https://github.com/jupyterlab/jupyterlab/tree/master/design) + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- A curated list of awesome Jupyter projects, libraries and resources at [markusschanta/awesome-jupyter](https://github.com/markusschanta/awesome-jupyter) +- A curated list of awesome JupyterLab extensions and resources at [mauhai/awesome-jupyterlab](https://github.com/mauhai/awesome-jupyterlab) + +## Attendees + +| Name | Institution | GitHub Handle| +|----------|---------------------------|--------------| +| Wayne Decatur | Upstate Medical University | @fomightez +| Michał Krassowski | Oxford | @krassowski +| Gayle Ollington|NumFOCUS|@gollington | | +| Eric Gentry | Anaconda | @ericsnekbytes | +| Romeo Kienzler | IBM (CODAIT) | @romeokienzler | +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf | + +Plus one more. \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2022-november.md b/docs/source/community/community-call-notes/2022-november.md new file mode 100644 index 00000000..de918816 --- /dev/null +++ b/docs/source/community/community-call-notes/2022-november.md @@ -0,0 +1,50 @@ +# Jupyter Community Call 11/29 + +**Date:** November 29, 2022, at 7am Pacific (in your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-11-29/7:00/Jupyter%20Community%20Call)) + +[**Discourse**](https://discourse.jupyter.org/t/jupyter-community-calls/668) +[**Youtube**](https://youtu.be/GsOjIvV7ymY) + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +There were no short reports this month. + +## Agenda Items + +* **Gabriela Vives** Present a usability study done on JupyterLab +* **Eric Gao** Jupyter+Apache DolphinsSheduler Demo +* **Nick Bollweg** [jupikchr](https://github.com/deathbeds/jupikchr): pikchr plain-text diagrams for JupyterLab, etc. + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- [jupyter/surveys](https://github.com/jupyter/surveys) +- [Jupyter community building committee](https://jupyter.org/governance/communitybuildingcommittee.html) +- [JupyterLite as a frontend for software forges - Jupyter Discourse](https://github.com/jupyterlite/jupyterlite/discussions/874) + +## Attendees + +| Name | Institution | GitHub Handle| +|----------|---------------------------|--------------| +| Yuze Ma | Alibaba Cloud | bobmayuze | +| Frederic Collonval| QuantStack | @fcollonval +| Gabriela Vives | QuantStack |GabrielaVives +|Matthew Seal|Noteable Inc|MSeal| +| Wayne Decatur|Upstate Medical University|fomightez | +| Eric Gao | Jupyter+Apache DolphinsSheduler Demo | EricGao888 | +|tonyfast | unaffiliated | @tonyfast | +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf | + +Plus 11 more. \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2022-october.md b/docs/source/community/community-call-notes/2022-october.md new file mode 100644 index 00000000..fb707e22 --- /dev/null +++ b/docs/source/community/community-call-notes/2022-october.md @@ -0,0 +1,58 @@ +# Jupyter Community Call 10/25 + +**Date:** October 25, 2022, at 7am Pacific (in your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-10-25/7:00/Jupyter%20Community%20Call)) + +[**Discourse**](https://discourse.jupyter.org/t/jupyter-community-calls/668) +[**Youtube**](https://youtu.be/RHGYVTYI1bg) + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +* Shout out to all the cats and kittens on the call! +* **Sarah** JupyterHub is participating in Outreachy and has lots of applicants! +* **Isabela** Earlier this month, a group of people met to do [keyboard navigation manual tests on the Jupyter Notebook 7 prerelease](https://github.com/jupyter/notebook/issues/6595). It was great to have people meeting to work on accessibility. +* **Steve** Python 3.11 was released yesterday. + +## Agenda Items + +* **Jan-Hendrik Müller, Ricky Alinsky**: A new perspective on creating example galleries from notebooks. + * Plywood gallery (and its VS Code extension!) + * https://discourse.jupyter.org/t/plywood-gallery-generate-python-documentation-via-notebooks/16510 +* **deathbeds**: a bike shed means blood shed + * "when markdown and python collide" - https://tonyfast.github.io/tonyfast/run/lab/index.html?path=xxii/oct/2022-10-21-markdown-future.ipynb?room=deathbeds-more-like-deft-breads + * https://github.com/tonyfast/midgy + * https://github.com/deathbeds/pidgy + * https://github.com/deathbeds/importnb + * https://github.com/tonyfast/tonyfast + * "Spooky-ber Note-boo-ks" with [jupyterlab-deck](https://github.com/deathbeds/jupyterlab-deck) and a history of presenting in notebooks and a reporting deck (with Robot Framework). +* **Debra Chen, Niko Zeng**: Invitation for joint-holding community meetup + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- [Open Source Design Discourse](https://discourse.opensourcedesign.net/) +- [Jupyter Discourse](https://discourse.jupyter.org/) + +## Attendees + +| Name | Institution | GitHub Handle| +|----------|---------------------------|--------------| +| Jan-Hendrik Müller | University of Göttingen | @kolibril13 +| Ricky M. Alinsky | GUSTO University | @Rickaym +| Steve Silvester | MongoDB | @blink1073 | +| Debra Chen | DolphinScheduler community |@debrachena +| Sarah Gibson | 2i2c | @sgibson91 +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf + +Plus 7 more. diff --git a/docs/source/community/community-call-notes/2022-september.md b/docs/source/community/community-call-notes/2022-september.md new file mode 100644 index 00000000..4da00038 --- /dev/null +++ b/docs/source/community/community-call-notes/2022-september.md @@ -0,0 +1,54 @@ +# Jupyter Community Call 09/27 + +**Date:** September 27, 2022, at 7am Pacific (in your [timezone](https://arewemeetingyet.com/Los%20Angeles/2022-09-27/7:00/Jupyter%20Community%20Call)) + +[**Discourse**](https://discourse.jupyter.org/t/jupyter-community-calls/668) + +[**Youtube**](https://youtu.be/DDdwyQLWnUU) + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +This is a place to make short announcements (without a need for discussion). + +* **[jupyterlite 0.1.0b13](https://github.com/jupyterlite/jupyterlite/blob/main/CHANGELOG.md#010b13)** is released, with support for [ipywidgets 8](https://github.com/jupyter-widgets/ipywidgets/releases/tag/8.0.0) + +## Agenda Items + +* Peter Vidos **[ipyvizzu-story](https://github.com/vizzuhq/ipyvizzu-story)** - A short intro of a new, open-source data storytelling tool for Jupyter Notebook. + * Repo: https://github.com/vizzuhq/ipyvizzu-story + * Example (HTML): https://vizzuhq.github.io/ipyvizzu-story/examples/demo/ipyvizzu-story_example.html +* **Yuze** Questions about Jupyter community in the APAC region + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +- [Books by Alberto Cairo](https://en.wikipedia.org/wiki/Alberto_Cairo#Books) +- [Animated charts and story telling with IpyVizzu](https://discourse.holoviz.org/t/animated-charts-and-story-telling-with-ipyvizzu/3622) +- [Charting Data guidelines - Apple Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/patterns/charting-data) +- [Chartability](https://chartability.fizz.studio/) +- [Join the Vizzu Community Slack](https://join.slack.com/t/vizzu-community/shared_invite/zt-w2nqhq44-2CCWL4o7qn2Ns1EFSf9kEg) +- [JupyterHub team compass](https://github.com/jupyterhub/team-compass/) + +## Attendees + +| Name | Institution | GitHub Handle| +|----------|---------------------------|--------------| +| AT Darian | QuantStack | @afshin | +| Alex Bozarth | IBM | @ajbozarth | +|Yuze Ma |Alibaba Group | @bobmayuze +|Wayne Decatur |Upstate Med. University | @fomightez +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf + +Plus 5 more \ No newline at end of file diff --git a/docs/source/community/community-call-notes/2023-december.md b/docs/source/community/community-call-notes/2023-december.md new file mode 100644 index 00000000..bde1c323 --- /dev/null +++ b/docs/source/community/community-call-notes/2023-december.md @@ -0,0 +1,109 @@ +# Jupyter Community Call 12/13 + +**Date:** December 13, 2023, at 9:00AM PST (your [timezone](https://arewemeetingyet.com/Los%20Angeles/2023-12-13/9:00/Jupyter%20Community%20Call)) + +[**Discourse**](https://discourse.jupyter.org/t/jupyter-community-calls/668) + +[**Youtube**](https://youtu.be/hUU77BfU-Kk) + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +This is a place to make short announcements (without a need for discussion). + +* **tonyfast** - [dec community call introduction](https://github.com/tonyfast/tonyfast/blob/main/tonyfast/xxiii/2023-12-13-jupyter-community-call.ipynb) +* **Ana Ruvalcaba** Project Jupyter is now active on Mastodon! Follow us there for the latest Jupyter news and announcements. Please note that @mentions are not monitored. https://hachyderm.io/@ProjectJupyter +* **Mike Krassowski** JupyterLab 4.1 beta call for testing. + + +## Agenda Items + +* **Michael Goerz** [A Python local `.venv` kernel](https://github.com/goerz/python-localvenv-kernel) (5 min) +* **Eric Gentry** A new in-development [JupyterLab hex editor](https://github.com/ericsnekbytes/hexlab) +* **Shravan Achar** A "Share" button for Jupyter Notebooks (5 min). +* **Nick Bollweg** [jupyak](https://github.com/deathbeds/jupyak): a pipeline pushing pulls of projects to pages of pixels for people, across the Jupyter stack +* **Kyle Kelley** demoing the Deno TypeScript kernel for jupyter. + * [Deno Kernel Announce Post](https://blog.jupyter.org/bringing-modern-javascript-to-the-jupyter-notebook-fc998095081e) + * [Deno Notebooks](https://github.com/rgbkrk/denotebooks) +* **Mason Williams** demoing [Pieces for Developers](https://pieces.app) and our [JupyterLab extension](https://docs.pieces.app/extensions-plugins/jupyterlab). +* **Andrey Velichkevich** A collaborative notebook training/tuning ML models on GPUs (powered by KubeFlow) (5 min). + * KubeCon 2024 Talk for the full demo - https://youtu.be/sn2qe225E1o + * Be involved into Kubeflow Community - https://www.kubeflow.org/docs/about/community/ +* **Mike Krassowski** Inline completer API and integration with jupyter-ai. + +## Notes and Other Links + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +### Python local-`.venv` kernel + +* Project on Github: https://github.com/goerz/python-localvenv-kernel +* The FAQ: https://github.com/goerz/python-localvenv-kernel/blob/master/FAQ.md. This includes information on how to make the kernel work for something other than a `.venv` folder. For example (as asked during the call), this might be used to support `.jupyter` populated by https://github.com/jupyterlab/jupyterlab-desktop (TBD) +* Notes on the type of Makefile used in the demo: https://github.com/goerz/python-localvenv-kernel/wiki/Project-Makefile-using-Pip-Tools +* "Old" project example with an installable kernel: https://github.com/ARLQCI/2022-04_semiad_paper +* "New" project is not public yet. When published, links to example repos will be added to the `python-localvenv-kernel` README / Wiki + +### Pieces for Developers | AI-Enabled Developer Workflow Assistant + +* Install our JupyterLab Extension: [JupyterLab Extension Documenation page](https://docs.pieces.app/extensions-plugins/jupyterlab) +* Learn more about Pieces: [Pieces Documenation Site](https://docs.pieces.app) +* Check out our Open Source projects: [Pieces Open Source GitHub Repo](https://github.com/pieces-app/opensource) +* Join our Discord Server: [Pieces Discord Server](https://discord.gg/getpieces) + +### Inline completer + +- [Extension point documentation](https://jupyterlab.readthedocs.io/en/latest/extension/extension_points.html#inline-completer) +- [API documentation for `IInlineCompletionProvider`](https://jupyterlab.readthedocs.io/en/latest/api/interfaces/completer.IInlineCompletionProvider.html) +- https://github.com/krassowski/jupyterlab-transformers-completer +- https://github.com/jupyterlab/jupyter-ai/pull/465 (connecting models) +- https://github.com/jupyterlab/jupyterlab/pull/15160 (frontend) + +## Attendees + +| Name | Institution | GitHub Handle | +|----------|---------------------------|-----------------------------------| +| Shravan Achar | Apple | @shravan-achar +| Andrey Velichkevich | Apple | @andreyvelich +| Zach Sailer | Apple | @Zsailer +| [Michael Goerz](https://michaelgoerz.net) | U.S. Army Research Lab | [@goerz](https://github.com/goerz/) +| Philipp Risius | Justus Liebig University Giessen | @philipprisius +| Nick Bollweg | Georgia Tech | @bollwyvl +| Kyle Kelley | Noteable | @rgbkrk +| Amogha Kancharla | WomeninCloudNative | @amoghak-ds +| [Mason Williams](https://masnwilliams.com) | [Pieces for Developers](https://pieces.app) | [@mason-at-pieces](https://github.com/mason-at-pieces) / [@masnwilliams](https://github.com/masnwilliams) +| Mike Krassowski | Quansight | [@krassowski](https://github.com/krassowski) | +| Eric Gentry | Anaconda | @ericsnekbytes | +| Sergey Kukhtichev | IBM | @skukhtichev | +| Ana Ruvalcaba | Project Jupyter | @Ruv7 | +| Luciano Resende | Apple | @lresende | +| Andrii Ieroshenko | AWS | @andrii-i | +| Jason Weill | AWS | @JasonWeill | +| Jeremy Tuloup | QuantStack | @jtpio | +| Simon Li | University of Dundee | @manics | +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf | +| Jared Thompson|Comcast| | +| Nicolas Brichet | QuantStack | @brichet | +| Rosio Reyes | Anaconda | @RRosio | +| Frederic Collonval | | @fcollonval | +| Carlos Brandt | Constructor University | @chbrandt | +| Rollin Thoams | NERSC | @rcthomas | +| Gabriel Fouasnon | Quansight Labs | @gabalafou | +| Jan-Hendrik Müller | University Göttingen | @kolibril13 | +| Arunav Gupta | AWS | @agupta01 | +| Ian Dong | Apple | @misterfads | +| Mehmet Bektas | Netflix | @mbektas | +| Amola Hinge | Apple | @amolahinge| +| Wayne Decatur | Upstate Medical University | @fomightez | +| Martha Cryan | Mito | @marthacryan | +| R Ely | Bloomberg | @ohrely | +| Jialin Zhang| Apple | @jzhang20133 | diff --git a/docs/source/community/community-call-notes/2023-february.md b/docs/source/community/community-call-notes/2023-february.md new file mode 100644 index 00000000..f3f3f0cf --- /dev/null +++ b/docs/source/community/community-call-notes/2023-february.md @@ -0,0 +1,103 @@ +# Jupyter Community Call 2/28 + +**Date:** February 28, 2023, at 8am Pacific ([your timezone](https://arewemeetingyet.com/Los%20Angeles/2023-02-28/08:00/Jupyter%20Community%20Call)) + +[**Discourse:**](https://discourse.jupyter.org/t/jupyter-community-calls/668) +[**Youtube**](https://youtu.be/718KFe6MMW4) + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +This is a place to make short announcements (without a need for discussion). + +* **Isabela** Many thanks to the Security project team for being flexible and helping community call have this time on the calendar! + * Security calls are now 1st and 3rd Tuesday of every month + * Community call is last Tuesday + * No collisions anymore, can move community call to more friendly time! :) +* **Isabela** Governance update: Software Steering Council is in the process of getting office hours on the calendar and resuming all other duties. + +## Agenda Items + +* @rowanc1 @agoose77 - `jupyterlab-myst` overview and demo https://github.com/executablebooks/jupyterlab-myst + * MyST: Markup language incubated in executable books project, spun out last week + * 10% of Python documentation is written MyST and increasing + * Moving toward Javascript world => better integration with JupyterLab + * See myst-tools.org, new website for the project + * MyST: Support for scientific documents and publications, export to various high-quality PDF formats + * Also rendered static versions of Jupyter notebooks + * What metadata and front-matter needs to be added + * How to bring computational thinkin into publishing + * JupyterLab MyST extension + * Rich metadata as data at the top of document (YAML) + * Executing the metadata cells yields a nice top block for a notebook + * Nicer than custom HTML, parseable, better to edit and view + * Callout blocks: + * Bracketed directives like ":::{important}" + * Also class information like dropdown + * Cross-references + * Inline execution in markdown cells + * Syntax subject to change + * Roles and directives e.g. "{eval}`1+1`" + * Embed Jupyter widgets directly in markdown, figures, sparklines + * Better weaving of documentation and code + * Ongoing nbformat workshop and MyST + * Discussing the challenges of developing the extension + * In particular, embedding computation in documentation, wasn't originally envisioned + * Input types may need to expand + * Static publishing, see also https://thebe.readthedocs.io/en/stable/ + * Write documents with interactivity + * Publishing mechanisms + * Help promote interactivity and computation experience to the end sharing of documents + * Mixing HTML and MyST and accessibility? + * Keeping these issues in mind during development + * Gets more difficult with widgets + * Efforts to use the same technology pieces as Jupyter + * => as Jupyter improves things upstream in widgets space it propagates here + * Archivability, semantic HTML, paying attention to accessibility scores + * https://myst-tools.org/docs/mystjs/accessibility-and-performance +* Ongoing nbformat workshop discussion @isabela-pf + * We don't have a type of Markdown we specify in notebooks + * This has created some difficulty during user testing + * Would be nice to at least know what kind of Markdown specification we're following + * There are web accessibility guidelines, not clear always how they correlate + * Greater clarity would help because accommodations get hooked in at the HTML level + * At the workshop @rowanc1: + * Split into 3 groups + * Text-based format in addition to standard format (e.g. jupytext) + * Cell types workflow + * Markdown formats inside cells + * The wild west of notebook, cell metadata, how do people use it? + * Noteable example + * Front-end interfaces that don't go through Jupyter/JupyterLab + * Visualization state stored in cell metadata + * Namespaced in noteable + * Are there changes in terms of cell metadata being considered PR/discourse wise? + * Discourse: ??? + * Maybe [Jupyter Discourse: Notebook Metadata UX](https://discourse.jupyter.org/t/notebook-metadata-ux/17507_) + * Simplest use case (kinda) marking cell metadata for special treatment or processing + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +## Attendees + +| Name | Institution | GitHub Handle | +|----------|---------------------------|-----------------------------------| +| Rollin | NERSC | @rcthomas | +| Rowan | Curvenote / ExecutableBooks | @rowanc1 | +| Gabriela Vives |QuantStack |GabrielaVives | +| Wayne Decatur | Upstate Medical Univ. | @fomightez | +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf | + +Plus 1 more. diff --git a/docs/source/community/community-call-notes/2023-january.md b/docs/source/community/community-call-notes/2023-january.md new file mode 100644 index 00000000..a5f6590c --- /dev/null +++ b/docs/source/community/community-call-notes/2023-january.md @@ -0,0 +1,61 @@ +# Jupyter Community Call 1/31 + +**Date:** January 31, 2023 at 7am Pacific (in your [timezone](https://arewemeetingyet.com/Los%20Angeles/2023-01-31/7:00/Jupyter%20Community%20Call)) + +[**Discourse**](https://discourse.jupyter.org/t/jupyter-community-calls/668) +[**Youtube**](https://youtu.be/LjgctsAIubQ) + +**Please note:** +- Community calls are recorded and posted to this [playlist](https://www.youtube.com/playlist?list=PLUrHeD2K9Cmkoamm4NjLmvXC4Y6E1o8SP) +- These notes will be recorded and posted [here](https://jupyter.readthedocs.io/en/latest/community/community-call-notes/index.html) +- Everyone present is held to the [Jupyter Code of Conduct](https://jupyter.org/conduct) + +## Purpose + +Think of it as a monthly, virtual JupyterCon. It’s a place to announce and share fun things happening in the Jupyter community. + +For more discussion on the format of these calls, see the thread [here](https://discourse.jupyter.org/t/reviving-the-all-jupyter-team-meetings/423). + +## Short reports, celebrations, shout-outs + +This is a place to make short announcements (without a need for discussion). + +* **Isabela** We've officially hit two years of consecutive Jupyter community calls! Thank you all for supporting our community. +* **Nick** Recent [release of traitlets](https://blog.jupyter.org/announcing-a-new-jupyter-governance-model-and-our-first-executive-council-39b3989dc064) supports tab completion +* **Gayle** [Blog post](https://blog.jupyter.org/announcing-a-new-jupyter-governance-model-and-our-first-executive-council-39b3989dc064) about Jupyter governance launch + +## Agenda Items + +Add agenda items here **before** the meeting. We will reorganize the agenda so that it fits in the 60m meeting slot. + +* **Stephen Macke**: [IPyflow](https://github.com/ipyflow/ipyflow): a dataflow-aware Python kernel for JupyterLab +* **Nick Bollweg**: [jyg](https://github.com/deathbeds/jyg): run JupyterLab commands from the CLI... or other browser windows +* **Gayle**: [Jupytercon](https://www.jupytercon.com/)! How would you promote the event? Reach out at gayle@numfocus.org +* **Kafonek**: Are any Jupyter-collaborative meetings (Y-py, etc) still going on? Have tried to connect to those communities and had trouble. Also would like to push for pypi to host wasm wheels. + +## Other Links Shared + +This is a space to store links shared during community call discussions related to or separate from the agenda items. + +* [deathbeds/jupyterlab-starters](https://github.com/deathbeds/jupyterlab-starters) +* [JupyterLab example for adding items to the launcher](https://github.com/jupyterlab/extension-examples/tree/master/launcher) +* [jupyter_app_launcher](https://github.com/trungleduc/jupyter_app_launcher) +* [jupyterlab_commands](https://github.com/timkpaine/jupyterlab_commands) +* [ipylab](https://github.com/jtpio/ipylab) + +## Attendees + +| Name | Institution | GitHub Handle| +|----------|---------------------------|--------------| +| nick bollweg | deathbeds | @bollwyvl | +| stephen macke | meta | [@smacke](https://github.com/smacke) | +| matt kafonek | noteable | [@kafonek](https://github.com/kafonek) | +| Frederic Collonval | QuantStack | @fcollonval | +| Gayle Ollington | NumFOCUS | @gollington | +| Wayne Decatur | Upstate Medical Univ. | @fomightez | +| Carlos Brandt | Constructor Univ. | @chbrandt | +| tonyfast | deathbeds | @tonyfast | +| A. T. Darian | QuantStack | @afshin | +| Isabela Presedo-Floyd | Quansight Labs | @isabela-pf | + +Plus 3 more \ No newline at end of file diff --git a/docs/source/community/community-call-notes/index.rst b/docs/source/community/community-call-notes/index.rst index 87ba0a5d..1766ebb8 100644 --- a/docs/source/community/community-call-notes/index.rst +++ b/docs/source/community/community-call-notes/index.rst @@ -9,6 +9,20 @@ The Jupyter Community Call is an open video call. Think of this as a "monthly, v .. toctree:: :maxdepth: 1 + December 2023 <2023-december.md> + February 2023 <2023-february.md> + January 2023 <2023-january.md> + November 2022 <2022-november.md> + October 2022 <2022-october.md> + September 2022 <2022-september.md> + August 2022 <2022-august.md> + July 2022 <2022-july.md> + June 2022 <2022-june.md> + May 2022 <2022-may.md> + April 2022 <2022-april.md> + March 2022 <2022-march.md> + February 2022 <2022-february.md> + January 2022 <2022-january.md> November 2021 <2021-november.md> October 2021 <2021-october.md> September 2021 <2021-september.md> diff --git a/docs/source/community/content-community.rst b/docs/source/community/content-community.rst index ecc97ff0..65f52846 100644 --- a/docs/source/community/content-community.rst +++ b/docs/source/community/content-community.rst @@ -25,6 +25,11 @@ the Jupyter community, share new ideas and discussions, and connect with one ano This often happens within specific sub-project (more information below), though there are also occasional community-wide meetings. +Some of these meetings are recorded and uploaded to our `YouTube channel `_. +**Please do not record meetings on your own.** Some of our meetings include both +on-the-record and off-the-record segments; off-record segments are not recorded or +published. + This following calendar shows the various meetings and events from Jupyter sub-projects: .. raw:: html @@ -60,7 +65,7 @@ following pages should help you find the information for each. **JupyterHub meetings** happen monthly. For a calendar of future team meetings, see -`the JupyterHub team compass repository `_. +`the JupyterHub team compass repository `_. **JupyterLab meetings** happen weekly. For more information about when these meetings happen, as well as notes from each meeting, see `the JupyterLab README `_. diff --git a/docs/source/conf.py b/docs/source/conf.py index fd22b8fc..cfcbfa7e 100755 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -103,7 +103,7 @@ "icon": "fab fa-github-square", }, { - "name": "GitLab", + "name": "Discourse", "url": "https://discourse.jupyter.org", "icon": "fab fa-discourse", }, diff --git a/docs/source/contributing/content-contributor.rst b/docs/source/contributing/content-contributor.rst index b304ee25..47248402 100644 --- a/docs/source/contributing/content-contributor.rst +++ b/docs/source/contributing/content-contributor.rst @@ -77,3 +77,12 @@ be a positive and helpful member of this community. Whether it **participating i **offering to help others**, **coming to community meetings**, or **teaching others about Jupyter**, there are many ways to improve the Jupyter community. For more information about this, we recommend starting with the :ref:`community-guide`. + +Getting Access to Jupyter Managed Accounts +------------------------------------------ + +As a contributor, you may need to access accounts managed by Jupyter, for instance, +to write a blog post or update information posted to a Jupyter site. + +To request access, email the security group at `security@ipython.org`, or make +an issue on the `Jupyter Security subproject repo `_. diff --git a/docs/source/contributing/dev-contributions/contrib_guide.rst b/docs/source/contributing/dev-contributions/contrib_guide.md similarity index 61% rename from docs/source/contributing/dev-contributions/contrib_guide.rst rename to docs/source/contributing/dev-contributions/contrib_guide.md index 3d7379ea..ed261c91 100644 --- a/docs/source/contributing/dev-contributions/contrib_guide.rst +++ b/docs/source/contributing/dev-contributions/contrib_guide.md @@ -1,9 +1,8 @@ -=============== -How can I help? -=============== +# How can I help? -.. contents:: Contents - :local: +```{contents} Contents +:local: +``` Contributing to open source can be a nerve-wrecking process, but don't worry everyone on the Jupyter team is dedicated to making sure that your open source @@ -20,8 +19,7 @@ a small amount of the code necessary to fix the issue you are tackling. Any and all help is welcome and any and all people are encouraged to contribute. -Submitting Pull Requests -======================== +## Submitting Pull Requests Individuals are welcome, and encouraged, to submit pull requests and contribute to the Jupyter source. If you are a first-time contributor looking to get @@ -31,8 +29,9 @@ is particularly useful because the Jupyter codebase is scattered across several repositories within the jupyter organization, as opposed to a single repository. You can click the link below to find sprint-friendly issues. -`is:issue is:open is:sprint-friendly user:jupyter -`_ +```{link-button} https://github.com/search?q=is%3Aissue+is%3Aopen+is%3Asprint-friendly+user%3Ajupyter&type=Issues&ref=searchresults +:text: is:issue is:open is:sprint-friendly user:jupyter +``` Once you've found an issue that you are eager to solve, you can use the guide below to get started. If you experience any problems while working on the @@ -46,9 +45,9 @@ including partial or in-progress work, is appreciated. 1. Fork the repository associated with the issue you are addressing and clone it to a local directory on your machine. +2. `cd` into the directory and create a new branch using `git checkout -b insert-branch-name-here`. -2. ``cd`` into the directory and create a new branch using ``git checkout -b - insert-branch-name-here``. Pick a branch name that gives some insight into + Pick a branch name that gives some insight into what the issue you are fixing is. For example, if you are updating the text that is logged out by the program when a certain error happens you might name your branch `update-error-text`. @@ -60,10 +59,10 @@ including partial or in-progress work, is appreciated. reside and leave a comment in the file describing what issue you are trying to address. -5. Open a pull request to the repository with ``[WIP]`` appended to the front +5. Open a pull request to the repository with `[WIP]` appended to the front so that the core team is aware that you are actively pursuing the issue. When creating a pull request, make sure that the title clearly and concisely - described what your code does. For example, we might use the title "Updated + describes what your code does. For example, we might use the title "Updated error message on ExampleException". In the body of the pull request, make sure that you include the phrase "Closes #issue-number-here", where the issue number is the issue number of the issue that you are addressing in @@ -76,7 +75,7 @@ including partial or in-progress work, is appreciated. 6. Run the test suite locally in order to ensure that everything is properly configured on your system. Refer to the repository's README for information on how to run the test suite. This will typically require that you run the - ``nosetests`` command on the commandline. Alternatively, you may submit a + `nosetests` command on the commandline. Alternatively, you may submit a pull request. Our Continuous Integration system will test your code and report test results. @@ -101,7 +100,7 @@ including partial or in-progress work, is appreciated. 8. Go back to the file that you are updating and begin adding the code for your pull request. -9. Run the test suite again to see if your changes have caused any of the test +9. Run the test suite again to see if your changes have caused any of the test cases to pass. If any of the test cases have failed, go back to your code and make the updates necessary to have them pass. @@ -118,49 +117,47 @@ including partial or in-progress work, is appreciated. 12. Once your PR is ready to become a part of the code base, it will be merged by a member of the core team. -Contribution Workflow ---------------------- -.. image:: ../../_static/_images/contribution_workflow.png +## Contribution Workflow +```{image} ../../_static/_images/contribution_workflow.png +:alt: A flow chart listing the steps of contributing code to Jupyter with 14 labeled boxes linked by arrows. The chart is uni-directional. At each step, arrows point forward to one or more boxes and back to the previous box or boxes. Refer to the link below the image for full text. +``` +Full Contribution Workflow description.[^f1] -Core Developer Workflow ------------------------ +## Core Developer Workflow To help you understand our review process by core developers after you submit a pull request, here's a guide that outlines the general process (specifics may vary a bit across our repositories). Here is an example for Jupyter notebook -4.x: +`4.x`: - - -In general, Pull Requests are against ``master`` unless they only affect a +In general, Pull Requests are against `master` unless they only affect a backport branch. If a PR affects master and should be backported, the general flow is: - 0. mark the PR with milestone for the next backport release (4.3) - 1. merge into master - 2. backport to 4.x - 3. push updated 4.x branch +1. mark the PR with milestone for the next backport release (4.3) +2. merge into master +3. backport to 4.x +4. push updated 4.x branch -Backports can be done in a variety of ways, but we have `a script -`_ for +Backports can be done in a variety of ways, but we have [a script](https://github.com/ipython/ipython/blob/master/tools/backport_pr.py) for automating the common process to: - 1. download the patch ` e.g. ` - 2. checkout the 4.x branch - 3. apply the patch - 4. make a commit +1. download the patch ` e.g. ` +2. checkout the 4.x branch +3. apply the patch +4. make a commit which works for simple cases, at least. In this case, it would be: - python /path/to/ipython-repo/tools/backport_pr.py jupyter/notebook 4.x 1645 - +``` +python /path/to/ipython-repo/tools/backport_pr.py jupyter/notebook 4.x 1645 +``` -Submitting a Bug -================= +## Submitting a Bug While using the Notebook, you might experience a bug that manifests itself in unexpected behavior. If so, we encourage you to open issues on GitHub. To @@ -178,7 +175,7 @@ you take the following steps before submitting an issue. in, in order to aid in the debugging of the issue. You will need to provide information about the Python version, Jupyter version, operating system, and browser that you are using when submitting bugs. You can also use - ``pip list`` or ``conda list`` and ``grep`` in order to identify the + `pip list` or `conda list` and `grep` in order to identify the versions of the libraries that are relevant to the issue that you are submitting. @@ -188,10 +185,42 @@ you take the following steps before submitting an issue. 5. Prepare an explanation of why the current behavior is not desired and what it should be. -Reporting a Vulnerability -========================= +## Reporting a Vulnerability If you believe you've found a security vulnerability in a Jupyter project, -please report it to `security@ipython.org `_. If you -prefer to encrypt your security reports, you can use `this PGP public -key `_. +please report it to [`security@ipython.org`](mailto:security@ipython.org). +If you prefer to encrypt your security reports, you can use [this PGP public key](https://jupyter-notebook.readthedocs.io/en/stable/_downloads/1d303a645f2505a8fd283826fafc9908/ipython_security.asc). + +[^f1]: A flow chart with 14 labeled boxes linked by arrows. + + The chart is uni-directional. At each step, arrows point forward to one or more boxes and back to the previous box or boxes. Here the flow chart is described as lists in which the possible next steps are listed beneath each box label. + + 1. Start + 1a. forward to 'Find an issue to address' + 2. Find an issue to address + 2a. forward to 'Identify the relevant section of the codebase' + 3. Identify the relevant section of the codebase + 3a. forward to 'Write simple test cases to verify that your fix or enhancement works.' + 4. Write simple test cases to verify that your fix or enhancement works. + 4a. forward to 'Implement the bug fix or enhancement in the appropriate location' + 5. Implement the bug fix or enhancement in the appropriate location. + 5a. Forward to 'Run the test suite and verify that the updated code works appropriately.' + 6. Run the test suite and verify that the updated code works appropriately. + 6a. forward to 'Test suit passes!' + 6b. forward to 'Test suit fails!' + 7. Test suit fails + 7a. forward to 'Identify and fix any issues in the new code that might be causing errors. Refer to the mailing list or Gitter channel for help.' + 8. Identify and fix any issues in the new code that might be causing errors. Refer to the mailing list or Gitter channel for help. + 8a. back to 'Run the test suite and verify that the updated code works appropriately' + 9. Test suit passes! + 9a. forward to 'Submit a pull request to the appropriate repository with your awesome code!' + 10. Submit a pull request to the appropriate repository with your awesome code! + 10a. forward to 'Reviewer approves and merges the PR' + 10b. forward to 'Reviewer responds with changes you should make to the PR' + 11. Reviewer responds with changes you should make to the PR + 11a. forward to 'Apply the necessary fixes or updates to the pull request' + 12. Apply the necessary fixes or updates to the pull request' + 12a. back to 'Submit a pull request to the appropriate repository with your awesome code!' + 13. Reviewer approves and merges the PR' + 13a. forward to 'Rejoice and repeat!' + 14. 'Rejoice and repeat!' diff --git a/docs/source/contributing/dev-contributions/index.rst b/docs/source/contributing/dev-contributions/index.rst index 4f76197f..f0b7d0bb 100644 --- a/docs/source/contributing/dev-contributions/index.rst +++ b/docs/source/contributing/dev-contributions/index.rst @@ -14,8 +14,8 @@ Developer Guide releasing.rst Whether you are a new contributor or a seasoned developer, we're pleased that -you are working on Jupyter. We hope you find the Developer Guide is useful. -Please suggest changes or ask questions about the contents. Thanks! +you are working on Jupyter. We hope you find the Developer Guide useful. +Please feel free to suggest changes or ask questions about the content. Thanks for your contribution! If you are interested in installing a specific project from source, each project has documentation on ReadTheDocs. For example, IPython documentation diff --git a/docs/source/contributing/docs-contributions/doc-issues-hub.md b/docs/source/contributing/docs-contributions/doc-issues-hub.md new file mode 100644 index 00000000..c70dc65a --- /dev/null +++ b/docs/source/contributing/docs-contributions/doc-issues-hub.md @@ -0,0 +1,13 @@ +# Documentation Issue Hub + +Each subproject has its own documentation. This page provides quick links +to documentation issues for Jupyter subprojects. + +## Docs Issues Per-Subproject + +- [Jupyter.org (meta-project) issues](https://github.com/jupyter/jupyter/labels/documentation) (`documentation` label) +- [Jupyter Notebook issues](https://github.com/jupyter/notebook/labels/documentation) (`documentation` label) +- [JupyterLab issues](https://github.com/jupyterlab/jupyterlab/labels/documentation) (`documentation` label) +- [Jupyter Server issues](https://github.com/jupyter-server/jupyter_server/labels/documentation) (`documentation` label) +- [JupyterHub issues](https://github.com/jupyterhub/jupyterhub/labels/documentation) (`documentation` label) +- [ipywidgets issues](https://github.com/jupyter-widgets/ipywidgets/labels/documentation) (`documentation` label) diff --git a/docs/source/contributing/docs-contributions/doc-new-build.md b/docs/source/contributing/docs-contributions/doc-new-build.md index 0e8d4054..d9940ab5 100644 --- a/docs/source/contributing/docs-contributions/doc-new-build.md +++ b/docs/source/contributing/docs-contributions/doc-new-build.md @@ -13,7 +13,7 @@ project documentation whenever a pull request is merged into the GitHub repo. Each GitHub repo has a Settings tab at the far right of the repo menubar. Navigate to Settings and then the **Webhooks & services** submenu tab. -![Settings and Webhooks & services submenu](static/gh-webhooks-services.png "Screenshot of GitHub repo settings") +![The ipywidgets GitHub repository's "Settings" tab has been opened, with the "Add service" submenu expanded. The "ReadTheDocs" menu item is highlighted to indicate where on the page this setting can be found.](static/gh-webhooks-services.png) ### Add the ReadTheDocs service @@ -21,13 +21,13 @@ Select **Add service** and enter *ReadTheDocs* in the **Available Services** inp The Services/Add ReadTheDocs window will open. Press the green **Add service** button to activate the ReadTheDocs service. -![Add ReadTheDocs service](static/gh-add-rtd.png "Screenshot of adding ReadTheDocs service") +![In GitHub, the "Settings" tab of the ipywidgets repository shows that the "ReadTheDocs" service was successfully added to the project. A checkbox with the label "Active" indicates that the service is currently running.](static/gh-add-rtd.png) ### Success The ReadTheDocs service is added successfully. The service will take effect on the next merged pull request to the project repo. -![Service successfully added](static/gh-rtd-hook-success.png "Screenshot of service successfully added") +![In GitHub, the ipywidgets repository page is open. A banner notification at the top of the page is displayed, reading "Okay, that hook was successfully created."](static/gh-rtd-hook-success.png) *Created: 01-07-2016* diff --git a/docs/source/contributing/docs-contributions/doc-new-repos.md b/docs/source/contributing/docs-contributions/doc-new-repos.md index 55928f1e..fd3a3c53 100644 --- a/docs/source/contributing/docs-contributions/doc-new-repos.md +++ b/docs/source/contributing/docs-contributions/doc-new-repos.md @@ -11,14 +11,14 @@ On a larger scope, having the Jupyter name appear prominently in a repo's ### Link in repo description Please include a link to the documentation in the repo's description. -![Repo description and documentation link](static/repo-description.png "Screenshot of documentation link in GitHub repo description") +![Documentation link in GitHub jupyter/notebook repo description annotated with a red speech bubble reading "Add link to documentation (usually a link to Read the Docs.)")](static/repo-description.png) ### Badges in README One common way that individuals find documentation is to look for and click on the doc badge that commonly is found right after the title. Another benefit is an easy visual indication if the docs are not rendering properly. -![Badges in README.md](static/repo-badges.png "Screenshot of badges displayed under the repo title in the README file") +![The GitHub-rendered view of the README.md file for the Jupyter Notebook project is annotated with a red speech bubble reading "Add badge for Docs."](static/repo-badges.png) ### Resources section in README @@ -27,9 +27,8 @@ information to users about the individual project and the larger Project Jupyter organization. Make sure to include any links to the individual project's demo notebooks, if available. -The *Resources* section includes: +For example, here is the [Resources section from jupyter/notebook]:(https://github.com/jupyter/notebook/blob/master/README.md#resources) -![Resources section in `README.md`](static/repo-resources.png "Screenshot of resource list at end of README file") ## Checklist adding docs to a new or existing GitHub Repo diff --git a/docs/source/contributing/docs-contributions/doc-new-translation.md b/docs/source/contributing/docs-contributions/doc-new-translation.md index fe50c7ec..0e91b164 100644 --- a/docs/source/contributing/docs-contributions/doc-new-translation.md +++ b/docs/source/contributing/docs-contributions/doc-new-translation.md @@ -32,8 +32,9 @@ in the workflow described below. This workflow has a handful of actors and compo ### The translation process -![Translation CI/CD](static/translation-ci-cd.png "Diagram of the translation continuous integration -and deployment flow") +![](static/translation-ci-cd.png) + + 1. A user creates or edits reStructuredText (`.rst`) or Markdown (`.md`) documents written in U.S. English. @@ -372,8 +373,7 @@ ReadTheDocs will build both the source documentation site as well as sites for a languages. ReadTheDocs will associate the sites with one another and make them accessible via language links in a popup. -![ReadTheDocs popup](static/translation-rtd-popup.png "Screenshot of the ReadTheDocs popup that -allows a user to view documentation in a different language") +![Project Jupyter documentation site with the ReadTheDocs popup open on the right, showing links to the documentation in other languages.](static/translation-rtd-popup.png) ## Reference diff --git a/docs/source/contributing/docs-contributions/index.rst b/docs/source/contributing/docs-contributions/index.rst index 0eb1f133..b3826346 100644 --- a/docs/source/contributing/docs-contributions/index.rst +++ b/docs/source/contributing/docs-contributions/index.rst @@ -13,6 +13,7 @@ Documentation Guide doc-workflow.rst doc-tools.rst doc-future-index.rst + doc-issues-hub.md Documentation helps guide new users, fosters communication between developers, and shares tips and best practices with other community members. That's why diff --git a/docs/source/contributing/docs-contributions/repo-structure.md b/docs/source/contributing/docs-contributions/repo-structure.md index 64f57582..d315209e 100644 --- a/docs/source/contributing/docs-contributions/repo-structure.md +++ b/docs/source/contributing/docs-contributions/repo-structure.md @@ -7,7 +7,7 @@ - ``readthedocs.yml`` : configuration file for readthedocs to build using conda -![Repo root directory](static/repo-root.png "Screenshot of GitHub repo root") +![The root level of the jupyter kernel_gateway repo. There are orange boxes surrounding two elements in the directory structure: the docs folder and the readthedocs.yml file. The docs folder is the first element in the directory. The readthedocs.yml file is the 12th item in the directory.](static/repo-root.png) ## Inside the docs directory @@ -16,7 +16,7 @@ - ``makefile`` : used by Sphinx to build the docs - ``environment.yml`` : conda build instructions -![``docs`` directory](static/docs-directory.png "Screenshot of docs directory") +![The docs directory in the jupyter kernel_gateway repo (path: jupyter/kernel_gateway/docs). The first two elements in the directory are folders that have blue boxes surrounding them: `_static` and `source`. The third and forth elements in the directory are files with orange boxes surrounding them: `Makefile` and `environment.yml`. There are two more files in the directory, which have no visual emphasis.](static/docs-directory.png) ## Sphinx diff --git a/docs/source/glossary.rst b/docs/source/glossary.rst index 40ea78d7..4cffe600 100644 --- a/docs/source/glossary.rst +++ b/docs/source/glossary.rst @@ -6,27 +6,110 @@ Glossary .. glossary:: + `client-server-architecture `_ + A `software design pattern `_ used by + Jupyter applications like **JupyterLab**. With this pattern, a server program (running + on a user's computer or on a server that can be accessed over a business or public + network) provides access to stored information (in JupyterLab's case, documents in + a folder such as notebooks and other data files), and a client program (the web + application and editing interface for JupyterLab in this case) connects to the + server program to view and interact with that data. + + console + In modern times, a `console `_ refers to a simple text-based program where you type commands for your + computer to run, also commonly called a `terminal `_. + command line - The terminal or console window where you type commands. + A simple text-based program where you type commands for your computer to run, also + called a `terminal `_ or `console `_. Command Prompt On Windows, this is the application where commands are typed into - a window for execution. + a window for execution. Also see `console `_, + **command line**, or `terminal `_. conda - The package manager for Anaconda. + The package management tool for Anaconda, which allows for easy + installation of Python libraries and other tools into an **environment**. config - Refers to the configuration files and process. + Refers to the configuration files, and related processes that affect how + Jupyter behaves. + + environment + The name for the installed software, configurations, tools, and + `environment variables `_ + that collectively define what capabilities a computer system has and how + it behaves. Missing or incorrect software, configurations or environment variables + can cause software to malfunction, or software development processes to fail. See + `this link `_ + for more information. + + environment variable + See `this wiki link `_ for for information. + + ipynb + The file extension (.ipynb) for saved notebook files, commonly + authored and edited with Jupyter web applications such as + JupyterLab or Jupyter Notebook. It stands for "IPython Notebook". + + IPython + The earliest ancestor of **Project Jupyter**. It began as an improved + interactive Python **REPL**, then expanded to also contain a stored + notebook document format (.ipynb) and related tools, a web based + document authoring and editing tool (IPython Notebook), and more. + After the project became large enough, IPython was split into many + separate projects under the **Project Jupyter** umbrella through + **The Big Split.** + + IPython Notebook + An early ancestor of the Jupyter Notebook application, this was one of + the first web-based applications for authoring and editing computational + notebook documents. + + ipywidgets + A `python package for Jupyter `_ + that allows Notebook applications to create and embed interface components + like sliders or buttons in their notebooks. + + Jovyan + A term for fans of Jupyter and members of the Jupyter community. This term + is `derived from `_ + the astronomical term "Jovian", meaning "Like Jupiter". + + Jupyter + See **Project Jupyter**. Also occasionally used to refer to one of the Jupyter + frontend notebook editing applications (**Jupyter Notebook** or **JupyterLab**) + based on the context it's used in (this ambiguous usage can lead to + confusion, it's better to use the actual name of the application). + + Jupyter Notebook (Application) + A simplified web application for authoring and editing computational + notebooks in the **.ipynb** format (a notebook file is also commonly referred + to as a Jupyter Notebook). + + Jupyter Notebook (File Format) + A common name for a saved **.ipynb** Notebook file. For instance, + "I just made a Jupyter Notebook summarizing our lab results, I can + send it to you later today." + + JupyterLab + A modern web application for authoring and editing interactive + computational notebooks. kernel - A kernel provides programming language support in Jupyter. IPython is + A kernel provides programming language support in Jupyter. **IPython** is the default kernel. Additional kernels include R, Julia, and many more. + Notebook + The generic name for a computational notebook document, such as a saved + .ipynb file format created by JupyterLab. Also sometimes used as a shorthand + to refer to Jupyter Notebook, the notebook editing application. + Notebook Dashboard - The notebook user interface which shows a list of the notebooks, files, - and subdirectories in the directory where the notebook server is - started. + The notebook user interface in the **Jupyter Notebook Application** (see above) + which shows a list of the notebooks, files, and subdirectories in the directory + where the notebook server is started. pip Python package manager. @@ -35,12 +118,26 @@ Glossary Not available in Jupyter. In IPython 3, profiles are collections of configuration and runtime files. + Project Jupyter + The umbrella project for many related tools for interactive computing + with interactive notebooks + REPL - read-eval-print-loop. + Stands for "read-eval-print-loop". An `REPL `_ + is a program that reads user commands and inputs, evaluates them, and prints results for the user to view. + These steps run in a perpetual loop, allowing the user to prototype code, + interact with data, and view results on-the-fly, since the data and code + stay open in memory after evaluation while the REPL is running. terminal - A window used to type in commands to be executed (Linux and OS X). + In modern times, a `terminal `_ refers to a simple text-based program where you type commands for your + computer to run, also commonly called a `console `_. + + The Big Split + An event and effort undertaken around 2015 by **IPython** developers to split up + the then-massive IPython project into a series of smaller, more focused + sub-projects under the Project Jupyter umbrella. widget - A user interface component, similar to a plugin, that allows customized - input, such as a slider. \ No newline at end of file + A user interface component from `ipywidgets `_, + similar to a plugin, that allows customized input, such as a slider. diff --git a/docs/source/index.md b/docs/source/index.md index 17bf902a..d952c65d 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -1,9 +1,44 @@ -# Jupyter Project Documentation +# Project Jupyter Documentation -**Welcome to the Jupyter Project documentation**. This website acts as "meta" documentation for the Jupyter ecosystem. -It has a collection of resources to navigate the tools and communities in this ecosystem, and to help you get started. +Welcome to the Project Jupyter documentation site. Jupyter is a large umbrella +project that covers many different software offerings and tools, including the +popular [Jupyter Notebook](https://jupyter-notebook.readthedocs.io/en/latest/) +and [JupyterLab](https://jupyterlab.readthedocs.io/en/latest/) web-based +notebook authoring and editing applications. The Jupyter project and its +subprojects all center around providing tools (and [standards](https://docs.jupyter.org/en/latest/#sub-project-documentation)) +for interactive computing with [computational notebooks](#what-is-a-notebook). -## Start Here +## What is a Notebook? + +![jupyterlab.png](_static/_images/jupyterlab.png) + +**Pictured:** *A computational notebook document, shown inside JupyterLab* + +> 📘 **Note:** Read [What is Jupyter?](what_is_jupyter) for a detailed look at Jupyter and notebooks. + +A notebook is a shareable document that combines computer code, plain language +descriptions, data, rich visualizations like 3D models, charts, graphs and +figures, and interactive controls. A notebook, along with an editor (like +JupyterLab), provides a fast interactive environment for prototyping and +explaining code, exploring and visualizing data, and sharing ideas with +others. + +## Where do I start? + +Most people begin with Jupyter by installing an editing application that fits +their preferences, like [JupyterLab](https://jupyterlab.readthedocs.io/en/latest/) +or [Jupyter Notebook](https://jupyter-notebook.readthedocs.io/en/latest/), +and making their first notebook document: + +- Jupyter Notebook offers a simplified, lightweight notebook authoring experience +- JupyterLab offers a feature-rich, tabbed multi-notebook editing environment + with additional tools like a customizable interface layout and system console +- And more... read about additional notebook interfaces [here](projects/user-interfaces)! + +You can also develop your own extensions or applications on top of existing Jupyter +software. Check out the subproject sites below for more information. + +## More information These are a few high-level topics to help you learn more about the Jupyter community and ecosystem. @@ -53,7 +88,8 @@ These are a few high-level topics to help you learn more about the Jupyter commu ## Sub-project documentation -Sub-projects are major technical and community efforts, and generally have their own documentation for their communities. +Individual sub-projects are typically organized around a key feature of the +Jupyter ecosystem, and have their own community, documentation and governance. Below is a list of documentation for major parts of the Jupyter ecosystem. ```{panels} @@ -62,7 +98,7 @@ User Interfaces * [JupyterLab](https://github.com/jupyterlab/jupyterlab) * [Jupyter Notebook](https://jupyter-notebook.readthedocs.io/en/latest/) * [nbclassic](https://github.com/jupyterlab/nbclassic) -* [Jupyter Console](https://jupyter_console.readthedocs.io/en/latest) +* [Jupyter Console](https://jupyter-console.readthedocs.io/en/latest) * [Qt console](https://qtconsole.readthedocs.io/en/stable) * [Voilà](https://voila.readthedocs.io/) @@ -130,7 +166,7 @@ Widgets ## Table of Contents -The rest of the documentation in this site covers major use-cases of the Jupyter ecosystem, as well as topics that will help you navigate the various parts of the Jupyter community. +The rest of the documentation on this site covers major use-cases of the Jupyter ecosystem, as well as topics that will help you navigate the various parts of the Jupyter community. For more in-depth documentation about a specific tool, we recommend checking out that tool's documentation (see the list above). (user-docs)= @@ -186,6 +222,7 @@ reference/content-reference [Jupyter website](https://jupyter.org), Keep up to date on Jupyter [IPython website](https://ipython.org), Learn more about IPython [Jupyter Discourse forum](https://discourse.jupyter.org/), Start here for help and support questions +[Jupyter Accessibility](https://jupyter-accessibility.readthedocs.io/), Accessibility sub-project documentation [Jupyter mailing list](https://groups.google.com/forum/#!forum/jupyter), General discussion of Jupyter's use [Jupyter in Education group](https://groups.google.com/forum/#!forum/jupyter-education), Discussion of Jupyter's use in education [NumFocus](https://www.numfocus.org), "Promotes world-class, innovative, open source scientific software" diff --git a/docs/source/install.rst b/docs/source/install.rst index 2501dbd7..50d51f97 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -45,7 +45,7 @@ organizations, and with pluggable authentication and scalability. * `GitHub Repo `__ * `Docs `__ -* `Install instructions `__ +* `Install instructions `__ Jupyter Console diff --git a/docs/source/install/notebook-classic.rst b/docs/source/install/notebook-classic.rst index a7e185a7..0304c1d0 100644 --- a/docs/source/install/notebook-classic.rst +++ b/docs/source/install/notebook-classic.rst @@ -13,9 +13,10 @@ kernel. Prerequisite: Python -------------------- -While Jupyter runs code in many programming languages, **Python** is -a requirement (Python 3.3 or greater, or Python 2.7) for installing -the Jupyter Notebook. +While Jupyter runs code in many programming languages, **Python** +is a requirement for installing the Jupyter Notebook. The Python version required +differs between Jupyter Notebook releases (e.g. Python 3.6+ for Notebook v6.3, +and Python 3.7+ for Notebook v7) . We recommend using the `Anaconda `_ distribution to install Python and Jupyter. We'll go through its installation @@ -34,7 +35,7 @@ scientific computing and data science. Use the following installation steps: 1. Download `Anaconda `_. We recommend - downloading Anaconda's latest Python 3 version (currently Python 3.7). + downloading Anaconda's latest Python 3 version (currently Python 3.9). 2. Install the version of Anaconda which you downloaded, following the instructions on the download page. diff --git a/docs/source/locale/en/LC_MESSAGES/community.po b/docs/source/locale/en/LC_MESSAGES/community.po index 31cea6b8..818cdf13 100644 --- a/docs/source/locale/en/LC_MESSAGES/community.po +++ b/docs/source/locale/en/LC_MESSAGES/community.po @@ -1711,7 +1711,7 @@ msgstr "" # 9a919edea46042fda80ad5719ba42c25 #: ../../source/community/community-call-notes/2019-march.md:83 #: feb3053e773948d688e91464db171806 -msgid "Don't get limitted to technical discusions !" +msgid "Don't get limited to technical discusions !" msgstr "" # 6a1d536f3f6c46b2b79fcdecd6491c4c diff --git a/docs/source/locale/en/LC_MESSAGES/contributing.po b/docs/source/locale/en/LC_MESSAGES/contributing.po index 065e8d4c..59df5b32 100644 --- a/docs/source/locale/en/LC_MESSAGES/contributing.po +++ b/docs/source/locale/en/LC_MESSAGES/contributing.po @@ -5331,7 +5331,7 @@ msgstr "" #: 230612fad0534830bc508b1a034b8694 msgid "" "If session does not already exist, create a new session with given " -"notebook name and path and given kernel name. Return active sesssion." +"notebook name and path and given kernel name. Return active session." msgstr "" #: ../../source/contributing/ipython-dev-guide/rest_api.rst:155 @@ -6792,7 +6792,7 @@ msgstr "" #: ../../source/contributing/start-contributing.rst:73 #: 09ab7f21b5844cda8764fd2be5a15953 msgid "" -"`Development Instalation " +"`Development Installation " "`__" msgstr "" diff --git a/docs/source/locale/en/LC_MESSAGES/developer-docs.po b/docs/source/locale/en/LC_MESSAGES/developer-docs.po index c0b46df0..83bf2795 100644 --- a/docs/source/locale/en/LC_MESSAGES/developer-docs.po +++ b/docs/source/locale/en/LC_MESSAGES/developer-docs.po @@ -326,7 +326,7 @@ msgstr "" #: ../../source/developer-docs/contrib_first_time.rst:73 #: 335df1b56add43bc87dc22523aa11774 msgid "" -"`Development Instalation " +"`Development Installation " "`__" msgstr "" diff --git a/docs/source/locale/en/LC_MESSAGES/development_guide.po b/docs/source/locale/en/LC_MESSAGES/development_guide.po index 4fab7182..dc058c16 100644 --- a/docs/source/locale/en/LC_MESSAGES/development_guide.po +++ b/docs/source/locale/en/LC_MESSAGES/development_guide.po @@ -2718,7 +2718,7 @@ msgstr "" #: ../../source/development_guide/rest_api.rst:150 msgid "" "If session does not already exist, create a new session with given " -"notebook name and path and given kernel name. Return active sesssion." +"notebook name and path and given kernel name. Return active session." msgstr "" # 5a4883c124374c5badd2612c1995b17e diff --git a/docs/source/locale/es/LC_MESSAGES/contributor.po b/docs/source/locale/es/LC_MESSAGES/contributor.po index 1092a348..fd255950 100644 --- a/docs/source/locale/es/LC_MESSAGES/contributor.po +++ b/docs/source/locale/es/LC_MESSAGES/contributor.po @@ -260,7 +260,7 @@ msgstr "" # cb2170d8f32f40ab8ddb9dfe33eb88ec #: ../../source/contributor/contrib_guide_blog.rst:47 msgid "" -"Alway check in the metadata fields that a blog post has a title and a " +"Always check in the metadata fields that a blog post has a title and a " "canonical URL. It is possible to put the date in the canonical URL, in " "particular for events like jupyter-day, that can occur several times. The" " date of the event can differ from the date of the blog post." diff --git a/docs/source/locale/es/LC_MESSAGES/developer-docs.po b/docs/source/locale/es/LC_MESSAGES/developer-docs.po index 6c91b04f..7e00c3a9 100644 --- a/docs/source/locale/es/LC_MESSAGES/developer-docs.po +++ b/docs/source/locale/es/LC_MESSAGES/developer-docs.po @@ -284,7 +284,7 @@ msgstr "" # b2ed815f0f484e68a121c164065199df #: ../../source/developer-docs/contrib_first_time.rst:73 msgid "" -"`Development Instalation " +"`Development Installation " "`__" msgstr "" diff --git a/docs/source/locale/es/LC_MESSAGES/development_guide.po b/docs/source/locale/es/LC_MESSAGES/development_guide.po index b0b33aab..c800eeb2 100644 --- a/docs/source/locale/es/LC_MESSAGES/development_guide.po +++ b/docs/source/locale/es/LC_MESSAGES/development_guide.po @@ -2718,7 +2718,7 @@ msgstr "" #: ../../source/development_guide/rest_api.rst:150 msgid "" "If session does not already exist, create a new session with given " -"notebook name and path and given kernel name. Return active sesssion." +"notebook name and path and given kernel name. Return active session." msgstr "" # 5a4883c124374c5badd2612c1995b17e diff --git a/docs/source/locale/es/LC_MESSAGES/projects.po b/docs/source/locale/es/LC_MESSAGES/projects.po index 4abebb84..65de4700 100644 --- a/docs/source/locale/es/LC_MESSAGES/projects.po +++ b/docs/source/locale/es/LC_MESSAGES/projects.po @@ -739,7 +739,7 @@ msgstr "" # 712a90ba320f4bda9acb4e6df9b85bc2 #: ../../source/projects/jupyter-directories.rst:40 msgid "" -"To list the config directories currrently being used you can run the " +"To list the config directories currently being used you can run the " "below command from the :term:`command line`::" msgstr "" diff --git a/docs/source/projects/architecture/content-architecture.rst b/docs/source/projects/architecture/content-architecture.rst index e5c16067..138d7b74 100644 --- a/docs/source/projects/architecture/content-architecture.rst +++ b/docs/source/projects/architecture/content-architecture.rst @@ -6,6 +6,16 @@ This page has information about the different architectural designs of core pieces in the Jupyter ecosystem. Some of these are individual projects, and others show the relationships between projects. +Projects overview +================= + +Below is a high level visual overview of project relationships. It is current as of +2022. + +.. To edit this file, import it into diagrams.net: https://app.diagrams.net/ +.. image:: figs/repos_map.png + :width: 100% + :alt: Architecture diagram of Jupyter project relationships from servers, applications, API, and kernels. IPython Kernel ============== @@ -14,8 +24,7 @@ This section focuses on IPython and kernels. When we discuss ``IPython``, we talk about two fundamental roles: - Terminal IPython as the familiar REPL -- The IPython kernel that provides computation and communication with the - frontend interfaces, like the notebook +- The IPython kernel, ``IPykernel`` that provides computation and communication with the frontend interfaces, like the notebook Terminal IPython @@ -38,17 +47,20 @@ The IPython Kernel ------------------ All the other interfaces —- the Notebook, the Qt console, ``ipython console`` -in the terminal, and third party interfaces —- use the IPython Kernel. The -IPython Kernel is a separate process which is responsible for running user -code, and things like computing possible completions. Frontends, like the -notebook or the Qt console, communicate with the IPython Kernel using JSON -messages sent over `ZeroMQ `_ sockets; the protocol used -between the frontends and the IPython Kernel is described in -:ref:`jupyterclient:messaging`. +in the terminal, and third party interfaces —- use the IPython Kernel. IPykernel +is a separate process which is responsible for running user code, and things +like computing possible completions. Frontends, like the notebook or the Qt +console, communicate with the IPython Kernel using JSON messages sent over +`ZeroMQ `_ sockets; the protocol used between the frontends +and the IPython Kernel is described in :ref:`jupyterclient:messaging`. + +The core execution machinery for the kernel is shared with terminal IPython. -The core execution machinery for the kernel is shared with terminal IPython: +.. Alt text here and below is intentionally blank +.. this is because the image content is described thoroughly in the surrounding text. .. image:: figs/ipy_kernel_and_terminal.png + :alt: A kernel process can be connected to more than one frontend simultaneously. In this case, the different frontends will have access to the same variables. @@ -60,12 +72,15 @@ based on the same kernel, but it also made it possible to support new languages in the same frontends, by developing kernels in those languages, and we are refining IPython to make that more practical. -Today, there are two ways to develop a kernel for another language. Wrapper -kernels reuse the communications machinery from IPython, and implement only -the core execution part. Native kernels implement execution and communications -in the target language: +Today, there are three ways to develop a kernel for another language: + +- Wrapper kernels reuse the communications machinery from IPykernel, and implement only the core execution part. +- Native kernels implement execution and communications in the target language. +- Kernels based on `xeus `_, a native implementation of the protocol, implement the language-specific part of the kernels. Contrary to the wrapper approach, `xeus` does not depend on a python runtime. +.. To edit this file, import it into diagrams.net: https://app.diagrams.net/ .. image:: figs/other_kernels.png + :alt: Wrapper kernels are easier to write quickly for languages that have good Python wrappers, like `octave_kernel `_, @@ -73,7 +88,8 @@ or languages where it's impractical to implement the communications machinery, like `bash_kernel `_. Native kernels are likely to be better maintained by the community using them, like `IJulia `_ or -`IHaskell `_. +`IHaskell `_. Xeus kernels are easy +to write when the language interpreter provides a C++ or a C API. .. seealso:: @@ -98,12 +114,16 @@ Jupyter Notebook and its flexible interface extends the notebook beyond code to visualization, multimedia, collaboration, and more. In addition to running your code, it stores code and output, together with markdown notes, in an editable document called a notebook. When you save it, this is sent from your browser -to the notebook server, which saves it on disk as a JSON file with a +to the Jupyter server, which saves it on disk as a JSON file with a ``.ipynb`` extension. +.. To edit this file, import it into diagrams.net: https://app.diagrams.net/ .. image:: figs/notebook_components.png + :alt: -The notebook server, not the kernel, is responsible for saving and loading +The Jupyter server is a communication hub. The browser, notebook file on disk, and +kernel cannot talk to each other directly. They communicate through the Jupyter server. +The Jupyter server, not the kernel, is responsible for saving and loading notebooks, so you can edit notebooks even if you don't have the kernel for that language—you just won't be able to run code. The kernel doesn't know anything about the notebook document: it just gets sent cells of code to @@ -118,6 +138,7 @@ as HTML, LaTeX, or reStructuredText. This conversion goes through a series of steps: .. image:: figs/nbconvert.png + :alt: 1. Preprocessors modify the notebook in memory. E.g. ExecutePreprocessor runs the code in the notebook and updates the output. @@ -165,14 +186,3 @@ are a few links that are useful for understanding the JupyterLab architecture. * :ref:`JupyterLab notebook model ` * :doc:`Design patterns in JupyterLab ` -Projects overview -================= - -Below is a high level visual overview of project relationships. It is current as of -2017. - -.. todo: This image is a bit out-of-date so we're keeping it at the bottom. We should update it and move it up. - -.. image:: /_static/_images/repos_map.png - :width: 75% - :alt: Architecture diagram of project relationships diff --git a/docs/source/projects/architecture/figs/notebook_components.png b/docs/source/projects/architecture/figs/notebook_components.png index 3b010050..d45db8dd 100644 Binary files a/docs/source/projects/architecture/figs/notebook_components.png and b/docs/source/projects/architecture/figs/notebook_components.png differ diff --git a/docs/source/projects/architecture/figs/notebook_components.svg b/docs/source/projects/architecture/figs/notebook_components.svg index 3b51ed2e..86ecc381 100644 --- a/docs/source/projects/architecture/figs/notebook_components.svg +++ b/docs/source/projects/architecture/figs/notebook_components.svg @@ -1,596 +1,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - Browser - - - - Notebookserver - - - - Kernel - - - - Notebookfile - - - - - - User - - - - - - - - - - ØMQ - - - - - - - HTTP &Websockets - - - - - - - - - - - - - - - - + + + +
Browser
Browser
Jupyter Server
Jupyter Server
Kernel
Kernel
Notebook file
Noteboo...
HTTP &
Websockets
HTTP &...
ØMQ
ØMQ
User
User
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/source/projects/architecture/figs/other_kernels.png b/docs/source/projects/architecture/figs/other_kernels.png index 067e45d4..c7a69352 100644 Binary files a/docs/source/projects/architecture/figs/other_kernels.png and b/docs/source/projects/architecture/figs/other_kernels.png differ diff --git a/docs/source/projects/architecture/figs/other_kernels.svg b/docs/source/projects/architecture/figs/other_kernels.svg index f57da8dd..af98e0c8 100644 --- a/docs/source/projects/architecture/figs/other_kernels.svg +++ b/docs/source/projects/architecture/figs/other_kernels.svg @@ -1,332 +1,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - $LANGUAGEexecution - - - IPythonJSON, ØMQmachinery - WrapperKernel - - - - - - - - - - - - - - - $LANGUAGEexecution&JSON, ØMQmachinery - - - - - - NativeKernel - - + + + +
$LANGUAGE
execution 
$LANGUA...
IPykernel
JSON, ØMQ
machinery
IPykern...
Wrapper Kernel
Wrapper...
$LANGUAGE execution
&
JSON, ØMQ
machinery
$LANGUA...
Native Kernel
Native...
$LANGUAGE
execution 
$LANGUA...
Xeus
JSON, ØMQ
machinery
Xeus...
Xeus Kernel
Xeus Ke...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/source/projects/architecture/figs/repos_map.png b/docs/source/projects/architecture/figs/repos_map.png new file mode 100644 index 00000000..c34a5337 Binary files /dev/null and b/docs/source/projects/architecture/figs/repos_map.png differ diff --git a/docs/source/projects/architecture/figs/repos_map.svg b/docs/source/projects/architecture/figs/repos_map.svg new file mode 100644 index 00000000..33152962 --- /dev/null +++ b/docs/source/projects/architecture/figs/repos_map.svg @@ -0,0 +1,4 @@ + + + +
nbformat
nbformat
reference implementation of the Notebook format
reference implementatio...
jupyter_server
jupyter_ser...
backend to Jupyter web applications
backend to Jupyter web...
jupyverse
jupyverse
Jupyter server based on FastAPI
Jupyter server based on...
JupyterHub
JupyterHub
Multi-user server for Jupyter notebooks
Multi-user server for J...
nbviewer
nbviewer
nbconvert as a web service
nbconvert as a web s...
nbgrader
nbgrader
assign and grade notebooks
assign and grade no...
jupyter_core
jupyter_...
Jupyter command, config file handling and filesystem locations
Jupyter command, config...
Core API
Core API
jupyter_client
jupyter_cli...
Jupyter protocol client APIs
Jupyter protocol cl...
API
API
SERVERS
SERVERS
EXTENSIONS
EXTENS...
traitlets
traitlets
config system and widgets base layer
config system and widge...
xeus-cling
xeus-cling
C++ kernel based on xeus
C++ kernel based on xeus
xeus-lua
xeus-lua
LUA kernel based on xeus
LUA kernel based on xeus
xeus-sqlite
xeus-sqlite
SQLite kernel based on xeus
SQLite kernel based on...
xeus-python
xeus-python
Python kernel based on xeus
Python kernel based on...
Xeus kernels
Xeus kernels
ipython
ipython
Python execution, magics, and ipython terminal interface
Python execution, magic...
IJulia
IJulia
Julia kernel for Jupyter
Julia kernel for Jupyter
KERNELS
KERNELS
ipykernel
ipykernel
IPython kernel for Jupyter
IPython kernel for Jupy...
IRKernel
IRKernel
R kernel for Jupyter
R kernel for Jupyter
xeus
xeus
native implementation of the Jupyter protocol
native implementation of...
xeus-zmq
xeus-zmq
ZeroMQ middleware for xeus
ZeroMQ middleware for xeus
xeus-lite
xeus-lite
emscripten middleware for xeus
emscripten middleware for...
XEUS FRAMEWORK
XEUS FRAMEWORK
ipywidgets
ipywidgets
backend to Jupyter web applications
backend to Jupyter web...
ipyleaflet
ipyleaflet
A Jupyter - Leaflet.js bridge
A Jupyter - Leaflet.js...
pythreejs
pythreejs
A Jupyter - Three.js bridge
A Jupyter - Three.js br...
bqplot
bqplot
Plotting library for Jupyter notebooks
Plotting library for Ju...
ipyvolume
ipyvolume
3d plotting for Python in the Jupyter notebook
3d plotting for Python...
Python widgets
Python widgets
xwidgets
xwidgets
C++ backend for ipywidgets
C++ backend for ipywidg...
xleaflet
xleaflet
C++ backend for ipyleaflet
C++ backend for ipyleaf...
xplot
xplot
C++ backend for bqplot
C++ backend for bqplot
C++ widgets
C++ widgets
WIDGETS
WIDGETS
nbconvert
nbconvert
Convert notebooks to other formats
Convert notebooks to oth...
nbclient
nbclient
A client library for executing notebooks
A client library for exe...
nbconvert
nbconvert
APPLICATIONS
APPLICAT...
qtconsole
qtconsole
Jupyter Qt console
Jupyter Qt console
jupyter_console
jupyter_console
Jupyter terminal console
Jupyter termina...
Consoles
Consoles
turns Jupyter notebook into standalone applications
turns Jupyter notebook...
Voilà
Voilà
Notebook
Notebook
Jupyter notebook application
Jupyter notebook appl...
JupyterLab
JupyterLab
next-generation web-based
UI for Project Jupyter
next-generation web-based...
Web App
Web App
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/source/projects/education.rst b/docs/source/projects/education.rst index 229a3a8c..f2949a39 100644 --- a/docs/source/projects/education.rst +++ b/docs/source/projects/education.rst @@ -16,5 +16,6 @@ is a book about using Jupyter in teaching and learning. assignments. `Documentation `__ | `Repo `__ + `jupyter4edu `__ GitHub organization hosting community resources for Jupyter in education diff --git a/docs/source/projects/incubator.rst b/docs/source/projects/incubator.rst index 0c11f999..d526019e 100644 --- a/docs/source/projects/incubator.rst +++ b/docs/source/projects/incubator.rst @@ -33,5 +33,6 @@ Jupyter projects in `Binder `_. Just head over to the the online trial. You should see an interactive notebook similar to this one: .. image:: ../_static/_images/showcase.png + :alt: The online trial Jupyter notebook. It begins with a text cell stating that this is a temporary notebook server. It then lists the different incubator projects that are available on the server, with links to demos, documentation and GitHub repo for each. .. _showcase: https://github.com/jupyter-incubator/showcase diff --git a/docs/source/projects/kernels.rst b/docs/source/projects/kernels.rst index a4dfb2ec..dbfaeb95 100644 --- a/docs/source/projects/kernels.rst +++ b/docs/source/projects/kernels.rst @@ -38,15 +38,14 @@ implementation of kernels for Jupyter and provides a number of kernels such as `Documentation `__ | `Repo `__ - `ipykernel `__ + `ipykernel `__ the wrapper around IPython which enables using IPython as a kernel `Repo `__ - `Xeus `__ + `Xeus `__ library facilitating the implementation of kernels for Jupyter. It implements the Jupyter Kernel protocol so developers can focus on implementing the interpreter part of the kernel. - `Documentation `__ | `Repo `__ .. seealso:: diff --git a/docs/source/projects/user-interfaces.rst b/docs/source/projects/user-interfaces.rst index 45d0b680..dc577e39 100644 --- a/docs/source/projects/user-interfaces.rst +++ b/docs/source/projects/user-interfaces.rst @@ -8,12 +8,29 @@ performed using a wide range of programming languages. .. glossary:: + `JupyterLab `__ + Advanced web-based application for authoring documents that combine live-code + with narrative text, equations and visualizations. + `Documentation `__ | + `Repo `__ + `Jupyter Notebook `__ - Web-based application for authoring documents that combine live-code + A web-based application for authoring documents that combine live-code with narrative text, equations and visualizations. `Documentation `__ | `Repo `__ + `Jupyter Desktop `__ + Desktop application based on JupyterLab for authoring documents that combine live-code + with narrative text, equations and visualizations. + `Repo `__ + + `JupyterLite `__ + Installation-free application based on JupyterLab for authoring documents that combine live-code + with narrative text, equations and visualizations. + `Documentation `__ + `Repo `__ + `Jupyter Console `__ Terminal based console for interactive computing. `Documentation `__ | diff --git a/docs/source/reference/ipython.rst b/docs/source/reference/ipython.rst index 8371fddb..fe540aa8 100644 --- a/docs/source/reference/ipython.rst +++ b/docs/source/reference/ipython.rst @@ -4,6 +4,7 @@ IPython .. image:: ../_static/_images/ipy_logo.png :width: 50% :target: https://ipython.org + :alt: IPython Interactive Computing - Home Description diff --git a/docs/source/releases.rst b/docs/source/releases.rst index 52e12f87..ffa0a85f 100644 --- a/docs/source/releases.rst +++ b/docs/source/releases.rst @@ -24,5 +24,5 @@ You can find a changelog at JupyterHub ========== -You can find a list of changelogs in the JupyterHub community within the -`JupyterHub team compass documentation `_. +You can find a changelog at +`the JupyterHub documentation `_. diff --git a/docs/source/running.rst b/docs/source/running.rst index 9308079f..f34d3cfe 100644 --- a/docs/source/running.rst +++ b/docs/source/running.rst @@ -49,7 +49,10 @@ notebooks. Often this will be your home directory. **Notebook Dashboard** + .. Alt text is intentionally left blank because the image content is described thoroughly in the surrounding text. + .. image:: _static/_images/tryjupyter_file.png + :alt: Introducing the Notebook Server's Command Line Options ------------------------------------------------------ @@ -102,24 +105,24 @@ using the ``--help`` flag: Using a command-line interface ------------------------------ -Notebooks can be executed from your terminal using the ``run`` subcommand. It expects notebook paths as input arguments and accepts optional flags to modify the default behavior. +Notebooks can be executed from your terminal using the ``execute`` subcommand. It expects notebook paths as input arguments and accepts optional flags to modify the default behavior. Running a notebook is this easy. .. code:: bash - jupyter run notebook.ipynb + jupyter execute notebook.ipynb You can pass more than one notebook as well. .. code:: bash - jupyter run notebook.ipynb notebook2.ipynb + jupyter execute notebook.ipynb notebook2.ipynb By default, notebook errors will be raised and printed into the terminal. You can suppress them by passing the ``--allow-errors`` flag. .. code:: bash - jupyter run notebook.ipynb --allow-errors + jupyter execute notebook.ipynb --allow-errors For more sophisticated execution options, consider the `papermill `_ library. diff --git a/docs/source/start/index.md b/docs/source/start/index.md index 5ce3510a..9952cc67 100644 --- a/docs/source/start/index.md +++ b/docs/source/start/index.md @@ -49,7 +49,7 @@ The Jupyter Lab interface is a more extensible and composable interactive comput Here's an example of what the JupyterLab interface looks like: -```{image} https://jupyter.org/assets/labpreview.webp +```{image} ../_static/_images/jupyterlab.png ``` ## Next step: install Jupyter locally diff --git a/docs/source/use/jupyter-directories.rst b/docs/source/use/jupyter-directories.rst index 487654fa..26e6f851 100644 --- a/docs/source/use/jupyter-directories.rst +++ b/docs/source/use/jupyter-directories.rst @@ -127,10 +127,8 @@ Runtime files Things like connection files, which are only useful for the lifetime of a particular process, have a runtime directory. -On Linux and other free desktop platforms, these runtime files are stored in -``$XDG_RUNTIME_DIR/jupyter`` by default. On other platforms, it's a -``runtime/`` subdirectory of the user's data directory (second row of the -table above). +These runtime files are stored in a ``runtime/`` subdirectory of the user's +data directory (second row of the table above). An environment variable may also be used to set the runtime directory. diff --git a/docs/source/use/using.rst b/docs/source/use/using.rst index de864452..5f5d0c0f 100644 --- a/docs/source/use/using.rst +++ b/docs/source/use/using.rst @@ -29,7 +29,6 @@ that helps lay out some of your options. .. graphviz:: digraph decide_project { - size="10,4"; graph [fontname = "helvetica", fontsize="18"]; node [fontname = "helvetica", fontsize="18"]; edge [fontname = "helvetica", fontsize="18"]; @@ -90,7 +89,7 @@ that helps lay out some of your options. label="Install a\nlanguage\nkernel", tooltip="How to install kernels", target="_top", color=green, // Local Link - href="../projects/kernels.html] + href="../projects/kernels.html"] // Path labels noinst [ shape=plaintext, diff --git a/docs/source/what_is_jupyter.md b/docs/source/what_is_jupyter.md new file mode 100644 index 00000000..97cfa952 --- /dev/null +++ b/docs/source/what_is_jupyter.md @@ -0,0 +1,359 @@ +# What is Jupyter? + +![The JupyterLab notebook editor, with an open notebook showing an interactive view of the insulin receptor](_static/_images/notebook_insulin_lab_small.png) +**Pictured above:** *A notebook inside JupyterLab, showing an interactive* +*view of the insulin receptor.* + +> 📘 **About:** This document explains fundamental ideas and software inside the Jupyter ecosystem. + +"Jupyter" can mean a lot of things, so let's start from the beginning and +go step-by-step: + +Above all, "Project Jupyter" is a large umbrella project that covers +many different software offerings and tools. That includes [Jupyter Notebook](https://jupyter-notebook.readthedocs.io/en/latest/) +and [JupyterLab](https://jupyterlab.readthedocs.io/en/latest/), +which are both popular notebook-editor programs. **The Jupyter project, and** +**its subprojects, all center around providing tools (and standards) for** +**interactive computing with computational notebooks.** If you're not familiar +with some of those things, you can take a guided tour below that explains each +one from the start. + +The term "Jupyter" is often used as a shorthand to refer to one of those +products or ideas (which might cause confusion). Let's take a look at each piece, +and provide some clarity, below. + +# What is a "Computational Notebook" anyway? + +A famous computer programmer ([Donald Knuth](https://en.wikipedia.org/wiki/Donald_Knuth)) +popularized the idea to combine explanatory plain english text with computer +code, which is commonly called [literate programming](https://en.wikipedia.org/wiki/Literate_programming). +**By adopting this practice, computer programs, as well as other complex** +**information and ideas, could be better explained to a wide range of people.** + +A program written in this way could be printed on paper and shared by hand +as an actual "notebook", but in modern times, they are shared digitally as +"notebook files", and can contain additional rich media like images, 3D models +and interactive figures, along with data and other program outputs. + +By opening a notebook with an editor program like [JupyterLab](https://jupyterlab.readthedocs.io/en/latest/), +you can also run the code inside the notebook. Since a notebook can contain +code that does virtually anything, you can do nearly anything regular software +can do inside of a notebook. For example, a notebook file might be used to: + +- Read spreadsheets (or create them) to build reports about your household spending +- Show proof of your college thesis with interactive graphs and source data +- [Process astronomical data](https://jwst-docs.stsci.edu/jwst-science-calibration-pipeline/jwst-pipeline-notebooks#gsc.tab=0) + from the James Webb Space Telescope (JWST) +- Generate an [image of a black hole](https://numfocus.org/case-studies/first-photograph-black-hole) + by processing telescope data +- Calculate the presence of [gravitational waves]((https://blog.jupyter.org/congratulations-to-the-ligo-and-virgo-collaborations-from-project-jupyter-5923247be019)) + from observatory data + +Those last three are real world examples that demonstrate the scientific +community's usage of computational notebooks. Because scientists, +engineers, and other technical people so often need to perform and communicate +sophisticated calculations to describe their work, these "computational +notebooks" became a very popular way to share their work and ideas. + +Notebooks are not just for NASA scientists either: Students, hobbyists, and +business people commonly use the fast, interactive workflows in JupyterLab to +make notebooks that help solve everyday problems. You can use them to explain +your own ideas to others, to learn, to automate tasks at home or at work, +visualize complex information, and more. + +When someone uses the term "notebook", they might be referring to: + +- A notebook file on their computer +- The idea of combining computer code, explanatory text, images and more into + the "notebook format" +- The "Jupyter Notebook" application, used to author and edit digital notebook + files +- Jupyter's ``.ipynb`` notebook file format (used to save your notebook files + on your computer), which is interpreted by the ``nbformat`` software library + +And the term "Jupyter" might refer to: + +- "Project Jupyter", the overarching umbrella project +- The "Jupyter Notebook" or "JupyterLab" editing programs (or other Jupyter + products) + +The name Jupyter comes from the three programming languages the project +originally supported: Julia (ju), Python (pyt) and R (r). + +# How do the Jupyter notebook-editor programs work? + +It is common for notebook-editor programs like JupyterLab, or Jupyter +Notebook, to share some features and workflows, because they are influenced +by a common set of ideas about computational notebooks, their advantages, +and how best to work with them effectively. + +Let's take a look at some of those ideas. + +## Interactive programming (the REPL) + +In the past, writing programs, running them, and seeing results was commonly +a slower and more deliberative process than it is today. + +As time passed, new techniques were discovered that sped up the process +between writing code, running it, and seeing results. Languages like [Python](https://en.wikipedia.org/wiki/Python_(programming_language)) +were also later introduced that offered some unique advantages over +older languages. + +For instance, Python is an interpreted language, so it does not need to be [compiled](https://en.wikipedia.org/wiki/Compiler) +before it can be run (saving programmers steps and time). It is also a +dynamically-typed language that does not require the programmer to specify +the type of their data ahead of time before using it, which can sometimes +save time and reduce the complexity of code (particularly for smaller, +simpler programs). + +Another programming technique (which is key to the Jupyter notebook-editing +programs) is the Read-Eval-Print-Loop ([REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)), +which allows a programmer to interactively write code, run it, keep their +data and variables intact, then rewrite, re-run, and refine their code +on-the-fly (without losing data after the program finishes running). + +A REPL is so named because the programmer writes snippets of code that are +first read (R), then Evaluated (E) or in other words executed, the results +are printed (P) to some kind of display or output, and that process happens +repeatedly in a loop (L), where the REPL waits until the programmer has +another snippet of code to execute. + +New snippets of code can refer to variables defined in previous Eval steps, +because the REPL keeps objects that were created (by previous runs of the +loop) in-memory, until the user closes their REPL. + +## Kernels + +Notebook editor programs like JupyterLab create a REPL (read more about those +above) for each of your open notebook files, in a language of your choice. In +the Jupyter ecosystem, each of these REPL's is called a kernel, and it holds +the data and objects you create with your notebook code in a long-running +program on your computer (the management and creation of these kernels +is orchestrated by the [Jupyter Server](https://jupyter-server.readthedocs.io/en/latest/#who-s-this-for), +more on that later). + +This is why you don't lose your data and variables when you execute multiple +notebook cells in a row, they stay alive inside the REPL so that you can +continue to use them to explore the data and problem you are investigating +(though if you shut down the Jupyter server that holds the kernels, you will +lose those variables). + +The kernels that run in the background for each of your notebooks are what +power the fast, exploratory programming workflows that Jupyter notebook +editor programs excel at. + +## Multiple programs, one experience (client-server architecture) + +Most Notebook editor programs in Project Jupyter, like JupyterLab, may seem like +a single experience, but when you run JupyterLab on your laptop, there are +actually several programs running independently that all coordinate with +each other to offer you the notebook editing experience you may already be +familiar with. + +This might seem like an unnecessary background detail, but some clarity on +the inner workings can help demystify your notebook authoring experience, and +open up new features, ideas and workflows that you can take advantage of. + +A many-pieces (modular) approach also has advantages for people using Jupyter +software, and to the people who write it. + +Let's look at some of the pieces: + +- JupyterLab's interface is a web app that you open in a browser program + like FireFox or Google Chrome (websites themselves commonly have code + that defines their behavior, and JupyterLab's interface is no exception). + +- [Jupyter Server](https://jupyter-server.readthedocs.io/en/latest/#who-s-this-for) + runs in the background, and it orchestrates the creation, management of, and + communication with, your notebook kernels while you're running your notebooks. + +- Jupyter kernels themselves are independent programs (operating system + processes), and each one is its own REPL in whatever language you + requested (commonly Python, though hundreds of other languages and + kernels are [also available](https://docs.jupyter.org/en/latest/projects/kernels.html)). + +With this design, any program (that you enable) can talk to your kernels +using common internet communication technologies like HTTP. This gives +you the power to edit, view, share, and manipulate your data across many +different programs. One kernel can even connect to multiple editing programs +simultaneously! (Similarly, in JupyterLab, you can connect a notebook and a +console to the same kernel!) + +Project Jupyter actually defines a [standard](https://jupyter-protocol.readthedocs.io/en/latest/messaging.html) +that other programs can follow that will allow them to hook into your +kernels in virtually any way you can imagine. You can invent new editing +and viewing experiences for your data this way, using the interactive +computing capabilities provided by the kernels. + +## Benefits of a many-piece design + +By breaking up a program like JupyterLab into multiple component pieces, you +can customize the software to meet your needs. If one piece is missing something, +you can replace it with a custom version made by yourself or another person to +add whatever features you would like to see. + +You can also invent completely new experiences using those pieces that the +designers may not have imagined when they started, and they can often inter- +operate seamlessly with existing Jupyter software. + +Because Jupyter Server provides kernel communication and management features +in a cohesive, self-contained package, for instance, new notebook editor +programs can focus solely on adding new interface and editing experiences, +leaving the task of creating and managing new kernels completely up to the +Jupyter Server. + +[JupyterCAD](https://jupytercad.readthedocs.io/en/latest/) is a 3D modeling +tool built on top of Jupyter software, for instance, and there are +[other examples too](https://github.com/glue-viz/glue-jupyter). + +![The JupyterCAD program](_static/_images/jupytercad-screenshot.jpg) +**Pictured above:** *The JupyterCAD program.* + +## Talking to Kernels (The Jupyter Protocol) + +Anyone can make new software that talks to Jupyter's kernels (read more +about those above), by using the [Jupyter Protocol](https://jupyter-client.readthedocs.io/en/latest/messaging.html). +The protocol provides a standardized blueprint for passing information +back and forth between the kernels and other software. + +By implementing the designs described in the Jupyter Protocol, you could +invent a completely new interactive programming experience, or add support +for a new programming language to Jupyter. + +Because Project Jupyter is free and open, it encourages anyone to explore +new ways of working with their notebooks and kernels, and likes to offer +compatibility and interoperation with other software. + +# What else should I know about Project Jupyter? + +Jupyter software is free and open-source, developed by a global community +of volunteers and contributors, available for the benefit of all. + +Project Jupyter welcomes people from all backgrounds and with many types +of skills (not just software!) so we encourage you to join us! You can +share feedback about your experiences directly with the people who make +Jupyter software, or volunteer and contribute to help Jupyter in many +different ways, like: + +- Testing newly released versions +- Writing tutorials +- Adding software features +- Hosting the [weekly video meetings](https://jupyter.org/community#live-events) +- Helping others in the community + - Ask for help or give help at the [Jupyter Discourse Forums](https://discourse.jupyter.org/) +- ...and more! + +The project is split into largely independent subprojects which handle +different aspects of Jupyter software and the community. A central council, +the [Jupyter Executive Council](https://jupyter.org/governance/executive_council.html), +makes decisions about project-wide goals and policies, while different +subprojects handle the actual development of the various software components. + +Some subprojects take care of broader topics, such as the [Accessibility](https://jupyter-accessibility.readthedocs.io/en/latest/), +[Security](https://jupyter.org/security), [Community](https://docs.jupyter.org/en/latest/community/content-community.html), and [Documentation](https://github.com/jupyter/docs-team-compass) projects. + +# A (Partial) Tour of the Jupyter Universe + +In the following sections, we are going to look at some popular components of +the Jupyter ecosystem. This is *not* a comprehensive reference of every aspect +of Jupyter, but rather a big-picture summary that should help illustrate some +important parts that were discussed earlier. + +If you are completely new to *Jupyter*, the project's [About](https://docs.jupyter.org/en/latest/#sub-project-documentation) +page is good reading that will introduce you to many of the different subprojects. + +If you want to know more about the organizational structure, check out the +[Governance](https://jupyter.org/governance/overview.html) pages. + +And if you would like to contribute to the project, have a look at the +[Get Involved](https://jupyter.org/community#join-the-jupyter-community) page. + +The graph below presents the best known software components of the Project. + +Connections and groups in this diagram are not formal relationships, but +simple indicators to help us draw the big picture in the next sections. + +![Diagram of well known Jupyter software](_static/_images/jupyter_software_diagram_alpha.png) + +### Notebook Editor Programs + +- The [JupyterLab](https://jupyterlab.readthedocs.io/en/latest/) notebook editor +- [Jupyter Notebook](https://jupyter-notebook.readthedocs.io/en/stable/) notebook editor + +Two popular notebook-editor programs made by Project Jupyter are Jupyter-Notebook and +JupyterLab, though there are others. Which one you choose to use is +mostly a matter of preference (both Notebook and Lab provide many of the +same capabilities for editing and running notebooks): + +- Jupyter Notebook offers a simplified, lightweight notebook authoring + experience + +- JupyterLab offers a more customizable, feature-rich, tabbed multi-notebook + editing environment, and has additional tools like a customizable layout + and system console (a common tool used by programmers) + +- And more! + +A professor, for instance, might use JupyterLab for their daily work as a data +analyst, and Jupyter Notebook while teaching to provide a simpler, more focused +view of the notebook's content to their students. + +### ipython + +- [The IPython REPL](https://ipython.readthedocs.io/en/stable/index.html) + +A long time ago, a precursor to Jupyter was created, called `ipython` (A +soon to be released document "The History of Jupyter" will cover this in +more detail). It provides advanced REPL features that are still used today +in Jupyter software, as it is the default Python kernel bundled with +JupyterLab and Jupyter Notebook. + +`ipython` makes some additional commands available that you can type directly +alongside your Python code in your notebook cells. Read more about some of +these features below: + +- [Interactive shell](https://ipython.readthedocs.io/en/stable/interactive/tutorial.html) +- [Magic commands](https://ipython.readthedocs.io/en/stable/interactive/magics.html) + +For more details on IPython features check [`docs.jupyter.org > Projects > IPython`](https://docs.jupyter.org/en/latest/projects/ipython_projects.html). + +### The notebook format + +- [The nbformat software library](https://nbformat.readthedocs.io) + +Jupyter uses the `.ipynb` file format to store notebook files on your computer +(where the data and outputs of your notebook reside for long term storage). +The .ipynb format is interpreted and modified by the nbformat software library. + +The `.ipynb` format is a type of json document, which holds your notebook cells, +program outputs, and metadata inside a structured text file. + +### JupyterHub + +- [JupyterHub for multi-user setups](https://jupyterhub.readthedocs.io) + +JupyterHub provides a multi-user management system where many different people +can log in and use their own isolated notebook editor program and environment. + +With JupyterHub, editing and running notebook files is still performed by an +editor program like Lab or Notebook. The Hub is responsible for authenticating +users and providing them their corresponding Lab/Notebook instance connection. + +JupyterHub can be set up in different system configurations: + +- In a single computer +- In a cluster of computers +- In containers in the cloud + +JupyterHub is quite flexible for many different multi-user scenarios. + +### Interactive Buttons, Sliders and more with ipywidgets + +- [Jupyter Widgets (AKA ipywidgets)](https://ipywidgets.readthedocs.io/en/latest/) + +Jupyter Widgets (also called ipywidgets) provides interactive interface +elements that you can add directly into your notebooks. + +> 📘 **Note:** The subproject was renamed to Jupyter-Widgets, but Jupyter-Widgets +> and IPyWidgets are actually the same thing. To avoid breaking compatibility with +> older code, the software library is still called `ipywidgets`. diff --git a/readthedocs.yml b/readthedocs.yml deleted file mode 100644 index b9eadb80..00000000 --- a/readthedocs.yml +++ /dev/null @@ -1,4 +0,0 @@ -conda: - file: docs/environment.yml -python: - version: 3 diff --git a/setup.py b/setup.py index 6ac4798a..9d7d294b 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ setup_args = dict( name = 'jupyter', - version = '1.1.0', + version = '2.0.0.dev', description = "Jupyter metapackage. Install all the Jupyter components in one go.", long_description = """Install the Jupyter system, including the notebook, qtconsole, and the IPython kernel.""", author = "Jupyter Development Team", @@ -30,6 +30,7 @@ 'nbconvert', 'ipykernel', 'ipywidgets', + 'jupyterlab', ], url = "http://jupyter.org", license = "BSD", diff --git a/tbump.toml b/tbump.toml new file mode 100644 index 00000000..d1a33b6a --- /dev/null +++ b/tbump.toml @@ -0,0 +1,41 @@ +# Uncomment this if your project is hosted on GitHub: +# github_url = "https://github.com///" + +[version] +current = "2.0.0.dev" + +# Example of a semver regexp. +# Make sure this matches current_version before +# using tbump +regex = ''' + (?P\d+) + \. + (?P\d+) + \. + (?P\d+) + (?P.*) + ''' + +[git] +message_template = "Bump to {new_version}" +tag_template = "v{new_version}" + +# For each file to patch, add a [[file]] config +# section containing the path of the file, relative to the +# tbump.toml location. +[[file]] +src = "setup.py" + +# You can specify a list of commands to +# run after the files have been patched +# and before the git commit is made + +# [[before_commit]] +# name = "check changelog" +# cmd = "grep -q {new_version} Changelog.rst" + +# Or run some commands after the git tag and the branch +# have been pushed: +# [[after_push]] +# name = "publish" +# cmd = "./publish.sh"