Skip to content

vfs: VFS diverges from the installer in ways that break environments #2580

Description

@baszalmstra
  • No shebang rewritingtext_ranged_read does plain byte substitution; the installer rewrites to #!/usr/bin/env … when the shebang exceeds 127 bytes (Linux) / 512 (macOS) or the prefix contains a space. Long or spaced mount paths yield kernel-unusable shebangs. The added shebang_length field that was meant to support this is dead code — only ever set to None, never read.
  • No clobbering resolution — duplicate paths across packages become duplicate readdir entries; the winner is nondeterministic because packages are collected via JoinSet::join_next().
  • Windows entry points wrong — hardcoded ./bin + for_windows=false, so noarch-python entry points on the flagship ProjFS path land in the wrong dir as non-executable Unix scripts (installer uses Scripts/ + .exe launcher).
  • pypi packages silently droppedbuild_metadata_tree only handles as_binary_conda(); Pypi lock entries vanish, yet compute_env_hash counts them. Silently incomplete environment.
  • Windows binary/backslash divergence — installer skips binary replacement on Windows and converts \/ in the prefix; the VFS does neither.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions