)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3d3be647543e16e8d1b48eac8bb81e5867a0c288","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- This change enforces the use of upper_constraints"},{"line_number":10,"context_line":"  in tox envs."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I2badb5a3cd5f1ab2a66d3ebd97432b77985ada1b"},{"line_number":13,"context_line":"(cherry picked from commit 96b5a11d35d74faf7c9866dceef66984dbcddae6)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfbec78f_2938323b","line":11,"updated":"2019-05-13 10:29:00.000000000","message":"You should include the \u0027Conflicts\u0027 section that\u0027s normally commented out here, then include a NOTE like so:\n\n  NOTE(ralonsoh): Conflicts are because we\u0027re missing a number\n  of changes, none of which are necessary to include here. In\n  addition, the constraints URL is modified to ensure constraints\n  for this stable version are used.","commit_id":"4fea0f60956f63124949738aefbe2001fc0a90af"}],"tox.ini":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3d3be647543e16e8d1b48eac8bb81e5867a0c288","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[testenv:py27]"},{"line_number":33,"context_line":"setenv \u003d"},{"line_number":34,"context_line":"    {[testenv]setenv}"},{"line_number":35,"context_line":"commands \u003d"},{"line_number":36,"context_line":"    stestr run --black-regex \".tests.functional\" \u0027{posargs}\u0027"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-properties","patch_set":1,"id":"dfbec78f_89d83e1e","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":21},"updated":"2019-05-13 10:29:00.000000000","message":"This shouldn\u0027t be necessary. Was it present in the original?\n\nLater: it wasn\u0027t, because these targets don\u0027t exist there. You can drop this, IMO","commit_id":"4fea0f60956f63124949738aefbe2001fc0a90af"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d1da3747427c8928f8b2c4061e0d4f8a0d69d055","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[testenv:py27]"},{"line_number":33,"context_line":"setenv \u003d"},{"line_number":34,"context_line":"    {[testenv]setenv}"},{"line_number":35,"context_line":"commands \u003d"},{"line_number":36,"context_line":"    stestr run --black-regex \".tests.functional\" \u0027{posargs}\u0027"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-properties","patch_set":1,"id":"dfbec78f_a91c22c1","line":34,"range":{"start_line":33,"start_character":0,"end_line":34,"end_character":21},"in_reply_to":"dfbec78f_89d83e1e","updated":"2019-05-13 10:33:25.000000000","message":"Done","commit_id":"4fea0f60956f63124949738aefbe2001fc0a90af"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3d3be647543e16e8d1b48eac8bb81e5867a0c288","unresolved":false,"context_lines":[{"line_number":58,"context_line":"[testenv:docs]"},{"line_number":59,"context_line":"deps \u003d"},{"line_number":60,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":61,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":62,"context_line":"commands \u003d python setup.py build_sphinx"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[testenv:releasenotes]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"dfbec78f_c9fb9676","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":36},"updated":"2019-05-13 10:29:00.000000000","message":"I don\u0027t think you can do this since we don\u0027t have a \u0027doc/requirements.txt\u0027 file on this branch, right?","commit_id":"4fea0f60956f63124949738aefbe2001fc0a90af"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d1da3747427c8928f8b2c4061e0d4f8a0d69d055","unresolved":false,"context_lines":[{"line_number":58,"context_line":"[testenv:docs]"},{"line_number":59,"context_line":"deps \u003d"},{"line_number":60,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":61,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":62,"context_line":"commands \u003d python setup.py build_sphinx"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[testenv:releasenotes]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"dfbec78f_891fdeb5","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":36},"in_reply_to":"dfbec78f_c9fb9676","updated":"2019-05-13 10:33:25.000000000","message":"Done","commit_id":"4fea0f60956f63124949738aefbe2001fc0a90af"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3d3be647543e16e8d1b48eac8bb81e5867a0c288","unresolved":false,"context_lines":[{"line_number":62,"context_line":"commands \u003d python setup.py build_sphinx"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[testenv:releasenotes]"},{"line_number":65,"context_line":"deps \u003d"},{"line_number":66,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":67,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":68,"context_line":"commands \u003d sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"[flake8]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"dfbec78f_e9f8da7b","line":67,"range":{"start_line":65,"start_character":0,"end_line":67,"end_character":36},"updated":"2019-05-13 10:29:00.000000000","message":"Ditto","commit_id":"4fea0f60956f63124949738aefbe2001fc0a90af"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d1da3747427c8928f8b2c4061e0d4f8a0d69d055","unresolved":false,"context_lines":[{"line_number":62,"context_line":"commands \u003d python setup.py build_sphinx"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[testenv:releasenotes]"},{"line_number":65,"context_line":"deps \u003d"},{"line_number":66,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":67,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":68,"context_line":"commands \u003d sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"[flake8]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"dfbec78f_497b26f4","line":67,"range":{"start_line":65,"start_character":0,"end_line":67,"end_character":36},"in_reply_to":"dfbec78f_e9f8da7b","updated":"2019-05-13 10:33:25.000000000","message":"Done","commit_id":"4fea0f60956f63124949738aefbe2001fc0a90af"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dfa50029e9ffe6571742068195734b61e0db26bd","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":28,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":29,"context_line":"  -r{toxinidir}/test-requirements.txt"},{"line_number":30,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[testenv:py27]"},{"line_number":33,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":2,"id":"dfbec78f_642f318e","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":36},"updated":"2019-05-13 11:00:43.000000000","message":"Missed this. It doesn\u0027t exist here either so you don\u0027t need to override deps for this (it\u0027ll be inherited from \u0027testenv\u0027)","commit_id":"de22959ace583122c4513ccf3a78181b88d037db"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0011fae65e7ec92822e1ba7890bc1bf559222c23","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":28,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":29,"context_line":"  -r{toxinidir}/test-requirements.txt"},{"line_number":30,"context_line":"  -r{toxinidir}/doc/requirements.txt"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"[testenv:py27]"},{"line_number":33,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":2,"id":"dfbec78f_a4c44960","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":36},"in_reply_to":"dfbec78f_642f318e","updated":"2019-05-13 11:40:51.000000000","message":"Done","commit_id":"de22959ace583122c4513ccf3a78181b88d037db"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dfa50029e9ffe6571742068195734b61e0db26bd","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  coverage html --include\u003d\u0027os_vif/*\u0027 -d covhtml -i"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"[testenv:docs]"},{"line_number":55,"context_line":"deps \u003d"},{"line_number":56,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":57,"context_line":"commands \u003d python setup.py build_sphinx"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[testenv:releasenotes]"}],"source_content_type":"text/x-properties","patch_set":2,"id":"dfbec78f_841a656c","line":56,"range":{"start_line":55,"start_character":0,"end_line":56,"end_character":23},"updated":"2019-05-13 11:00:43.000000000","message":"Nah, you need to drop this entirely","commit_id":"de22959ace583122c4513ccf3a78181b88d037db"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0011fae65e7ec92822e1ba7890bc1bf559222c23","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  coverage html --include\u003d\u0027os_vif/*\u0027 -d covhtml -i"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"[testenv:docs]"},{"line_number":55,"context_line":"deps \u003d"},{"line_number":56,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":57,"context_line":"commands \u003d python setup.py build_sphinx"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[testenv:releasenotes]"}],"source_content_type":"text/x-properties","patch_set":2,"id":"dfbec78f_44a30db3","line":56,"range":{"start_line":55,"start_character":0,"end_line":56,"end_character":23},"in_reply_to":"dfbec78f_841a656c","updated":"2019-05-13 11:40:51.000000000","message":"Done","commit_id":"de22959ace583122c4513ccf3a78181b88d037db"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dfa50029e9ffe6571742068195734b61e0db26bd","unresolved":false,"context_lines":[{"line_number":57,"context_line":"commands \u003d python setup.py build_sphinx"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[testenv:releasenotes]"},{"line_number":60,"context_line":"deps \u003d"},{"line_number":61,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":62,"context_line":"commands \u003d sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[flake8]"}],"source_content_type":"text/x-properties","patch_set":2,"id":"dfbec78f_a4176945","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":23},"updated":"2019-05-13 11:00:43.000000000","message":"And this","commit_id":"de22959ace583122c4513ccf3a78181b88d037db"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0011fae65e7ec92822e1ba7890bc1bf559222c23","unresolved":false,"context_lines":[{"line_number":57,"context_line":"commands \u003d python setup.py build_sphinx"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[testenv:releasenotes]"},{"line_number":60,"context_line":"deps \u003d"},{"line_number":61,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":62,"context_line":"commands \u003d sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"[flake8]"}],"source_content_type":"text/x-properties","patch_set":2,"id":"dfbec78f_64a8918c","line":61,"range":{"start_line":60,"start_character":0,"end_line":61,"end_character":23},"in_reply_to":"dfbec78f_a4176945","updated":"2019-05-13 11:40:51.000000000","message":"Done","commit_id":"de22959ace583122c4513ccf3a78181b88d037db"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"814f44c65a1c7eb41c7eeb390f7b0f66a05eaa54","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"[testenv:venv]"},{"line_number":25,"context_line":"commands \u003d {posargs}"},{"line_number":26,"context_line":"deps \u003d"},{"line_number":27,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":28,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":29,"context_line":"  -r{toxinidir}/test-requirements.txt"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"[testenv:py27]"},{"line_number":32,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":3,"id":"dfbec78f_5a80c6c0","line":29,"range":{"start_line":26,"start_character":0,"end_line":29,"end_character":37},"updated":"2019-05-13 13:50:46.000000000","message":"You can drop this entirely too (it\u0027ll be inherited from \u0027[testenv]deps\u0027 by default","commit_id":"72428d90c1539e007630738402e8a7e695cc3405"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"282788d9857e78cc13c65af719daeb8a8b09dff9","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"[testenv:venv]"},{"line_number":25,"context_line":"commands \u003d {posargs}"},{"line_number":26,"context_line":"deps \u003d"},{"line_number":27,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":28,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":29,"context_line":"  -r{toxinidir}/test-requirements.txt"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"[testenv:py27]"},{"line_number":32,"context_line":"commands \u003d"}],"source_content_type":"text/x-properties","patch_set":3,"id":"dfbec78f_beb53134","line":29,"range":{"start_line":26,"start_character":0,"end_line":29,"end_character":37},"in_reply_to":"dfbec78f_5a80c6c0","updated":"2019-05-13 16:53:01.000000000","message":"Done","commit_id":"72428d90c1539e007630738402e8a7e695cc3405"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c4835167920666268c359ecea3152a36e839bc65","unresolved":false,"context_lines":[{"line_number":8,"context_line":"install_command \u003d pip install -U {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d"},{"line_number":10,"context_line":"  VIRTUAL_ENV\u003d{envdir}"},{"line_number":11,"context_line":"  CONSTRAINTS_OPT\u003d-c {env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/queens}"},{"line_number":12,"context_line":"deps \u003d"},{"line_number":13,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":14,"context_line":"  -r{toxinidir}/requirements.txt"}],"source_content_type":"text/x-properties","patch_set":4,"id":"bfb3d3c7_3a8da931","line":11,"updated":"2019-05-29 14:49:59.000000000","message":"http://logs.openstack.org/80/658780/4/check/openstack-tox-py35/b70c01b/tox/py35-1.log is a bit weird in that I don\u0027t see the deps from constraints used here:\n\ncmd: /home/zuul/src/opendev.org/openstack/os-vif/.tox/py35/bin/pip install -U -c/home/zuul/src/opendev.org/openstack/requirements/upper-constraints.txt -r/home/zuul/src/opendev.org/openstack/os-vif/requirements.txt -r/home/zuul/src/opendev.org/openstack/os-vif/test-requirements.txt\n\nbut it does appear to properly restrict to queens upper constraints. For example, I checked on the version of oslo.versionedobjects installed and it\u0027s 1.31.3:\n\nCollecting oslo.versionedobjects\u003d\u003d\u003d1.31.3 (from -c /home/zuul/src/opendev.org/openstack/requirements/upper-constraints.txt (line 235))\n  Downloading http://mirror.bhs1.ovh.openstack.org/pypifiles/packages/fc/55/09c89a3c1724732f435b1639640ac58f4ab485f07c26aa5d1e452633040f/oslo.versionedobjects-1.31.3-py2.py3-none-any.whl (74kB)\n\nwhich matches what\u0027s in the queens constraints:\n\nhttps://opendev.org/openstack/requirements/raw/branch/stable/queens/upper-constraints.txt\n\noslo.versionedobjects\u003d\u003d\u003d1.31.3\n\nAnd if we were getting the constraints from master we\u0027d be pulling in 1.36.0:\n\nhttps://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt\n\noslo.versionedobjects\u003d\u003d\u003d1.36.0\n\nSo yeah this looks like it does the trick, even though I can\u0027t tell at all from the tox logs.","commit_id":"e09d87900af33f9db727d79e5d1292827e1a7420"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"016e0c62874216805b426e125cf04dbcd93274a4","unresolved":false,"context_lines":[{"line_number":8,"context_line":"install_command \u003d pip install -U {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d"},{"line_number":10,"context_line":"  VIRTUAL_ENV\u003d{envdir}"},{"line_number":11,"context_line":"  CONSTRAINTS_OPT\u003d-c {env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/queens}"},{"line_number":12,"context_line":"deps \u003d"},{"line_number":13,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":14,"context_line":"  -r{toxinidir}/requirements.txt"}],"source_content_type":"text/x-properties","patch_set":4,"id":"bfb3d3c7_3a092995","line":11,"in_reply_to":"bfb3d3c7_3a8da931","updated":"2019-05-29 14:55:03.000000000","message":"Looking at another os-vif change on stable/queens before this fix and I can see it\u0027s pulling oslo.versionedobjects from master u-c which is 1.36.0:\n\nhttp://logs.openstack.org/94/655694/7/check/openstack-tox-py35/c0ad3dc/tox/py35-3.log\n\noslo.versionedobjects\u003d\u003d1.36.0","commit_id":"e09d87900af33f9db727d79e5d1292827e1a7420"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"fa076afcb0ca189be2df60665564b86f146fd2dd","unresolved":false,"context_lines":[{"line_number":8,"context_line":"install_command \u003d pip install -U {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d"},{"line_number":10,"context_line":"  VIRTUAL_ENV\u003d{envdir}"},{"line_number":11,"context_line":"  CONSTRAINTS_OPT\u003d-c {env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/queens}"},{"line_number":12,"context_line":"deps \u003d"},{"line_number":13,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":14,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":15,"context_line":"  -r{toxinidir}/test-requirements.txt"},{"line_number":16,"context_line":"whitelist_externals \u003d bash"}],"source_content_type":"text/x-properties","patch_set":4,"id":"dfbec78f_a88f2acb","line":13,"range":{"start_line":11,"start_character":0,"end_line":13,"end_character":23},"updated":"2019-05-14 08:55:35.000000000","message":"Not complaining in the slightest, but I see Nova just updates install_command like here:\n\nhttps://github.com/openstack/nova/commit/db66adb3cb2b2b90b89c4144f1e18c05b5c57d2a","commit_id":"e09d87900af33f9db727d79e5d1292827e1a7420"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"58cffdf2475283eb92d0767e2e1d3693a9d8131b","unresolved":false,"context_lines":[{"line_number":8,"context_line":"install_command \u003d pip install -U {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d"},{"line_number":10,"context_line":"  VIRTUAL_ENV\u003d{envdir}"},{"line_number":11,"context_line":"  CONSTRAINTS_OPT\u003d-c {env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/queens}"},{"line_number":12,"context_line":"deps \u003d"},{"line_number":13,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":14,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":15,"context_line":"  -r{toxinidir}/test-requirements.txt"},{"line_number":16,"context_line":"whitelist_externals \u003d bash"}],"source_content_type":"text/x-properties","patch_set":4,"id":"dfbec78f_e374656a","line":13,"range":{"start_line":11,"start_character":0,"end_line":13,"end_character":23},"in_reply_to":"dfbec78f_a88f2acb","updated":"2019-05-14 09:14:28.000000000","message":"Yes, both work the same. This link will redirect to https://opendev.org/openstack/requirements/raw/branch/stable/queens/upper-constraints.txt","commit_id":"e09d87900af33f9db727d79e5d1292827e1a7420"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f4af80aa3e201d25e26232a9ecb59b9967e115a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"install_command \u003d pip install -U {opts} {packages}"},{"line_number":9,"context_line":"setenv \u003d"},{"line_number":10,"context_line":"  VIRTUAL_ENV\u003d{envdir}"},{"line_number":11,"context_line":"  CONSTRAINTS_OPT\u003d-c {env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/queens}"},{"line_number":12,"context_line":"deps \u003d"},{"line_number":13,"context_line":"  {env:CONSTRAINTS_OPT}"},{"line_number":14,"context_line":"  -r{toxinidir}/requirements.txt"},{"line_number":15,"context_line":"  -r{toxinidir}/test-requirements.txt"},{"line_number":16,"context_line":"whitelist_externals \u003d bash"}],"source_content_type":"text/x-properties","patch_set":4,"id":"dfbec78f_a6375a4d","line":13,"range":{"start_line":11,"start_character":0,"end_line":13,"end_character":23},"in_reply_to":"dfbec78f_e374656a","updated":"2019-05-14 11:20:17.000000000","message":"yes i chose to use constratisn_opt instead as i think that is cleaner then the way nova does it and it avoid the issue with the way nova does it that breaks lower constratints\n\nso i would prefer not to follow novas patteren here.","commit_id":"e09d87900af33f9db727d79e5d1292827e1a7420"}]}
