Skip to content

CI: playwright-examples fails on nba-dashboard after plotly 7.0.0 removed ff.create_distplot #2476

Closed
posit-dev/py-shiny-templates
#56

Description

@schloerke

playwright-examples is failing on every PR, in three shards:

Job Test
playwright-examples (3.13, chromium, 2) test_external_templates[chromium-py-shiny-templates/nba-dashboard/app-express.py]
playwright-examples (3.13, chromium, 3) test_external_templates[chromium-py-shiny-templates/nba-dashboard/app-core.py]
playwright-examples (3.14, chromium, 3) test_external_templates[chromium-py-shiny-templates/nba-dashboard/app-core.py]
File "py-shiny-templates/nba-dashboard/plots.py", line 41, in density_plot
    fig = ff.create_distplot(
AttributeError: module 'plotly.figure_factory' has no attribute 'create_distplot'

Nothing in py-shiny is involved — the traceback runs from _session.py straight out into the template's own code. But playwright-examples is a required dependency of the PR checks gate (.github/workflows/pytest.yaml:468), so the rolled-up check goes red on unrelated PRs.

Cause

plotly 7.0.0 (released 2026-08-25) removed twelve deprecated Figure Factory functions (plotly/plotly.py#5627), including create_distplot. Nothing in this repo uses any of the twelve — I grepped all of them — so the only affected code is nba-dashboard/plots.py in the templates repo. Fix tracked at posit-dev/py-shiny-templates#57.

Why it reached us with no commit here

.github/workflows/pytest.yaml:300-304 checks out the templates repo with no ref::

      - name: Checkout py-shiny-templates repository
        uses: actions/checkout@v6
        with:
          repository: posit-dev/py-shiny-templates
          path: py-shiny-templates

so it tracks that repo's default branch HEAD at run time, and make ci-install-py-shiny-templates-deps (Makefile:323) installs its unpinned requirements.txt. Any upstream template change, or any transitive dependency release, can turn py-shiny's CI red with no change on our side. That's arguably the point of the job — it catches real breakage — but it does mean unrelated PRs get blocked by it.

Worth deciding separately from the fix: whether to pin the checkout to a ref we bump deliberately, or keep it floating and treat these as a signal to fix upstream promptly.

Activity

  1. karangattu commented on Aug 26, 2026

    @karangattu
    Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions