Skip to content

Do not merge: CircleCI work for issue3036 #3169

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 33 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
a68ad6a
Refactoring to one JS package
Apr 8, 2021
e19d480
Update packaging
Apr 9, 2021
83e61de
Load plotly asynchronously
Apr 9, 2021
1bba54f
Fix packaging from scratch
Apr 9, 2021
01def03
Update doc
Apr 9, 2021
fc96705
Update CI
Apr 9, 2021
2ca063f
Fix setup dependencies
Apr 9, 2021
1dc74ca
Fix linter
Apr 9, 2021
8a29e75
Correct setup warning
Apr 9, 2021
ae247b0
Modernize CI
Apr 9, 2021
2f4d638
Back to lockfile v1
Apr 9, 2021
410c760
Increase executor RAM
Apr 9, 2021
7d0aaee
Install jupyterlab in tox env for packaging JS code
Apr 9, 2021
a41ab2b
Add jupyterlab in tox env of plotly pkg
Apr 9, 2021
c7e59b0
Update npm package-lock
Apr 9, 2021
ab9feef
Install jupyterlab with tox in root python
Apr 9, 2021
71fe11c
Skip building JS assets except in plotlyjs_dev_build
Apr 9, 2021
b2e5292
Condition packaged data on skip npm
Apr 9, 2021
fea5475
Fix update_package_data
Apr 9, 2021
73647ee
Reduce number of CI changes
Apr 9, 2021
191a548
Fix typo
fcollonval Apr 10, 2021
dc9c8df
Merge remote-tracking branch 'origin' into fcollonval/issue3036
jonmmease Apr 23, 2021
872f4ff
Store npm logs as build artifacts,
jonmmease Apr 23, 2021
c2a43db
Disable other CI jobs while working on dev build
jonmmease Apr 23, 2021
1f6fc01
Add JupyterLab requirement
jonmmease Apr 23, 2021
1191751
bump resource class
jonmmease Apr 23, 2021
4580723
Bump to 3.8, with jupyterlab in optional requirements.txt
jonmmease Apr 23, 2021
aadcbfa
optional requirements.txt!
jonmmease Apr 23, 2021
e99ace1
Re-enable all circleci jobs
jonmmease Apr 23, 2021
792f053
Rework chart studio job
jonmmease Apr 23, 2021
eaac04c
use venv for chart-studio job
jonmmease Apr 23, 2021
79f4c16
Activate venv for chart-studio job
jonmmease Apr 23, 2021
e57ac9e
Re-enable all circleci jobs
jonmmease Apr 23, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 38 additions & 14 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,27 +96,35 @@ jobs:
python_36_core:
docker:
- image: circleci/python:3.6-stretch-node-browsers
environment:
SKIP_NPM: 1
steps:
- test_core:
py: "36"

python_37_core:
docker:
- image: circleci/python:3.7-stretch-node-browsers
environment:
SKIP_NPM: 1
steps:
- test_core:
py: "37"

python_38_core:
docker:
- image: circleci/python:3.8-buster-node-browsers
environment:
SKIP_NPM: 1
steps:
- test_core:
py: "38"

python_39_core:
docker:
- image: circleci/python:3.9-buster-node-browsers
environment:
SKIP_NPM: 1
steps:
- test_core:
py: "39"
Expand Down Expand Up @@ -154,6 +162,8 @@ jobs:
python_38_orca:
docker:
- image: circleci/python:3.8-buster-node-browsers
environment:
SKIP_NPM: 1
steps:
- test_orca:
py: "38"
Expand All @@ -165,6 +175,7 @@ jobs:
environment:
PERCY_ENABLED: True
PERCY_PROJECT: plotly/plotly.py
SKIP_NPM: 1

steps:
- checkout
Expand Down Expand Up @@ -196,28 +207,47 @@ jobs:
python_37_chart_studio:
docker:
- image: circleci/python:3.7-stretch-node-browsers
environment:
SKIP_NPM: 1

