Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
6035 commits
Select commit Hold shift + click to select a range
590a44b
Update uv lock file
Aug 12, 2025
0ef0f76
Merge pull request #5319 from plotly/release-6.3.0
Aug 12, 2025
9bf5973
Merge remote-tracking branch 'origin/main' into docs-update-next-release
Aug 12, 2025
6f0b108
Merge pull request #5269 from plotly/docs-update-next-release
Aug 12, 2025
b2ad290
Update docs to plotly.py 6.3.0
Aug 12, 2025
a35aacd
Merge pull request #5320 from plotly/cam/update-docs-to-plotly.py-6.3.0
Aug 12, 2025
7c1ec27
Fix broken import in `mplexporter` tests
Aug 13, 2025
7344f9f
Copy width/height calculating logic from kaleido
Aug 13, 2025
a0695c7
Add proper defaults to dict .get()
Aug 14, 2025
b50fd38
Add proper defaults to dict .get() x2
Aug 14, 2025
bf89e7b
Format with ruff.
Aug 14, 2025
50e5b9c
Add some width/height testing.
Aug 14, 2025
b49e8c2
Fix test formatting.
Aug 14, 2025
1031db1
Fix variable access.
Aug 14, 2025
462f649
Move test_kaleido helper fns to top of file
Aug 18, 2025
e01f6c7
Use pio defaults to check test defaults
Aug 18, 2025
6101511
Pull off ruff format.
Aug 18, 2025
b04b67a
Update CITATION.cff
Aug 19, 2025
cb71ec2
Merge pull request #5325 from geopozo/andrew/better-kaleido-defaults
Aug 19, 2025
e4d41f2
Merge pull request #5331 from plotly/Coding-with-Adam-patch-1
Aug 21, 2025
fe883c4
Merge pull request #5303 from plotly/add-missing-imports
Aug 27, 2025
6cc770a
Merge pull request #5302 from plotly/fix-docs
Aug 27, 2025
a045fc4
Add list of supported values
Sep 10, 2025
658eeba
update links
Sep 12, 2025
a40fb06
Merge pull request #5345 from plotly/fix-broken-docs-build
Sep 12, 2025
b72d5f8
Merge branch 'doc-prod' into add-maki
Sep 12, 2025
a537842
Merge pull request #5344 from plotly/add-maki
Sep 15, 2025
3ee41a0
Merge branch 'main' into marthacryan-patch-1
Sep 29, 2025
bcc57c8
Merge pull request #5274 from plotly/marthacryan-patch-1
Sep 29, 2025
4e47186
update plotly.js to version 3.1.1
Oct 1, 2025
15f3b6f
update FigureWidget and JupyterLab extension bundles
Oct 1, 2025
fa1a280
print help when no command supplied to commands.py
Oct 1, 2025
7ce2c4e
Refactored create_hexbin_mapbox to use *_map chart types instead of *…
Oct 1, 2025
60c1a96
Updated create_hexbin_mapbox docstring
Oct 1, 2025
78b7dc1
update labextension files because they are different than CI for some…
Oct 1, 2025
9cdb90a
add npm ls step in check-js-build
Oct 1, 2025
ba373b3
format
Oct 1, 2025
d2f312c
Merge branch 'main' into changes-for-main
Oct 1, 2025
3398e3c
Merge pull request #5359 from plotly/changes-for-main
Oct 1, 2025
dd24a30
Merge branch 'main' into update-plotlyjs-v3.1.1
Oct 1, 2025
83b6b01
Merge pull request #5357 from plotly/update-plotlyjs-v3.1.1
Oct 1, 2025
9c6a926
Merge pull request #5315 from Lexachoc/patch-0
Oct 1, 2025
00e0f0f
Merge branch 'main' into fix-default-renderer-when-ipython-installed
Oct 1, 2025
bf4f6dd
Merge branch 'main' into rm/use-native-legend
Oct 1, 2025
acaceef
Merge branch 'main' into plt-import
Oct 1, 2025
f893449
Merge pull request #5312 from robertoffmoura/rm/use-native-legend
Oct 1, 2025
5ec29a8
Merge branch 'main' into update-hexbin-map-no-mapbox
Oct 1, 2025
1606781
Merge branch 'main' into plt-import
Oct 1, 2025
f435c1f
Merge pull request #5258 from plotly/fix-default-renderer-when-ipytho…
Oct 1, 2025
6f4f047
Merge pull request #5322 from mgorny/plt-import
Oct 1, 2025
9f0fc94
Merge branch 'main' into secondary-y-shared
Oct 1, 2025
0d2bfc9
fix matplotlib import
Oct 1, 2025
2d06228
Merge pull request #5180 from gmjw/secondary-y-shared
Oct 1, 2025
4206f60
Merge branch 'main' into matplotlib-import-fix
Oct 1, 2025
6bed9a0
Merge pull request #5361 from plotly/matplotlib-import-fix
Oct 1, 2025
9add7ca
version changes for v6.3.1
Oct 2, 2025
6752c2c
update uv lockfile
Oct 2, 2025
8225110
Merge pull request #5363 from plotly/release-v6.3.1
Oct 2, 2025
f1b9c71
Update RELEASE.md
Oct 2, 2025
93347d2
review comments
Oct 3, 2025
743c313
Merge pull request #5364 from plotly/release-instructions-cleanup
Oct 3, 2025
a675d04
add references to cloud
Oct 7, 2025
cca91a1
Merge pull request #5366 from plotly/add-cloud
Oct 8, 2025
4a1cf88
Update renderers.md
Oct 8, 2025
20603b1
add bullets and fix links
Oct 9, 2025
d5e28f9
Update renderers.md
Oct 9, 2025
fde4185
Update renderers.md
Oct 9, 2025
66b6b5c
lowercase plotly.py and plotly.js
Oct 9, 2025
e287dbe
Update renderers.md
Oct 9, 2025
5c980e5
Update renderers.md
Oct 9, 2025
4bd19c4
Update renderers.md
Oct 9, 2025
1085bd6
Update renderers.md
Oct 9, 2025
72212b7
Merge pull request #5372 from plotly/release-instructions-cleanup
Oct 9, 2025
f38c6ee
Update renderers.md
Oct 9, 2025
596f0a6
Update renderers.md
Oct 9, 2025
61ece0d
Update renderers.md
Oct 9, 2025
bd4b68e
Update renderers.md
Oct 9, 2025
992707a
Update code example in animations.md
Oct 13, 2025
f95086a
Update doc/python/renderers.md
Oct 17, 2025
b45be6e
Update doc/python/renderers.md
Oct 17, 2025
6866c2f
Merge pull request #5369 from plotly/more-updates
Oct 20, 2025
851cd28
Renamed create_hexbin_mapbox to create_hexbin_map
Oct 22, 2025
c6edf24
Ruff formatting
Oct 22, 2025
c7c32af
Merge branch 'main' into update-hexbin-map-no-mapbox
Oct 22, 2025
437c168
More ruff formatting
Oct 22, 2025
a369da4
Merge branch 'update-hexbin-map-no-mapbox' of github.com:ajlien/plotl…
Oct 22, 2025
40df944
Updated figure factory init
Oct 22, 2025
e7d54ad
Removed Mapbox-related content from hexbin examples
Oct 22, 2025
cca1cf8
Merge pull request #5358 from ajlien/update-hexbin-map-no-mapbox
Oct 22, 2025
5e2c796
Merge branch 'main' into doc-prod-to-main-merge
Oct 28, 2025
9d16102
Merge pull request #5383 from plotly/doc-prod-to-main-merge
Oct 28, 2025
fd71245
Optimize validate_gantt
Oct 30, 2025
44df0c1
Apply suggestion from @misrasaurabh1
Oct 30, 2025
67aa862
Apply suggestion from @misrasaurabh1
Oct 30, 2025
333a058
adding validate_gantt tests file
Oct 30, 2025
3f5166d
fix formatting
Oct 30, 2025
9ae5a23
fixing formatting
Oct 30, 2025
a04b736
Update plotly.js to v3.2.0 and associated files
Oct 31, 2025
5f61016
Update Jupyter support files
Oct 31, 2025
38849fd
Use labextension files from CI because they are different
Oct 31, 2025
96c6894
Remove old build file
Nov 3, 2025
72668b0
Revert indentation changes
Nov 3, 2025
913ca35
Merge pull request #5388 from plotly/cam/update-plotly.js-v3.2.0
Nov 3, 2025
e58469c
Update Kaleido dependency to v1.1.0
Nov 3, 2025
cebcb84
Merge pull request #5389 from plotly/cam/update-kaleido-version-1.1.0
Nov 3, 2025
f557106
Version changes for v6.4.0
Nov 3, 2025
92de12f
Merge pull request #5390 from plotly/release-6.4.0
Nov 4, 2025
93227f2
update plotly.py version for docs
Nov 4, 2025
2bb74a0
Update CHANGELOG.md
Nov 4, 2025
1d96a63
Merge pull request #5391 from plotly/update-docs-nov-4
Nov 5, 2025
8791cd8
Merge pull request #5392 from plotly/make-docs-live-nov-5
Nov 7, 2025
4692768
add handling for special case where np datetime contained in Python l…
Nov 10, 2025
0863bfd
add test for datetime64[ns]
Nov 11, 2025
aad21ad
Update _plotly_utils/basevalidators.py
Nov 12, 2025
3aca925
Merge pull request #5415 from plotly/fix-np-date-handling-issue
Nov 12, 2025
cf4d1b2
add new maps page
Nov 13, 2025
0105281
Update location-mode.md
Nov 13, 2025
0cf784c
Update location-mode.md
Nov 13, 2025
f571850
Update location-mode.md
Nov 13, 2025
ed79c81
Update location-mode.md
Nov 13, 2025
cdab866
Update location-mode.md
Nov 13, 2025
08d21b4
Update doc/python/location-mode.md
Nov 14, 2025
e7faa8b
update plotly.js to v3.3.0
Nov 17, 2025
cb41af6
package-lock indentation
Nov 17, 2025
0538c34
update package-lock with new plotly.js
Nov 17, 2025
31f5f8b
update plotly/labextension with files from ci
Nov 17, 2025
c090672
Merge pull request #5421 from plotly/update-plotlyjs-3.3.0
Nov 17, 2025
149129f
version changes for v6.5.0
Nov 17, 2025
6351532
Update CHANGELOG.md
Nov 17, 2025
75fe43f
changelog formatting
Nov 17, 2025
ba12684
Merge pull request #5422 from plotly/release-6.5.0
Nov 17, 2025
24e680e
update plotly.py version for docs
Nov 17, 2025
0c6784f
Merge pull request #5423 from plotly/update-plotly-version
Nov 18, 2025
ac65e3c
Merge branch 'doc-prod' into make-docs-changes-live
Nov 18, 2025
355478e
Merge branch 'main' into codeflash/optimize-validate_gantt-mhcxyu68
Nov 18, 2025
6d379c4
Merge pull request #5426 from plotly/make-docs-changes-live
Nov 18, 2025
d1518b0
remove conditional pandas
Nov 18, 2025
9565ed4
Update choropleth-maps.md
Nov 18, 2025
8634025
remove redundant tests
Nov 18, 2025
6cafcd9
apply ruff formatting
Nov 18, 2025
c8efea6
Merge branch 'doc-prod' into add-maps
Nov 19, 2025
7810794
Merge pull request #5418 from plotly/add-maps
Nov 19, 2025
f2f775f
add changelong entry
Nov 19, 2025
c7b49f2
apply suggestion
Nov 19, 2025
091cee0
Merge pull request #5386 from codeflash-ai/codeflash/optimize-validat…
Nov 19, 2025
1eea3aa
Add trace-specific color sequence support from template.data
Nov 26, 2025
aae3a47
Support trace-specific color sequences in Plotly Express via templates
Nov 26, 2025
6af01a1
Add trace-specific color sequences in Plotly Express via templates
Nov 26, 2025
c328bf7
Minor
Nov 27, 2025
f946c38
Format code with ruff
Nov 27, 2025
7c66303
Add CHANGELOG entry for trace-specific color sequences fix
Dec 1, 2025
b554943
Update changelog
Dec 1, 2025
2d258f0
fix: Update GitHub issue templates
Dec 3, 2025
7bf40b6
Merge pull request #5441 from plotly/cam/5440/update-github-issue-tem…
Dec 3, 2025
8fb5ac9
Refactor trace-specific color handling in apply_default_cascade
Dec 4, 2025
25201f5
Remove redundant color_discrete_sequence check in apply_default_cascade
Dec 4, 2025
dbef0a6
Update tests/test_optional/test_px/test_px.py
Dec 4, 2025
ecfe767
Ruff
Dec 4, 2025
42b98af
Merge branch 'main' into main
Dec 4, 2025
5534dc1
Fix imshow
Dec 5, 2025
73388d9
Merge pull request #5437 from antonymilne/main
Dec 5, 2025
ef76c9e
update call to color_discrete_sequence with new call signature
Dec 5, 2025
5fdce89
Merge pull request #5442 from plotly/fix-docs-build-bug-2
Dec 8, 2025
5d24de1
fix some typos
Dec 9, 2025
5f02f8c
fix more typos
Dec 9, 2025
7010077
fix some docs issues
Dec 9, 2025
8d05322
Merge pull request #5377 from yaoxiao1999/patch-2
Dec 9, 2025
a4a480e
Update editable installs ref in CONTRIBUTING doc
Dec 10, 2025
35c8655
Merge pull request #5448 from palmerusaf/update-contrib-docs
Dec 10, 2025
e6f0943
Remove unneeded `type="text/javascript"` attribute from `<style>` tag
Dec 19, 2025
8217ea9
Fix codingstyle with ruff
Dec 19, 2025
de2b242
Update plotly.js to v3.3.1 and associated files
Dec 22, 2025
ef27aa7
Add missing lock file
Dec 22, 2025
8fc178a
Update Jupyter support files
Dec 22, 2025
a67c16c
Merge pull request #5456 from plotly/cam/update-plotly.js-v3.3.1
Dec 22, 2025
ee9d6b8
Version changes for v6.5.1
Dec 24, 2025
fe2289f
Update dendrogram.md
Jan 2, 2026
9662db8
Update ml-pca.md
Jan 2, 2026
1a3cc79
Merge pull request #5457 from plotly/release-6.5.1
Jan 7, 2026
d1af459
Merge pull request #5460 from plotly/fix-docs-build
Jan 8, 2026
09ad416
fix: Handle arrays in BooleanValidator
Jan 9, 2026
bedd340
Add array_ok to SubplotidValidator, used in pie.legend
Jan 12, 2026
c913587
Fix names of test cases (forgot to rename them after copy-paste)
Jan 12, 2026
f215b6e
Run ruff format after adding support for arrays in subplotid validator.
Jan 12, 2026
0ce4e6d
Fix docstring and description of SubplotidValidator
Jan 13, 2026
6d7b2fb
changed helper function in SubplotidValidator
Jan 13, 2026
3fbe419
Separate test for coercion of geo1 to geo and legend1 to legend
Jan 13, 2026
e0cc3be
Simplify test
Jan 13, 2026
0ca93a1
Merge pull request #5464 from plotly/cam/5463/handle-arrays-booleanva…
Jan 13, 2026
88039f9
Merge branch 'main' into legend-arrayok
Jan 13, 2026
23f6a4c
Merge pull request #5465 from my-tien/legend-arrayok
Jan 14, 2026
714d056
Merge branch 'main' into merge-doc-prod-to-main
Jan 14, 2026
549a996
Merge pull request #5466 from plotly/merge-doc-prod-to-main
Jan 14, 2026
e0000a3
fix: Update graph_objs per recent bug fixes
Jan 14, 2026
a0de28a
Merge pull request #5467 from plotly/cam/update-graph-objs
Jan 14, 2026
60cf468
Version changes for v6.5.2
Jan 14, 2026
ad0b141
Use the correct dates
Jan 14, 2026
292d9a2
Merge pull request #5468 from plotly/release-6.5.2
Jan 14, 2026
289f282
Remove not required build dependencies
Jan 13, 2026
75ea647
update example to use geodatasets
Jan 26, 2026
247d052
fix: Remove global warning format side effect
Feb 5, 2026
587b490
Merge pull request #5454 from hannob-forks/unneededtype
Feb 10, 2026
538ef10
Merge branch 'doc-prod' into fix-docs-issues
Feb 10, 2026
958521e
Update requirements.txt
Feb 10, 2026
26240be
Update requirements.txt
Feb 10, 2026
4ab1e38
Update requirements.txt
Feb 10, 2026
ebcca4a
Update requirements.txt
Feb 10, 2026
cffba66
Merge pull request #5501 from plotly/update-docs-requirements
Feb 12, 2026
16dd664
Merge branch 'doc-prod' into fix-docs-issues
Feb 12, 2026
99a03b8
Merge pull request #5447 from plotly/fix-docs-issues
Feb 12, 2026
d0aef24
Merge branch 'main' into fix-warnings-format
Feb 13, 2026
1d90975
Merge pull request #5481 from emmanuel-ferdman/fix-warnings-format
Feb 16, 2026
0a95f2b
Merge branch 'main' into merge-doc-prod-to-main-branch
Feb 16, 2026
6dc4ae8
Merge pull request #5513 from plotly/merge-doc-prod-to-main-branch
Feb 17, 2026
659c963
Update shapes.md
Feb 18, 2026
e1c2a28
Update marker-style.md
Feb 19, 2026
6aa6a82
Update marker-style.md
Feb 19, 2026
d195af2
Merge pull request #5478 from plotly/update-example
Feb 20, 2026
a914262
Fix spurious engine deprecation warning in write_image
Feb 20, 2026
bb95c63
Merge branch 'main' into new-charts
Feb 23, 2026
e7188d2
Update legend.md
Feb 23, 2026
c471031
Merge branch 'new-charts' of https://github.com/plotly/plotly.py into…
Feb 23, 2026
eb3672c
Merge pull request #5517 from mosh3eb/fix/write-image-spurious-engine…
Feb 24, 2026
3b4f85d
Update doc/python/shapes.md
Feb 26, 2026
e76785f
Merge branch 'main' into new-charts
Feb 26, 2026
c6b303f
upgrade plotly.js to v3.4.0
Feb 27, 2026
5321bbe
update package-lock
Feb 27, 2026
53a4372
update js artifacts
Feb 27, 2026
aec88af
update changelog
Mar 2, 2026
bd74e10
Merge pull request #5527 from plotly/update-plotlyjs-3.4.0
Mar 2, 2026
c386112
Merge branch 'main' into new-charts
Mar 2, 2026
f3e2526
Merge pull request #5516 from plotly/new-charts
Mar 2, 2026
6a401fc
update changelog
Mar 2, 2026
2542ce0
changes for v6.6.0
Mar 2, 2026
22915d2
Merge pull request #5528 from plotly/release-branch-6.6.0
Mar 2, 2026
03b0f23
Update requirements.txt
Mar 2, 2026
79f22b9
Merge pull request #5529 from plotly/update-docs-version
Mar 3, 2026
e8b906e
Update conf.py
Mar 3, 2026
ecf2fec
Merge pull request #5531 from plotly/update-version
Mar 3, 2026
fe76342
Update and streamline pull request template
Feb 23, 2026
e8c3e72
Add checklists removed from PR template into CONTRIBUTING.md
Feb 25, 2026
272c3cb
link to code of conduct
Mar 2, 2026
c7c49a2
update based on PR comments
Mar 3, 2026
819de8e
Merge pull request #5523 from plotly/update-pr-template
Mar 4, 2026
d228695
fix: handle empty histogram() by skipping None label in hover template
Mar 10, 2026
22a2f83
Merge pull request #5535 from tysoncung/fix-empty-histogram-crash
Mar 10, 2026
c3363f1
Apply suggestion from @emilykl
Mar 12, 2026
d4dec46
Merge branch 'main' into franred/remove-not-required-build-dependencies
Mar 12, 2026
380e0ad
Merge pull request #5477 from franred/franred/remove-not-required-bui…
Mar 12, 2026
2d122fd
Fix create_violin() numpy 2.0+ compatibility
Mar 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
479 changes: 479 additions & 0 deletions .circleci/config.yml

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions .github/FUNDING.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
github: plotly
custom: https://plot.ly/products/consulting-and-oem/
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
---
name: Bug report
about: Create a bug report for a plotly.py issue
title: "[BUG]: "
labels: bug

