Skip to content

Pass through ProgramFiles* and ProgramData by default #2382

@jaraco

Description

@jaraco

I'd like to follow up on #1673. I couldn't comment or even +1 that issue.

I believe the characterization of the issue as setuptools-specific was incorrect.

Although the issue does affect Setuptools and not Flit, that's only because Setuptools supports building C extensions on Windows.

The issue can't be fixed in Setuptools. By the time tox has masked the ProgramFiles env var, Setuptools has little hope of recovering that setting.

We're not asking tox to patch Setuptools. Instead, we're asking tox to consider honoring the system's intrinsic environment configuration by passing through system-level variables, variables that would be unlikely to be configured by the user and which are necessary for basic operation on the platform (similar to PATH, SYSTEMDRIVE, and SYSTEMROOT).

Failing to support this model will instead require every project that builds extension modules on Windows to bypass this setting in their tox config. I believe this issue was largely missed until recently because most users were still testing on older platforms/compilers that did not rely on vswhere for discovery, but now that Windows 2022 is the default in Github, it's affecting a wide array of users. I contend:

  • this exemption is required in every case it affects
  • there is no known case that this masking is currently important
  • the number of affected projects is large.

I can put together a repro that doesn't involve Setuptools if that helps persuade.

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature:newsomething does not exist yet, but should

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions