In https://github.com/django-money/django-money/pull/433, I downgraded Tox because previous behavior is failing.
It seems since 3.1 that all our [django] sections in tox.ini are now concatenated, rather than picked individually.
So this is the actual result:
django111-py34 installdeps: .[test], django-reversion==1.10.0, djangorestframework>=3.3.3,<3.7.0, Django>=1.11.0,<2.0.0, django-reversion>=2.0.8, djangorestframework>=3.6.2, django-reversion>=2.0.8, djangorestframework>=3.7.3, django-reversion>=2.0.8, djangorestframework>=3.6.2
And this is the expected result:
django111-py34 installdeps: .[test], Django>=1.11.0,<2.0.0, django-reversion>=2.0.8, djangorestframework>=3.6.2
[tox]
envlist =
django_master-py{36,35}
django20-py{36,35,34,py3}
django111-py{36,35,34,27,py}
django18-py{35,34,27,py}
lint
docs
skipsdist = true
[testenv]
deps =
.[test]
django18: {[django]1.8.x}
django111: {[django]1.11.x}
django20: {[django]2.0.x}
django_master: {[django]master}
commands = py.test --ds=tests.settings --cov=./djmoney {posargs}
usedevelop = false
[django]
1.8.x =
Django>=1.8.0,<1.9.0
django-reversion==1.10.0
djangorestframework>=3.3.3,<3.7.0
1.11.x =
Django>=1.11.0,<2.0.0
django-reversion>=2.0.8
djangorestframework>=3.6.2
2.0.x =
Django>=2.0,<2.1
django-reversion>=2.0.8
djangorestframework>=3.7.3
master =
https://github.com/django/django/tarball/master
django-reversion>=2.0.8
djangorestframework>=3.6.2
pip list output@benjaoming - thanks for the report. I have to admit that this is the first time I see this django section, so this looks like an undocumented feature of tox to me (not the first one for sure).
We'll release a fix later today that reverts part of the substitution behaviour, which could possibly also fix this problem. We'll see. If not, we'll look into this after we fixed https://github.com/tox-dev/tox/issues/899
It's not the first time either we run into issues with the config file sytnax. Maybe we should freeze the config file format and start with a fresh start via pyproject.toml.
Sounds famliar :)
I didn't author our tox.ini from reading docs... I don't even remember writing it, I just co-maintain a project :) Should it be written differently? I'm fine about changing our config to something that is expected to work, rather than something that works unintentionally and breaks again all the same :)
Don't worry about it @benjaoming - all I can say is that I never have seen this usage befrore. We'll have to fix this anyway because we don't want to break configurations in the wild without warning. I will be preparign the relase now and will check it against your project to see if that also fixes your problem. If not there will be a bugfix for it soon.
Thanks a lot @obestwalter ! :)
You could also consider to detect and deprecate unwanted syntax (through warning messages) such that it can be finally cleaned up in say 3.2 or 3.3.
Definitely a good way to handle it - unfortunately we didn't even know that this syntax was supported :laughing:
I think we might actually feature freeze the old tox.ini config format at some point and move to a new format that is better defined and does not use a home grown parser. This would guarantee that the old way of configuring things stays stable for existing users that want to keep the tox.ini and we don't have regressions when we touch the parsing and substituion code.
A bit OT: No shame in writing your own parser when the syntax is simple, easy to read and does the job :) What I really like about tox.ini syntax is that I never read the docs for the syntax, I just used bits and pieces from other people's configs and _kind of_ guessed how it worked. Am glad that you are keeping it, and yes if it ain't broken don't fix it -- could be applied in the sense that it should also be feature frozen to avoid breakage. I never met any limitations to the config syntax in my Django world.
Smiles from a happy Tox user :)
I just cloned django-money and tested with 3.1.2 - I think we can close this as fixed for now.
JFI: Django appears to have been picked up correctly (Django>=1.11.0,<2.0.0), but only the 2nd and 3rd lines where used from all factors.
Was looking into this because of https://github.com/tox-dev/tox/issues/706.
Most helpful comment
I just cloned django-money and tested with 3.1.2 - I think we can close this as fixed for now.