New issue 263: A real-world problems with Tox 2+ environment variable isolation
https://bitbucket.org/hpk42/tox/issue/263/a-real-world-problems-with-tox-2
saaj:
Another v2 problem that took me several hours of wondering *why*.
Briefly, it was a CI service *drone.io* and a code coverage service
*codecov.io*. Here's the relevant snippet from its client that can explain the
problem without me talking much about it:
```
#!python
elif os.getenv('CI') == "true" and os.getenv('DRONE') == "true":
# http://docs.drone.io/env.html
defaults.update(dict(branch=os.getenv('DRONE_BRANCH'),
service='drone.io',
build=os.getenv('DRONE_BUILD_NUMBER'),
build_url=os.getenv('DRONE_BUILD_URL'),
commit=os.getenv('DRONE_COMMIT')))
```
And an QA env that may look something like this obviously no longer sends
coverage data because it can't get information about the environment.
```
#!ini
[testenv:qa]
deps = coverage
commands =
coverage run --branch --source=lib setup.py test
codecov
```
I bet most of much QA services and their clients work the same way to identify
service, commit, branches, etc. And it's quite reasonable to do such things
from within a Tox env or even have dedicated Tox envs. So there's a serious
doubt that this idea of environment isolation (which already leaks because of
LANG exception) turned on by default is compatible with real-world Tox usage.
At very least there should be an option to restore outer environment at once.
Of course one can look at the env spec of a CI service, then examine QA
service's client and put bunch of `passenv` in `tox.ini`. But have doubts than
many developer will be happy about it.
As a side note, because it's already third v2 problem (others were missing LANG
with broken py3, missing {envsitepackagesdir}) I tend to think current v2
series is not production ready and is beta at most. Reverted to v1 again.
_______________________________________________
pytest-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pytest-commit