Skip to content

docs: plan for #303 — verify expected R/Python versions on Workbench#314

Merged
ian-flores merged 4 commits into
mainfrom
botplan-issue-303-3a666ab47e23b5db
Jun 1, 2026
Merged

docs: plan for #303 — verify expected R/Python versions on Workbench#314
ian-flores merged 4 commits into
mainfrom
botplan-issue-303-3a666ab47e23b5db

Conversation

@posit-vip-triage

@posit-vip-triage posit-vip-triage Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

This plan proposes adding parallel runtime version verification for Workbench, mirroring the existing Connect tests in src/vip_tests/connect/test_runtime_versions.feature. The implementation will reuse the expected_r_versions and expected_python_versions config fields for allow-list matching, add deny-list pattern checks for excluded versions, and use Playwright to verify runtime versions in the New Session dialog and in-session validation flow.

Key components:

  • New feature file and step definitions under src/vip_tests/workbench/
  • Page object for New Session dialog version selectors
  • Runtime allow-list and deny-list pattern config support for Workbench checks
  • Scoped in-session scenario to verify launched RStudio reports the expected runtime version
  • UI-based verification approach (no Workbench runtime-versions API dependency)

Merging this PR will trigger an implementation PR — comment to iterate on the plan first.


Plan

See thoughts/shared/plans/2026-05-29-issue-303-workbench-runtime-versions.md for the full plan.

> Generated by Triage open issues on posit-dev/vip for issue #303 · ● 7.6M ·

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment on lines +51 to +55
1. **UNCONFIRMED: Unexpected versions flag** — The issue proposes an optional `unexpected_r_versions: bool` config flag (default `true`) to control whether "no unexpected versions are offered" is enforced. This would allow some customers to use an allow-list approach (strict) while others use additive (only verify expected versions are present, but don't fail if extras exist). The plan assumes this is added to `RuntimesConfig` in `src/vip/config.py`, but the implementation PR may defer this until a customer explicitly requests it.

2. **UNCONFIRMED: Third scenario dependency** — The issue's third scenario ("An RStudio project opens with the expected R version") requires in-session code execution to read `R.version.string`. The issue notes this "depends on the in-session execution primitive (separate issue)". The plan assumes this scenario will be marked `@skip` or deferred to a follow-up PR until that primitive is available.

3. **UNCONFIRMED: Workbench API alternative** — Workbench may expose runtime version information via `/api/server/settings` or a similar endpoint, which would allow simpler API-based verification instead of UI scraping. If such an API exists, the implementation should prefer it for the first two scenarios and only use Playwright for the third (in-session verification). The plan assumes no such API exists based on the Connect/Workbench client code review, but the implementer should confirm.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@copilot

  1. We should support both allow-list patterns and deny-list patterns. Make sure this is in the plan and not unconfirmed.

  2. We need to scope this in the plan as well, we need to test that scenario.

  3. No such API exists AFAIK.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Addressed in commit 2cc89e5. The plan now explicitly scopes support for both allow-list and deny-list patterns, includes the in-session runtime verification scenario in scope, and removes the API-alternative assumption in favor of UI-based verification.

Co-authored-by: ian-flores <18703558+ian-flores@users.noreply.github.com>
Copilot AI requested a review from ian-flores June 1, 2026 17:19
@ian-flores

Copy link
Copy Markdown
Collaborator

@copilot resolve the merge conflicts in this pull request

Co-authored-by: ian-flores <18703558+ian-flores@users.noreply.github.com>
@posit-vip-triage posit-vip-triage Bot mentioned this pull request Jun 1, 2026
Co-authored-by: ian-flores <18703558+ian-flores@users.noreply.github.com>

Copilot AI commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

Done in commit beca522.

@ian-flores ian-flores merged commit c900ef3 into main Jun 1, 2026
28 checks passed
@ian-flores ian-flores deleted the botplan-issue-303-3a666ab47e23b5db branch June 1, 2026 21:27
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-06-01 21:27 UTC

@posit-vip-triage

Copy link
Copy Markdown
Contributor Author

Pull request created: #327

Generated by Implement an approved plan PR · ● 66.3M

@posit-vip-triage

Copy link
Copy Markdown
Contributor Author

🤖 Implementation PR opened: #aw_impl303

Implements the three scenarios from the plan:

  • Expected R versions present in New Session dialog (with deny-list check)
  • Expected Python versions present in New Session dialog (with deny-list check)
  • Launched RStudio session reports expected R version via console

Also adds r_excluded_versions / python_excluded_versions to RuntimesConfig and selftests.

Generated by Implement an approved plan PR for issue #314 · ● 66.3M ·

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants