Skip to content

fix: follow symlinks when bundling content - #955

Open
tdstein wants to merge 2 commits into
mainfrom
symphony/posit-dev_rsconnect-python_414-cdea88f84a0fa2d4
Open

tdstein wants to merge 2 commits into
mainfrom
symphony/posit-dev_rsconnect-python_414-cdea88f84a0fa2d4

Conversation

@tdstein

@tdstein tdstein commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

 app/
-  app.py -> ../source.py  # archived as a broken link
-  data -> ../data         # omitted
+  app.py                  # target contents
+  data/foo.csv            # target contents

Follow linked directories and archive linked files as regular files, preserving bundle paths and matching manifest checksums. Exclusions and config protection still apply, and directory loops produce a warning.

Evidence

  • Before: file links were archived as links and linked directories were omitted.
  • After: uv run pytest tests/test_bundle.py -q passes (160 tests), covering manifests, archives, exclusions, loops, and config protection. Ruff checks pass. Windows CI will verify the newline-independent fixtures.

Merge Danger

Door: two-way

Blast Radius: bundling

Closes #414

@github-actions

github-actions Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
PR Preview Action v1.8.2

QR code for preview link

🚀 View preview at
https://posit-dev.github.io/rsconnect-python/pr-preview/pr-955/

Built to branch gh-pages at 2026-11-10 17:25 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@github-actions

github-actions Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

☂️ Python Coverage

current status: ✅

Overall Coverage

Lines Covered Coverage Threshold Status
11207 9981 89% 0% 🟢

New Files

No new covered files...

Modified Files

File Coverage Status
rsconnect/bundle.py 89% 🟢
TOTAL 89% 🟢

updated for commit: 67d4d5e by action🐍

@tdstein tdstein mentioned this pull request Nov 10, 2026
1 of 5 tasks

@tdstein tdstein left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Windows tests are failing with:

FAILED tests/test_bundle.py::test_api_bundle_keeps_valid_symlink - AssertionError: assert b'data\r\n' == b'data\n'
  
  At index 4 diff: b'\r' != b'\n'
  
  Full diff: (-: missing in left side, +: extra in left side)
  - (b'data\n')
  + (b'data\r\n')
  ?         ++
FAILED tests/test_bundle.py::test_linked_content_in_shiny_manifest_and_bundles - AssertionError: assert '6768521f78ea7aa61a34fc9f51ff192e' == 'a9af1a5b719a9a4c3caf671fec09459b'

This branch has not been deployed

No deployments
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.

support following symlinks

1 participant