Skip to content

fix: normalize requirements paths in manifests - #910

Merged
tdstein merged 1 commit into
mainfrom
symphony/posit-dev_rsconnect-python_900-8a343a7a9897d9d4
Oct 28, 2026
Merged

tdstein merged 1 commit into
mainfrom
symphony/posit-dev_rsconnect-python_900-8a343a7a9897d9d4

Conversation

@tdstein

@tdstein tdstein commented Oct 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Normalize requirements paths relative to the deployment directory before inspecting the Python environment.
  • Reject paths outside the deployment directory, including symlink escapes.
  • Cover absolute, relative, normalized, and outside-project paths through the manifest CLI.

Validation

  • uv run --group test pytest -q tests/test_main.py::TestWriteManifestFramework tests/test_environment.py tests/test_bundle.py (189 passed)
  • uv run --group test ruff check rsconnect/environment.py tests/test_main.py
  • uv run --group test ruff format --check rsconnect/environment.py tests/test_main.py

Closes #900

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-10-28 18:44 UTC

@github-actions

Copy link
Copy Markdown

☂️ Python Coverage

current status: ✅

Overall Coverage

Lines Covered Coverage Threshold Status
11022 9685 88% 0% 🟢

New Files

No new covered files...

Modified Files

File Coverage Status
rsconnect/environment.py 92% 🟢
TOTAL 92% 🟢

updated for commit: 3f7f469 by action🐍

@tdstein
tdstein enabled auto-merge (squash) October 28, 2026 17:14
@tdstein
tdstein merged commit 35d5588 into main Oct 28, 2026
27 checks passed
@tdstein
tdstein deleted the symphony/posit-dev_rsconnect-python_900-8a343a7a9897d9d4 branch October 28, 2026 18:44
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 records an absolute --requirements-file path in manifest.json, breaking the server build

2 participants