Title: Auto-activating a venv in every new terminal should be opt-in, not opt-on-by-default
Body:
python.terminal.activateEnvironment defaults to true, so as soon as the extension detects a virtual environment anywhere in a workspace, it silently runs a source .../activate in every new integrated terminal, and prints that command as if the user had typed it.
I understand this is documented and technically "working as intended." That's not the same as being the right default. The requirement itself is the problem, not the implementation of it.
The integrated terminal is shared infrastructure. It's used for git, Docker, other language toolchains, ad-hoc shell scripts, none of which have anything to do with Python. Mutating that shell's environment on every single new terminal, without being asked, is a side effect most users did not opt into. It just happens because a .venv folder exists somewhere in the workspace.
If some users want this, that's a fine feature to offer, but it should be something they turn on, not something they have to discover and turn off after wondering why their shell has an unexpected source line in it. Opt-in preserves the feature for people who want it without imposing it on everyone else who has a venv anywhere in their repo.
Ask: flip the default to python.terminal.activateEnvironment: false, or at minimum make the first auto-activation an explicit, dismissible prompt instead of a silent shell mutation.
Title: Auto-activating a venv in every new terminal should be opt-in, not opt-on-by-default
Body:
python.terminal.activateEnvironmentdefaults totrue, so as soon as the extension detects a virtual environment anywhere in a workspace, it silently runs asource .../activatein every new integrated terminal, and prints that command as if the user had typed it.I understand this is documented and technically "working as intended." That's not the same as being the right default. The requirement itself is the problem, not the implementation of it.
The integrated terminal is shared infrastructure. It's used for git, Docker, other language toolchains, ad-hoc shell scripts, none of which have anything to do with Python. Mutating that shell's environment on every single new terminal, without being asked, is a side effect most users did not opt into. It just happens because a
.venvfolder exists somewhere in the workspace.If some users want this, that's a fine feature to offer, but it should be something they turn on, not something they have to discover and turn off after wondering why their shell has an unexpected
sourceline in it. Opt-in preserves the feature for people who want it without imposing it on everyone else who has a venv anywhere in their repo.Ask: flip the default to
python.terminal.activateEnvironment: false, or at minimum make the first auto-activation an explicit, dismissible prompt instead of a silent shell mutation.