)]}'
{"tox.ini":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee4ebf493ffba3d1e6f469a1e84d9867ccff0b4c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 2.0"},{"line_number":3,"context_line":"envlist \u003d py35-constraints,py27-constraints,pypy-constraints,pep8-constraints"},{"line_number":4,"context_line":"skipsdist \u003d True"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f7c97a3_a50fe537","line":3,"range":{"start_line":3,"start_character":10,"end_line":3,"end_character":26},"updated":"2018-06-28 21:10:17.000000000","message":"There is no environment defined for this below, so I\u0027m not sure what the point is.","commit_id":"814c2e327d3f1070835766a858a1257e20715087"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2d76d658b3d7828c48a4437e9a00f6b46745774e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[tox]"},{"line_number":2,"context_line":"minversion \u003d 2.0"},{"line_number":3,"context_line":"envlist \u003d py35-constraints,py27-constraints,pypy-constraints,pep8-constraints"},{"line_number":4,"context_line":"skipsdist \u003d True"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"[testenv]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f7c97a3_e488d622","line":3,"range":{"start_line":3,"start_character":10,"end_line":3,"end_character":26},"in_reply_to":"5f7c97a3_a50fe537","updated":"2018-07-09 08:51:53.000000000","message":"There is...","commit_id":"814c2e327d3f1070835766a858a1257e20715087"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2d76d658b3d7828c48a4437e9a00f6b46745774e","unresolved":false,"context_lines":[{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"install_command \u003d"},{"line_number":9,"context_line":"                  constraints: {[testenv:common-constraints]install_command}"},{"line_number":10,"context_line":"                  pip install -U {opts} {packages}"},{"line_number":11,"context_line":"setenv \u003d"},{"line_number":12,"context_line":"   VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f7c97a3_443e6a26","line":9,"range":{"start_line":9,"start_character":18,"end_line":9,"end_character":30},"updated":"2018-07-09 08:51:53.000000000","message":"...and it\u0027s defined here.\n\ntox tokenizes environment names by splitting on dashes and calls these tokens factors; for example, the \u0027py35-constraints\u0027 environment contains the \u0027py35\u0027 and \u0027constraints\u0027 tokens. The pyNN tokens have special significance, providing a default (and unfortunately overrideable) basepython value. All other tokens are used to allow you to do special steps such as here, where \u0027constraints\u0027 will result in a different \u0027install_command\u0027 being used. See the docs for more info [1].\n\nNow, the real question is whether we\u0027d need to maintain these things as separate environments or whether we should roll it in like we do for nova, os-vif, etc. I\u0027d assumed there was a good reason for this but it\u0027s probably best to get jaypipes to weigh in on it first.\n\n[1] http://tox.readthedocs.io/en/latest/config.html#factors-and-factor-conditional-settings","commit_id":"814c2e327d3f1070835766a858a1257e20715087"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"8c45e6cfd3fa719c7aecf4ad68b6579e95c204bb","unresolved":false,"context_lines":[{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"install_command \u003d"},{"line_number":9,"context_line":"                  constraints: {[testenv:common-constraints]install_command}"},{"line_number":10,"context_line":"                  pip install -U {opts} {packages}"},{"line_number":11,"context_line":"setenv \u003d"},{"line_number":12,"context_line":"   VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f7c97a3_73e61216","line":9,"range":{"start_line":9,"start_character":18,"end_line":9,"end_character":30},"in_reply_to":"5f7c97a3_443e6a26","updated":"2018-07-17 12:15:20.000000000","message":"No good reason. I copy-pasted things from os-vif. Please do whatever is best practice for all of this.","commit_id":"814c2e327d3f1070835766a858a1257e20715087"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7540fb1ddb220dfd4022f98b9cd88ab2c4a634da","unresolved":false,"context_lines":[{"line_number":6,"context_line":"[testenv]"},{"line_number":7,"context_line":"usedevelop \u003d True"},{"line_number":8,"context_line":"install_command \u003d"},{"line_number":9,"context_line":"                  constraints: {[testenv:common-constraints]install_command}"},{"line_number":10,"context_line":"                  pip install -U {opts} {packages}"},{"line_number":11,"context_line":"setenv \u003d"},{"line_number":12,"context_line":"   VIRTUAL_ENV\u003d{envdir}"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f7c97a3_36c088e0","line":9,"range":{"start_line":9,"start_character":18,"end_line":9,"end_character":30},"in_reply_to":"5f7c97a3_73e61216","updated":"2018-07-17 13:10:49.000000000","message":"OK, let\u0027s kill the constraints factor and install with constraints by default now. That should probably be a precursor patch to this.","commit_id":"814c2e327d3f1070835766a858a1257e20715087"}]}
