Simplification of venv configuration scripts and delegation to a Python script #1957
+438
−877
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Simplify the virtual-environment setup by replacing large, platform-specific interactive shells with small delegating wrappers and a single cross-platform Python setup script.
What I changed
Replaced the bulk of the old interactive logic in setup_venv.bat with a minimal Windows wrapper that finds Python and delegates to setup_venv.py.
Replaced the bulk of the old interactive logic in setup_venv.command with a minimal macOS wrapper that locates Python and execs setup_venv.py.
Added setup_venv.py: a cross-platform, interactive Python script that:
*.egg-info/,dist/,build/).Why
Single, maintainable entrypoint for venv creation and dependency installation reduces duplication and divergence across platform scripts.
Moving to pyproject.toml optional-dependencies / dependency-groups centralizes package metadata, making it simpler to install configurable dependency sets via package extras (and easier to keep synced).
A Python-based installer improves cross-platform behavior, error handling, and is easier to extend and test than complex shell/batch logic.
User-facing notes / upgrade steps
The public entrypoints remain the same: run setup_venv.bat on Windows or setup_venv.command on macOS — these now delegate to python tools/setup_venv.py.
You can run the new installer directly:
python tools/setup_venv.py.requirements.txt and many per-platform requirement files have been removed; use package extras from pyproject.toml, e.g.:
Testing / verification
woption (the script will attempt to install the specified PySide6/qtpy versions).