Open freakboy3742 opened 2 months ago
I've raised this issue for discussion - I'm not 100% sold on whether it's a good idea. Before anyone starts on an implementation, please confirm consensus has been reached on whether this is a good idea.
+1 to this... just ran into a situation where because i installed briefcase
in the global python environment running briefcase dev -r
was installing all dependencies into the global environment. while this is my fault for installing briefcase
outside of a venv it was a confusing and unexpected user experience (and this is outside of the advantage of avoiding inconsistencies between local dev and the packaged environment as mentioned by @freakboy3742)
What is the problem or limitation you are having?
At present,
briefcase dev
uses the currently active virtual environment to run a project in developer mode.However:
Describe the solution you'd like
briefcase dev
should create and use a standalone virtual environment for development mode. This would ensure that each app has unique and isolated dependencies.Describe alternatives you've considered
Do nothing.
Additional context
The most notable impact of this approach is that dependencies installed in the briefcase environment will no longer be visible to development mode. This complicates the process of adding dependencies to a project; however, it would be consistent with the behavior of
briefcase run
- so arguably this is a good thing, as it would avoid the "package X is in my environment, why doesn'tbriefcase run
work" questions.If this change is made; we may want to consider to additional related changes:
--no-isolation
option that reverts to the current "use the briefcase environment" behaviorbriefcase add
command to manage adding new dependenciesAn alternative to (2) would be #1367 (or similar) - i.e., provide better integration with other tools that manage dependencies.
It will also impact on #881/#1714-style build tracking; but likely in a positive way, as isolation will remove some edge cases in keeping the environment current.