Skip to content

Support for quarto shiny app mode#755

Closed
nealrichardson wants to merge 3 commits intomainfrom
claude-issue-754
Closed

Support for quarto shiny app mode#755
nealrichardson wants to merge 3 commits intomainfrom
claude-issue-754

Conversation

@nealrichardson
Copy link
Contributor

@nealrichardson nealrichardson commented Feb 17, 2026

Intent

Closes #754

Type of Change

  • Bug Fix
  • New Feature
  • Breaking Change

Approach

Ask Claude to write the issue, ask Claude to do it, no not like that Claude, and Claude please review-and-fix your changes until the review is clean

Automated Tests

Looks like it

Directions for Reviewers

Other than passing CI, would be good to confirm that this change is enough to make it work in production. @edgararuiz can you check out this locally and see if it does the thing?

Checklist

  • I have updated CHANGELOG.md to cover notable changes.
  • I have updated all related GitHub issues to reflect their current state.
  • I have run the rsconnect-python-tests-at-night workflow in Connect against this feature branch.

nealrichardson and others added 3 commits February 17, 2026 15:43
Add support for automatically detecting `server: shiny` in Quarto documents
by inspecting the `quarto inspect` output. When detected, the commands now
use `quarto-shiny` app mode instead of always using `quarto-static`.

This allows `rsconnect write-manifest quarto` and `rsconnect deploy quarto`
to correctly handle Shiny Quarto documents without manual intervention.

Fixes #754

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add isinstance(dict) checks before calling .values() on formats and
fileInformation to prevent potential AttributeError if Quarto inspect
returns unexpected data types. This matches the defensive pattern
already used for nested fields in the same function.
Add test cases for scenarios where the server field exists but has
incorrect values (not "shiny"). This improves test coverage and makes
the behavior more explicit for edge cases.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Feb 17, 2026

PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-02-19 21:03 UTC

@github-actions
Copy link

☂️ Python Coverage

current status: ✅

Overall Coverage

Lines Covered Coverage Threshold Status
5456 4180 77% 0% 🟢

New Files

No new covered files...

Modified Files

File Coverage Status
rsconnect/actions.py 53% 🟢
rsconnect/main.py 69% 🟢
TOTAL 61% 🟢

updated for commit: 6b21dff by action🐍

Copy link
Contributor

@karawoo karawoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested this locally and was able to generate a manifest with "appmode": "quarto-shiny"

@edgararuiz
Copy link

Used to install: uv pip install git+https://github.com/posit-dev/rsconnect-python@claude-issue-754
Used to write manifest: uv tool run rsconnect write-manifest quarto ./dashboard-python/access-to-care.qmd --overwrite
The manifest still says: quarto-static. I merged the change to my repo here: https://github.com/sol-eng/access-to-care/tree/c8df41d997dc4dc56ec932c5c2517c9586c406de
Resulting manifest: https://github.com/sol-eng/access-to-care/blob/c8df41d997dc4dc56ec932c5c2517c9586c406de/dashboard-python/manifest.json

@karawoo
Copy link
Contributor

karawoo commented Feb 17, 2026

@edgararuiz are you sure that uv tool run is using the correct installed version? What happens if you do rsconnect write-manifest quarto ./dashboard-python/access-to-care.qmd directly, or alternatively uv tool install to install the dev rsconnect version (instead of uv pip install)?

@edgararuiz
Copy link

@karawoo - Thanks!
I ran rsconnect write-manifest quarto ./dashboard-python/access-to-care.qmd --overwrite and it changed it to quarto-shiny

So I tried to deploy to connect again, and it returned this error:

The Quarto document requires a server but does not use an executable engine. Consider including some executable code, specifying an engine, or removing the server configuration.

By the way, I've seen this error before. It is same one I would also get when I manually changed quarto-static to quarto-shiny manually to see if I could override what rsconnect was doing.

@karawoo
Copy link
Contributor

karawoo commented Feb 18, 2026

Ah I see the issue. The rsconnect manifest generation works fine but Connect does not support python shiny quarto documents, only R.

@nealrichardson
Copy link
Contributor Author

I'm going to close this for now since Connect doesn't support this. We can reopen/redo when it does.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

write-manifest quarto doesn't support Shiny Quarto documents

3 participants

Comments