steps:
- checkout
- run:
name: Install dependencies
command: "cd packages/python; sudo pip install -r ./chart-studio/test_requirements/requirements_37.txt"
command: |
sudo pip install --upgrade virtualenv
python -m venv venv || virtualenv venv
. venv/bin/activate

cd packages/python
pip install -r ./chart-studio/test_requirements/requirements_37.txt
pip install -e ./plotly
- run:
name: Tests
command: "cd packages/python/chart-studio; pytest -x chart_studio/tests/"
command: |
. venv/bin/activate
cd packages/python/chart-studio; pytest -x chart_studio/tests/

no_output_timeout: 20m

plotlyjs_dev_build:
resource_class: large
docker:
- image: circleci/python:3.7-stretch-node-browsers
- image: circleci/python:3.8-buster-node-browsers
environment:
LANG: en_US.UTF-8

steps:
- checkout
- run:
name: Display versions
command: |
npm --version
nodejs --version
python --version
- run:
name: Install dependencies
command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_core.txt black inflect"
command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_38_optional.txt black inflect"
- run:
name: Update jupyterlab-plotly version
command: "cd packages/python/plotly; python setup.py updateplotlywidgetversion"
Expand All @@ -232,7 +262,6 @@ jobs:
name: Commit
command: |
cd packages/python/plotly
sudo mkdir /dist
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
git add -A
Expand All @@ -243,25 +272,20 @@ jobs:
command: |
cd packages/python/plotly
python setup.py sdist
sudo cp dist/* /dist
when: always
- run:
name: npm-pack widget
command: |
cd packages/javascript/jupyterlab-plotly/
npm install webpack
npm pack
sudo cp ./jupyterlab-plotly* /dist
when: always
- store_artifacts:
path: packages/python/plotly/dist
- store_artifacts:
path: /home/circleci/.npm/_logs/

build-doc:
resource_class: xlarge
docker:
# specify the version you desire here
# use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers`
- image: circleci/python:3.7-stretch-node-browsers
environment:
SKIP_NPM: 1

steps:
- add_ssh_keys:
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,7 @@ doc/python/.mapbox_token
doc/.ipynb_checkpoints
tags
doc/check-or-enforce-order.py

packages/javascript/plotlywidget/lib/
packages/python/plotly/plotlywidget/labextension/
packages/python/plotly/plotlywidget/nbextension/index.js*
38 changes: 19 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Our recommended IDE for Plotly’s Python graphing library is Dash Enterprise’

`pip install plotly==4.14.3`

Inside [Jupyter notebook](https://jupyter.org/install) (installable with `pip install "notebook>=5.3" "ipywidgets>=7.5"`):
Inside [Jupyter](https://jupyter.org/install) (installable with `pip install "jupyterlab>=3" "ipywidgets>=7.6"`):

```python
import plotly.graph_objects as go
Expand Down Expand Up @@ -95,37 +95,22 @@ or conda.
conda install -c plotly plotly=4.14.3
```

### Jupyter Notebook Support

For use in the Jupyter Notebook, install the `notebook` and `ipywidgets`
packages using `pip`:

```
pip install "notebook>=5.3" "ipywidgets>=7.5"
```

or `conda`:

```
conda install "notebook>=5.3" "ipywidgets>=7.5"
```

### JupyterLab Support

For use in JupyterLab, install the `jupyterlab` and `ipywidgets`
packages using `pip`:

```
pip install jupyterlab "ipywidgets>=7.5"
pip install jupyterlab>=3 "ipywidgets>=7.6"
```

or `conda`:

```
conda install jupyterlab "ipywidgets>=7.5"
conda install jupyterlab>=3 "ipywidgets>=7.6"
```

Then run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed):
For JupyterLab 2 or earlier, run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed):

```
# Basic JupyterLab renderer support
Expand All @@ -137,6 +122,21 @@ jupyter labextension install @jupyter-widgets/jupyterlab-manager plotlywidget@4.

Please check out our [Troubleshooting guide](https://plotly.com/python/troubleshooting/) if you run into any problems with JupyterLab.

### Jupyter Notebook Support

For use in the Jupyter Notebook, install the `notebook` and `ipywidgets`
packages using `pip`:

```
pip install "notebook>=5.3" "ipywidgets>=7.5"
```

or `conda`:

```
conda install "notebook>=5.3" "ipywidgets>=7.5"
```

### Static Image Export

plotly.py supports [static image export](https://plotly.com/python/static-image-export/),
Expand Down
6 changes: 3 additions & 3 deletions doc/python/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,16 +144,16 @@ For use in [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/), install t
packages using `pip`:

```
$ pip install jupyterlab "ipywidgets>=7.5"
$ pip install jupyterlab "ipywidgets>=7.6"
```

or `conda`:

```
$ conda install jupyterlab "ipywidgets>=7.5"
$ conda install jupyterlab "ipywidgets>=7.6"
```

Then run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed):
For JupyterLab 2 or earlier, run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed):

```
# JupyterLab renderer support
Expand Down
4 changes: 2 additions & 2 deletions doc/python/renderers.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ fig

> To be precise, figures will display themselves using the current default renderer when the two following conditions are true. First, the last expression in a cell must evaluate to a figure. Second, `plotly.py` must be running from within an `IPython` kernel.

**In many contexts, an appropriate renderer will be chosen automatically and you will not need to perform any additional configuration.** These contexts include the classic [Jupyter Notebook](https://jupyter.org/), [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (provided the `jupyterlab-plotly` JupyterLab extension is installed), [Visual Studio Code notebooks](https://code.visualstudio.com/docs/python/jupyter-support), [Google Colaboratory](https://colab.research.google.com/notebooks/intro.ipynb), [Kaggle](https://www.kaggle.com/kernels) notebooks, [Azure](https://notebooks.azure.com/) notebooks, and the [Python interactive shell](https://www.python.org/shell/).
**In many contexts, an appropriate renderer will be chosen automatically and you will not need to perform any additional configuration.** These contexts include the classic [Jupyter Notebook](https://jupyter.org/), [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (provided the `plotlywidget` JupyterLab extension is installed), [Visual Studio Code notebooks](https://code.visualstudio.com/docs/python/jupyter-support), [Google Colaboratory](https://colab.research.google.com/notebooks/intro.ipynb), [Kaggle](https://www.kaggle.com/kernels) notebooks, [Azure](https://notebooks.azure.com/) notebooks, and the [Python interactive shell](https://www.python.org/shell/).

Additional contexts are supported by choosing a compatible renderer including the [IPython console](https://docs.spyder-ide.org/ipythonconsole.html), [QtConsole](https://qtconsole.readthedocs.io/en/stable/), [Spyder](https://www.spyder-ide.org/), and more.

Expand Down Expand Up @@ -169,7 +169,7 @@ This renderer may be useful when working with notebooks than contain lots of lar

###### `plotly_mimetype`

The `plotly_mimetype` renderer creates a specification of the figure (called a MIME-type bundle), and requests that the current user interface displays it. User interfaces that support this renderer include [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (requires the [`jupyterlab-plotly`](https://www.npmjs.com/package/jupyterlab-plotly) extension), [nteract](https://nteract.io/), and the Visual Studio Code [notebook interface](https://code.visualstudio.com/docs/python/jupyter-support).
The `plotly_mimetype` renderer creates a specification of the figure (called a MIME-type bundle), and requests that the current user interface displays it. User interfaces that support this renderer include [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (requires the [`plotlywidget`](https://www.npmjs.com/package/plotlywidget) extension), [nteract](https://nteract.io/), and the Visual Studio Code [notebook interface](https://code.visualstudio.com/docs/python/jupyter-support).

###### `jupyterlab`, `nteract`, and `vscode`
These are aliases for `plotly_mimetype` since this renderer is a good choice when working in JupyterLab, nteract, and the Visual Studio Code notebook interface. Note that in VSCode Notebooks, the version of Plotly.js that is used to render is provided by the [vscode-python extension](https://code.visualstudio.com/docs/languages/python) and often trails the latest version by several weeks, so the latest features of `plotly` may not be available in VSCode right away. The situation is similar for Nteract.
Expand Down
13 changes: 10 additions & 3 deletions doc/python/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,23 @@ IFrame(snippet_url + 'renderers', width='100%', height=630)

### JupyterLab Problems

In order to use `plotly` in JupyterLab, you *must have the extensions installed* as detailed in the [Getting Started guide](/python/getting-started). There are two extensions: `jupyterlab-plotly` for rendering figures with `fig.show()` and `plotlywidget` for the `FigureWidget`. Please note that the *extension version matters*: the extension versions in the [Getting Started](/python/getting-started) guide match the version of `plotly` at the top of the guide and so they should be installed together.
In order to use `plotly` in JupyterLab, you *must have the extensions installed* as detailed in the [Getting Started guide](/python/getting-started). There is one extension: `plotlywidget`. Please note that the *extension version matters*: the extension versions in the [Getting Started](/python/getting-started) guide match the version of `plotly` at the top of the guide and so they should be installed together. Note also that these extensions are meant to work with JupyterLab 1 or above but not 0.x.

To list your current extensions, run the following command in a terminal shell **from the same environment as JupyterLab was launched**:

```bash
$ jupyter labextension list
```

If you have [installed additional python environments](https://ipython.readthedocs.io/en/stable/install/kernel_install.html) (or kernels) to use with JupyterLab, or if you are using a centrally hosted JupyterLab installation, you need to make sure that the extensions are installed in the python environment used to launch JupyterLab (the "server" environment). If you accidentally installed the extensions (and run the command above) in one of the additional python environments ("processing" environments), then it is possible for the command above to list the correct extensions but for them to not be available in the JupyterLab front-end you have loaded in your browser. To check if this is the problem, you can [look at the active extension list through your browser via the JupyterLab Extension Manager](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html#using-the-extension-manager), which will always list the extensions in the "server" environment. To summarize: if you use JupyterLab with multiple python environments, the extensions must be installed in the "server" environment, and the plotly python library must be installed in each "processing" environment that you intend to use.
If you have [installed additional python environments](https://ipython.readthedocs.io/en/stable/install/kernel_install.html) (or kernels) to use with JupyterLab, or if you are using a centrally hosted JupyterLab installation, you need to make sure that the extensions are installed in the python environment used to launch JupyterLab (the "server" environment). If you accidentally installed the extensions (and run the command above) in one of the additional python environments ("processing" environments), then it is possible for the command above to list the correct extensions but for them to not be available in the JupyterLab front-end you have loaded in your browser. To check if this is the problem, you can [look at the active extension list through your browser via the JupyterLab Extension Manager](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html#using-the-extension-manager), which will always list the extensions in the "server" environment. To summarize: if you use JupyterLab with multiple python environments, the extensions must be installed in the "server" environment, and the plotly python library must be installed in each "processing" environment that you intend to use.

> Version 4.14.3 or earlier needed two extensions (`jupyterlab-plotly` and `plotlywidget`) to be installed manually running:

```bash
$ jupyter labextension install jupyterlab-plotly @jupyter-widgets/jupyterlab-manager plotlywidget
```

#### JupyterLab 2 and earlier

If you have the correct version of the extensions installed and active in your active JupyterLab sessions and are still seeing problems, the issue may clear up if you rebuild JupyterLab. This shouldn't be required in principle but many users have resolved their issues this way. To rebuild JupyterLab, shut down JupyterLab and run the following command in a terminal shell **from the same environment as JupyterLab was launched**:

Expand All @@ -84,7 +92,6 @@ $ jupyter lab build
To uninstall your Plotly extensions prior to reinstalling them, run the following commands in a terminal shell before reinstalling them by following the instructions in the [Getting Started guide](/python/getting-started):

```bash
$ jupyter labextension uninstall jupyterlab-plotly
$ jupyter labextension uninstall plotlywidget
```

Expand Down
5 changes: 0 additions & 5 deletions packages/javascript/jupyterlab-plotly/README.md

This file was deleted.

Loading