---

### Instructions (remove this section before submitting report)

Thanks for your interest in plotly.py!

- Before submitting a new bug report, please search for existing and closed issues. If your bug is not addressed yet, fill out the sections below and submit a new issue.
- Implementation questions ("How do I do ...?") should be asked on our [Community Forum](https://community.plotly.com/c/plotly-python/5) or on [Stack Overflow](https://stackoverflow.com/questions/tagged/plotly) (tagged 'plotly').
- Comments should add content to the discussions. Approbation comments such as *+1* or *I would like this feature to be implemented as well* will be deleted by the maintainers. Please use [GitHub reactions](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments) instead.

### Description

_Add a clear description of the issue that you're having._

### Screenshots/Video

_Add screenshots or a video of the issue._

### Steps to reproduce

_Reports **must** include steps to reproduce the issue. Please use the [latest version](https://github.com/plotly/plotly.py/releases) of plotly.py in your report unless not applicable._

- Go to '...'
- Click on X
- Note the issue with Y

### Notes

_Add info here that doesn't fit in the other sections._
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
---
name: Feature request
about: Submit a new feature request for plotly.py
title: "[FEATURE]: "
labels: feature

---

### Instructions (remove this section before submitting an issue)

Thanks for your interest in plotly.py!

- Before submitting a new feature request, please search for existing and closed requests. If your request is novel, fill out the sections below and submit a new request.
- Comments should add content to the discussions. Approbation comments such as *+1* or *I would like this feature to be implemented as well* will be deleted by the maintainers. Please use [GitHub reactions](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments) instead.

### Description

_Add a clear description of the feature that you're requesting._


### Why should this feature be added?

_Provide an argument for why this feature should be added. We can't add everything, so this will help us determine what gets worked on. Please also consider creating a PR and adding the feature yourself. Help is always appreciated._

### Mocks/Designs

_Please add any mocks or designs you might have for the feature._

### Notes

_Add info here that doesn't fit in the other sections._
30 changes: 30 additions & 0 deletions .github/pull_request_template.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
<!--
Thank you for your contribution to plotly.py!

Please complete each section below.
-->

### Link to issue
<!-- Link to the issue closed by this PR. If the issue doesn't exist yet, create it. -->

Closes #(issue number)

### Description of change
<!-- Provide a clear 1-2 sentence description of what this PR does. -->

### Demo

<!-- Include screenshots or screen recordings of this PR in action. -->

### Testing strategy

<!-- Provide 1-2 sentences explaining tests added or changed by this PR. If testing changes are not needed, explain why. -->

### Additional information (optional)

<!-- Include any additional context, background, or explanation which doesn't fit in the previous sections. -->

### Guidelines

- [ ] I have reviewed the [pull request guidelines](https://github.com/plotly/plotly.py/blob/main/CONTRIBUTING.md#opening-a-pull-request) and the [Code of Conduct](https://github.com/plotly/plotly.py/blob/main/CODE_OF_CONDUCT.md) and confirm that this PR follows them.
- [ ] I have added an entry to the [changelog](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md) if needed (not required for documentation PRs).
67 changes: 67 additions & 0 deletions .github/workflows/check-js-build.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
on: push

jobs:
check-js-build:
name: Check JS build artifacts
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Install Node
uses: actions/setup-node@v2
with:
node-version: '22'

- name: Copy current files to a temporary directory
run: |
cp -R plotly/labextension/ plotly/labextension-tmp/

- name: Install dependencies and build
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install jupyter
cd js
npm ci
npm run build
npm ls
- name: Check JupyterLab build artifacts
run: |
# 1. Hash contents of all static files, sort by content hash
find plotly/labextension/static -type f -exec sha256sum {} \; | awk '{print $1}' | sort > new_hashes.txt
find plotly/labextension-tmp/static -type f -exec sha256sum {} \; | awk '{print $1}' | sort > old_hashes.txt

# 2. Compare the sorted content hashes
diff old_hashes.txt new_hashes.txt > content_diff.txt

# Remove the "load" line from both package.json files before comparing
grep -v '"load": "static/' plotly/labextension/package.json > pkg1.json
grep -v '"load": "static/' plotly/labextension-tmp/package.json > pkg2.json

# Compare stripped versions
diff pkg1.json pkg2.json > package_json_diff.txt

# 5. Final check
if [ -s content_diff.txt ] || [ -s package_json_diff.txt ]; then
echo "❌ Build artifacts differ:"
echo "--- Unexpected diffs ---"
cat content_diff.txt
echo "--- Unexpected package.json diffs ---"
cat package_json_diff.txt
echo "Please replace the 'plotly/labextension' directory with the artifacts of this CI run."
exit 1
else
echo "✅ Build artifacts match expected output (ignoring known 'load' hash in package.json)."
fi

- name: Store the build artifacts from plotly/labextension
uses: actions/upload-artifact@v4
if: failure()
with:
name: labextension
path: plotly/labextension
71 changes: 71 additions & 0 deletions .github/workflows/test-release.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI

on:
workflow_dispatch

jobs:
build:
name: Build distribution 📦
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Install Node
uses: actions/setup-node@v2
with:
node-version: '22'

- name: Install npm dependencies
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install jupyter
cd js
npm ci --verbose
npm run build --verbose

- name: Install pypa/build
run: >-
python3 -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/

publish-to-testpypi:
name: Publish Python 🐍 distribution 📦 to TestPyPI
needs:
- build
runs-on: ubuntu-latest

environment:
name: testpypi
url: https://test.pypi.org/p/plotly

permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
52 changes: 49 additions & 3 deletions .gitignore
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,65 @@
0
0.html
iframe_figures/
tests/test_orca/images/linux/failed/

*.egg-info

*.pyc

*.gz

*~

doc/python/raw.githubusercontent.com/

# Don't ignore dataset files
!*.csv.gz
!*.geojson.gz

*.ipynb

*.coverage

*.tox

build
debug_script.py

test_output.txt

plotly/api/v2/spectacle_presentations.py

plotly/presentation_objs/

.idea

node_modules/

.pytest_cache

# virtual envs
vv
venv*

# dist files
build
dist
plotly.egg-info/

debug_script.py
# macOS utility file
**/.DS_Store

test_output.txt
tests/test_orca/images/*/failed
tests/test_orca/images/*/tmp
tests/test_core/test_offline/plotly.min.js
temp-plot.html
.vscode
doc/python/.ipynb_checkpoints
doc/python/.mapbox_token
doc/.ipynb_checkpoints
tags
doc/check-or-enforce-order.py

tests/percy/*.html
tests/percy/pandas2/*.html
test_path.png
6 changes: 0 additions & 6 deletions .gitmodules

This file was deleted.

Loading