You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+14-1Lines changed: 14 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,10 +4,23 @@ This project adheres to [Semantic Versioning](http://semver.org/).
4
4
5
5
## Unreleased
6
6
7
+
## [6.3.1] - 2025-10-02
8
+
9
+
### Updated
10
+
- Update Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js [release notes](https://github.com/plotly/plotly.js/releases) for more information. [[#5357](https://github.com/plotly/plotly.py/pull/5357)]. Notable changes include:
11
+
- Fix issue preventing Scattergl plots with text elements from rendering [[plotly.js#7563](https://github.com/plotly/plotly.js/pull/7563)]
12
+
- Use native legends when converting from matplotlib [[#5312](https://github.com/plotly/plotly.py/pull/5312)], with thanks to @robertoffmoura to the contribution!
13
+
- Allow `shared_yaxes` to work with secondary axes [[#5180](https://github.com/plotly/plotly.py/pull/5180)], with thanks to @gmjw for the contribution!
14
+
15
+
### Fixed
16
+
- Fix issue where width/height in plot layout were not respected during Kaleido image export [[#5325](https://github.com/plotly/plotly.py/pull/5325)]
17
+
- Fix typo in default argument to `_ternary_contour.py`[[#5315](https://github.com/plotly/plotly.py/pull/5315)], with thanks to @Lexachoc for the contribution!
18
+
- Fix incorrect `fig.show()` behavior when `ipython` is installed [[#5258](https://github.com/plotly/plotly.py/pull/5258)]
19
+
7
20
## [6.3.0] - 2025-08-12
8
21
9
22
### Updated
10
-
- Updated Plotly.js from version 3.0.1 to version 3.1.0. See the plotly.js [release notes](https://github.com/plotly/plotly.js/releases) for more information. [[#5318](https://github.com/plotly/plotly.py/pull/5318)]
23
+
- Updated Plotly.js from version 3.0.1 to version 3.1.0. See the Plotly.js [release notes](https://github.com/plotly/plotly.js/releases) for more information. [[#5318](https://github.com/plotly/plotly.py/pull/5318)]
11
24
12
25
### Added
13
26
- Exposed `plotly.io.get_chrome()` as a function which can be called from within a Python script. [[#5282](https://github.com/plotly/plotly.py/pull/5282)]
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -120,6 +120,20 @@ you can install all packages with:
120
120
pip install -e '.[dev]'
121
121
```
122
122
123
+
If you're testing local changes in Jupyter Lab or Jupyter Notebook, you'll want to run these commands when you're setting up your development environment:
124
+
```bash
125
+
pip install jupyter
126
+
jupyter labextension develop .
127
+
```
128
+
If you don't run that command, your figure will not render in the Jupyter Lab/ Jupyter Notebook editors.
129
+
130
+
If you're changing any of the code under the `js/` directory, you'll also want to run these commands:
131
+
```
132
+
cd js/
133
+
npm ci
134
+
npm run build
135
+
```
136
+
123
137
These commands also create an *editable install* of plotly.py
124
138
so that you can test your changes iteratively without having to rebuild the plotly.py package explicitly;
The `full_build` job in the `release_build` workflow in CircleCI produces a tarball of artifacts `output.tgz` which you should download and decompress, which will give you a directory called `output`. The filenames contained within will contain version numbers.
84
+
print(plotly.__version__) # Make sure version is correct
To locally install the PyPI dist, make sure you have an environment with JupyterLab installed (maybe one created with `conda create -n condatest python=3.10 jupyter anywidget pandas`):
90
+
Once these are verified working, you can move on to publishing the release.
### Merge the release PR and make a GitHub release
48
93
49
-
You'll want to check, in both Lab and Notebook, **in a brand new notebook in each** so that there is no caching of previous results, that `go.Figure()` and `go.FigureWidget()` work without error.
94
+
- Merge the pull request you created above into `main`
95
+
- Go to https://github.com/plotly/plotly.py/releases and "Draft a new release"
96
+
- Enter the `vX.Y.Z` tag you created already above and make "Release title" the same string as the tag.
97
+
- Copy the changelog section for this version into "Describe this release"
98
+
- Upload the build artifacts downloaded in the previous step (`.tar` and `.whl`)
50
99
51
-
### Publishing
100
+
### Publishing to PyPI
52
101
53
-
Once you're satisfied that things render in Lab and Notebook in Widget and regular mode,
54
-
you can publish the artifacts. **You will need special credentials from Plotly leadership to do this.**.
102
+
The final step is to publish the release to PyPI. **You will need special permissions from Plotly leadership to do this.**.
55
103
104
+
You must install first install [Twine](https://pypi.org/project/twine/) (`pip install twine`) if not already installed.
56
105
57
106
Publishing to PyPI:
58
107
```bash
59
108
(plotly_dev) $ cd path/to/output
60
109
(plotly_dev) $ twine upload plotly-X.Y.Z*
61
110
```
62
111
63
-
### Merge the PR and make a Release
64
-
65
-
1. Merge the pull request you created above into `main`
66
-
2. Go to https://github.com/plotly/plotly.py/releases and "Draft a new release"
67
-
3. Enter the `vX.Y.Z` tag you created already above and make "Release title" the same string as the tag.
68
-
4. Copy the changelog section for this version as the "Describe this release"
112
+
You will be prompted to enter an API token; this can be generated in your PyPI account settings.
113
+
Your account must have permissions to publish to the `plotly` project on PyPI.
69
114
70
115
### Update documentation site
71
116
@@ -76,18 +121,18 @@ Publishing to PyPI:
76
121
start by doing it first if not. Then merge `main` into `doc-prod` to deploy the doc related
77
122
to features in the release.
78
123
3. in a clone of the [`graphing-library-docs` repo](https://github.com/plotly/graphing-library-docs):
79
-
1. bump the version of Plotly.py in `_data/pyversion.json`
80
-
2. bump the version of Plotly.js with `cd _data && python get_plotschema.py <PLOTLY.JS VERSION>` fixing any errors that come up.
81
-
- If Plotly.js contains any new traces or trace or layout attributes, you'll get a warning `“missing key in attributes: <attribute-name>`. To resolve, add the attribute to the relevant section in `/_data/orderings.json` in the position you want it to appear in the reference docs.
124
+
1. bump the version of plotly.py in `_data/pyversion.json`
125
+
2. bump the version of plotly.js with `cd _data && python get_plotschema.py <PLOTLY.JS VERSION>` fixing any errors that come up.
126
+
- If plotly.js contains any new traces or trace or layout attributes, you'll get a warning `“missing key in attributes: <attribute-name>`. To resolve, add the attribute to the relevant section in `/_data/orderings.json` in the position you want it to appear in the reference docs.
82
127
3. rebuild the Algolia `schema` index with `ALGOLIA_API_KEY=<key> make update_ref_search`
83
128
4. Rebuild the Algolia `python` index with `ALGOLIA_API_KEY=<key> make update_python_search`
84
129
5. Commit and push the changes to `master` in that repo
85
130
86
131
### Notify Stakeholders
87
132
88
-
* Post an announcement to the Plotly Python forum, with links to the README installation instructions and to the CHANGELOG.
133
+
* Post an announcement to the [Plotly Python forum](https://community.plotly.com/c/plotly-python/5), with links to the README installation instructions and to the CHANGELOG.
89
134
* Update the previous announcement to point to this one
90
-
* Update the Github Release entry and CHANGELOG entry to have the nice title and a link to the announcement
135
+
* Update the GitHub Release entry and CHANGELOG entry to have the nice title and a link to the announcement
91
136
* Follow up on issues resolved in this release or forum posts with better answers as of this release
92
137
93
138
## Release process - Release *Candidate* of `plotly` package
Copy file name to clipboardExpand all lines: codegen/resources/plot-schema.json
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -4008,7 +4008,7 @@
4008
4008
"valType": "string"
4009
4009
},
4010
4010
"type": {
4011
-
"description": "Sets the layer type, that is the how the layer data set in `source` will be rendered With `sourcetype` set to *geojson*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. but note that *line* and *fill* are not compatible with Point GeoJSON geometries. With `sourcetype` set to *vector*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. With `sourcetype` set to *raster* or `*image*`, only the *raster* value is allowed.",
4011
+
"description": "Sets the layer type, that is the how the layer data set in `source` will be rendered With `sourcetype` set to *geojson*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. but note that *line* and *fill* are not compatible with Point GeoJSON geometries. With `sourcetype` set to *vector*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. With `sourcetype` set to *raster* or *image*, only the *raster* value is allowed.",
4012
4012
"dflt": "circle",
4013
4013
"editType": "plot",
4014
4014
"valType": "enumerated",
@@ -4414,7 +4414,7 @@
4414
4414
"valType": "string"
4415
4415
},
4416
4416
"type": {
4417
-
"description": "Sets the layer type, that is the how the layer data set in `source` will be rendered With `sourcetype` set to *geojson*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. but note that *line* and *fill* are not compatible with Point GeoJSON geometries. With `sourcetype` set to *vector*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. With `sourcetype` set to *raster* or `*image*`, only the *raster* value is allowed.",
4417
+
"description": "Sets the layer type, that is the how the layer data set in `source` will be rendered With `sourcetype` set to *geojson*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. but note that *line* and *fill* are not compatible with Point GeoJSON geometries. With `sourcetype` set to *vector*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. With `sourcetype` set to *raster* or *image*, only the *raster* value is allowed.",
4418
4418
"dflt": "circle",
4419
4419
"editType": "plot",
4420
4420
"valType": "enumerated",
@@ -47932,7 +47932,7 @@
47932
47932
"valType": "number"
47933
47933
},
47934
47934
"source": {
47935
-
"description": "Specifies the data URI of the image to be visualized. The URI consists of \"data:image/[<media subtype>][;base64],<data>\"",
47935
+
"description": "Specifies the data URI of the image to be visualized. The URI consists of \"data:image/[<media subtype\\\\>][;base64\\\\],<data\\\\>\"",
47936
47936
"editType": "calc",
47937
47937
"valType": "string"
47938
47938
},
@@ -53288,7 +53288,7 @@
53288
53288
]
53289
53289
},
53290
53290
"hovertemplate": {
53291
-
"description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over dimensions. Note that `*categorycount`, *colorcount* and *bandcolorcount* are only available when `hoveron` contains the *color* flagFinally, the template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `<extra>` is displayed in the secondary box, for example `<extra>%{fullData.name}</extra>`. To hide the secondary box completely, use an empty tag `<extra></extra>`.",
53291
+
"description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over dimensions. Note that *categorycount*, *colorcount* and *bandcolorcount* are only available when `hoveron` contains the *color* flag. Finally, the template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `<extra>` is displayed in the secondary box, for example `<extra>%{fullData.name}</extra>`. To hide the secondary box completely, use an empty tag `<extra></extra>`.",
0 commit comments