Bump bundled shinychat to 0.4.0#229
Draft
cpsievert wants to merge 1 commit into
Draft
Conversation
shinychat was bundled at 0.2.8 (latest is 0.4.0). It entered the lockfile only as a transitive dependency of shiny, so the local relock never refreshed it. Update its lockfile entry to 0.4.0 and declare it explicitly in shinylive_requirements.json so a full generate_lockfile treats it as a first-class package. No build-script behavior changes; no other packages move.
cpsievert
marked this pull request as draft
June 9, 2026 15:07
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Shinylive bundled shinychat 0.2.8 while the latest PyPI release is 0.4.0, so chat apps in shinylive ran against an old version even after we shipped the latest Shiny for Python. This brings the bundled Shiny Chat current.
The staleness wasn't an oversight in any one release —
shinychatwas never a tracked package. It only enteredshinylive_lock.jsonas a transitive dependency ofshiny(shinychat>=0.1.0), and the routine local relock (update_packages_lock_local) never re-resolves already-present transitive deps. So it froze at the version it first appeared with (0.10.6) and stayed there through every subsequent shiny bump.What changed
shinylive_lock.json: update theshinychatentry to 0.4.0 (version, filename, sha256, url, and itshtmltoolsspec). No other package moves.shinylive_requirements.json: declareshinychatas an explicit PyPI requirement so a fullgenerate_lockfiletreats it as a first-class package rather than an incidental transitive dep.No build-script behavior changes.
Verification
make retrieve_packages update_pyodide_lock_jsonregenerates the pyodide lock cleanly with shinychat 0.4.0 (deps resolve tohtmltools;shinystripped by the existing circular-dependency hack) and every other package unchanged.Note for whoever owns releases
This unsticks shinychat to the current release but does not make it auto-refresh on future releases — it will sit at 0.4.0 until a deliberate bump or a full
generate_lockfile, the same as the other pinned PyPI deps (shinyswatch, plotly, etc.). Making it (and the other pinned deps) track automatically is a larger, separate change toupdate_lockfile_localthat needs canonical-name-aware pruning to be done safely, and is best decided with the build-system maintainers.