)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"4fad1a1940d094a1e450b81668384772a22ee84b","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Warning: this will only work when run under Debian/Ubuntu, as on other"},{"line_number":14,"context_line":"platforms like RedHat installing python-nss from pypi does not work."},{"line_number":15,"context_line":"https://bugzilla.redhat.com/show_bug.cgi?id\u003d1974890"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ib727242c1aba8597389259d8dbacba7194f9f0d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"b62a4520_9309ac25","line":15,"updated":"2021-06-23 19:44:39.000000000","message":"Ya, I\u0027d just remove it as it\u0027s not introduced here.","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"1e800763c9b383b88ee6f75e681fb9c671372cb1","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Warning: this will only work when run under Debian/Ubuntu, as on other"},{"line_number":14,"context_line":"platforms like RedHat installing python-nss from pypi does not work."},{"line_number":15,"context_line":"https://bugzilla.redhat.com/show_bug.cgi?id\u003d1974890"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ib727242c1aba8597389259d8dbacba7194f9f0d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"8bf9968c_da18ec68","line":15,"updated":"2021-06-23 16:41:22.000000000","message":"^ makes this a non-starter, not sure why python-nss can\u0027t work though","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"4b49cd9c6585fb2e8f74b3e7c50067f2e2ee628d","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Warning: this will only work when run under Debian/Ubuntu, as on other"},{"line_number":14,"context_line":"platforms like RedHat installing python-nss from pypi does not work."},{"line_number":15,"context_line":"https://bugzilla.redhat.com/show_bug.cgi?id\u003d1974890"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ib727242c1aba8597389259d8dbacba7194f9f0d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"c220aa95_adfb3770","line":15,"in_reply_to":"8bf9968c_da18ec68","updated":"2021-06-23 17:37:28.000000000","message":"Well, I can remove the entire paragraph about the Warning because is not introduced by this change, the issue is already present anyway.","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"19dcd5cde16d33a53bd6508231a9da99de7e32b7","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Warning: this will only work when run under Debian/Ubuntu, as on other"},{"line_number":14,"context_line":"platforms like RedHat installing python-nss from pypi does not work."},{"line_number":15,"context_line":"https://bugzilla.redhat.com/show_bug.cgi?id\u003d1974890"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ib727242c1aba8597389259d8dbacba7194f9f0d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"848cf560_8158a89b","line":15,"in_reply_to":"b62a4520_9309ac25","updated":"2021-06-24 09:34:10.000000000","message":"done","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"}],"openstack_requirements/cmds/generate.py":[{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"1e800763c9b383b88ee6f75e681fb9c671372cb1","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import hashlib"},{"line_number":16,"context_line":"import optparse"},{"line_number":17,"context_line":"import os.path"},{"line_number":18,"context_line":"import shutil"},{"line_number":19,"context_line":"import subprocess"},{"line_number":20,"context_line":"import sys"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"31d7308b_5e3512f9","line":18,"updated":"2021-06-23 16:41:22.000000000","message":"I\u0027m not sure switching to shutil has any real use here.","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"4fad1a1940d094a1e450b81668384772a22ee84b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import hashlib"},{"line_number":16,"context_line":"import optparse"},{"line_number":17,"context_line":"import os.path"},{"line_number":18,"context_line":"import shutil"},{"line_number":19,"context_line":"import subprocess"},{"line_number":20,"context_line":"import sys"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f0c6ff1_5e77e4fa","line":18,"updated":"2021-06-23 19:44:39.000000000","message":"ok, that makes sense, and it\u0027s a built-in, which is an easier argument.","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"4b49cd9c6585fb2e8f74b3e7c50067f2e2ee628d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import hashlib"},{"line_number":16,"context_line":"import optparse"},{"line_number":17,"context_line":"import os.path"},{"line_number":18,"context_line":"import shutil"},{"line_number":19,"context_line":"import subprocess"},{"line_number":20,"context_line":"import sys"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9b10b8e2_cb3f8a04","line":18,"in_reply_to":"31d7308b_5e3512f9","updated":"2021-06-23 17:37:28.000000000","message":"I does have a huge meaning because it allows us to specify python executables without full paths, full paths are not portable as python versions can be installed in various places, even the system ones (not to mention user level installed ones, like pyenv).\n\nThe previous code `os.path.exists(python):` was forcing use of only fully-qualified paths, nothing else would have worked.\n\nEspecially for our purpose (generate) we do not care much where the python executable comes from, but we care about its version, which is in the filename anyway. Change is also backwards compatible without any side-effects.","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"1e800763c9b383b88ee6f75e681fb9c671372cb1","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    freezes \u003d ["},{"line_number":228,"context_line":"        _freeze(options.requirements, python) for python in options.pythons]"},{"line_number":229,"context_line":"    _clone_versions(freezes, options)"},{"line_number":230,"context_line":"    blacklist \u003d _parse_blacklist(options.blacklist)"},{"line_number":231,"context_line":"    frozen \u003d ["},{"line_number":232,"context_line":"        \"# generated using: tox -e generate\","},{"line_number":233,"context_line":"        *sorted(_combine_freezes(freezes, blacklist), key\u003d_make_sort_key)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"eabcaeb1_9fb75eab","line":230,"updated":"2021-06-23 16:41:22.000000000","message":"comment goes here after blacklist line, just an additional line","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"4fad1a1940d094a1e450b81668384772a22ee84b","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    freezes \u003d ["},{"line_number":228,"context_line":"        _freeze(options.requirements, python) for python in options.pythons]"},{"line_number":229,"context_line":"    _clone_versions(freezes, options)"},{"line_number":230,"context_line":"    blacklist \u003d _parse_blacklist(options.blacklist)"},{"line_number":231,"context_line":"    frozen \u003d ["},{"line_number":232,"context_line":"        \"# generated using: tox -e generate\","},{"line_number":233,"context_line":"        *sorted(_combine_freezes(freezes, blacklist), key\u003d_make_sort_key)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"10565b40_2584d468","line":230,"updated":"2021-06-23 19:44:39.000000000","message":"ok, missed the quotes, you mind adding a newline between the comment and the sorted list?","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"19dcd5cde16d33a53bd6508231a9da99de7e32b7","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    freezes \u003d ["},{"line_number":228,"context_line":"        _freeze(options.requirements, python) for python in options.pythons]"},{"line_number":229,"context_line":"    _clone_versions(freezes, options)"},{"line_number":230,"context_line":"    blacklist \u003d _parse_blacklist(options.blacklist)"},{"line_number":231,"context_line":"    frozen \u003d ["},{"line_number":232,"context_line":"        \"# generated using: tox -e generate\","},{"line_number":233,"context_line":"        *sorted(_combine_freezes(freezes, blacklist), key\u003d_make_sort_key)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f738015_d1ba7acd","line":230,"in_reply_to":"10565b40_2584d468","updated":"2021-06-24 09:34:10.000000000","message":"done","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"4b49cd9c6585fb2e8f74b3e7c50067f2e2ee628d","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    freezes \u003d ["},{"line_number":228,"context_line":"        _freeze(options.requirements, python) for python in options.pythons]"},{"line_number":229,"context_line":"    _clone_versions(freezes, options)"},{"line_number":230,"context_line":"    blacklist \u003d _parse_blacklist(options.blacklist)"},{"line_number":231,"context_line":"    frozen \u003d ["},{"line_number":232,"context_line":"        \"# generated using: tox -e generate\","},{"line_number":233,"context_line":"        *sorted(_combine_freezes(freezes, blacklist), key\u003d_make_sort_key)]"}],"source_content_type":"text/x-python","patch_set":2,"id":"8718f880_34c5eea9","line":230,"in_reply_to":"eabcaeb1_9fb75eab","updated":"2021-06-23 17:37:28.000000000","message":"Sorry but I don\u0027t understand that. That comment line is for the output, needs to be first line in file. I prefered to include it in the list to keep the writing atomic.","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"}],"tox.ini":[{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"4fad1a1940d094a1e450b81668384772a22ee84b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"envlist \u003d validate,py3,pep8,pip-install"},{"line_number":5,"context_line":"ignore_basepython_conflict\u003dtrue"},{"line_number":6,"context_line":"requires \u003d"},{"line_number":7,"context_line":"  tox-extra"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":2,"id":"4a928e56_08212de0","line":7,"updated":"2021-06-23 19:44:39.000000000","message":"I\u0027d rather this be a separate review in that case.  Thanks.","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"1e800763c9b383b88ee6f75e681fb9c671372cb1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"envlist \u003d validate,py3,pep8,pip-install"},{"line_number":5,"context_line":"ignore_basepython_conflict\u003dtrue"},{"line_number":6,"context_line":"requires \u003d"},{"line_number":7,"context_line":"  tox-extra"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":2,"id":"51343cd2_6e60a8e5","line":7,"updated":"2021-06-23 16:41:22.000000000","message":"required for setting the default posargs value I imaggine?","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"19dcd5cde16d33a53bd6508231a9da99de7e32b7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"envlist \u003d validate,py3,pep8,pip-install"},{"line_number":5,"context_line":"ignore_basepython_conflict\u003dtrue"},{"line_number":6,"context_line":"requires \u003d"},{"line_number":7,"context_line":"  tox-extra"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":2,"id":"0f45a755_96191af1","line":7,"in_reply_to":"4a928e56_08212de0","updated":"2021-06-24 09:34:10.000000000","message":"done","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"},{"author":{"_account_id":24162,"name":"Sorin Sbârnea","display_name":"zbr","email":"ssbarnea@redhat.com","username":"ssbarnea","status":"do not feed the troll 🥕"},"change_message_id":"4b49cd9c6585fb2e8f74b3e7c50067f2e2ee628d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"envlist \u003d validate,py3,pep8,pip-install"},{"line_number":5,"context_line":"ignore_basepython_conflict\u003dtrue"},{"line_number":6,"context_line":"requires \u003d"},{"line_number":7,"context_line":"  tox-extra"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"[testenv]"},{"line_number":10,"context_line":"basepython \u003d python3"}],"source_content_type":"text/x-properties","patch_set":2,"id":"e0edbbb4_2510689e","line":7,"in_reply_to":"51343cd2_6e60a8e5","updated":"2021-06-23 17:37:28.000000000","message":"Not really, expansion defaults are already supported for years (cannot even remember when they were added). This is needed in order to report a non-success error code if git reports dirty after running the tests, a fail-safe mechanism that would tell developer to include change in commit (or add file to .gitignore).\n\nI can add a comment near it to explain its purpose. The change would still work fine w/o this but it will not identify this kind of problem.","commit_id":"a7e5a35a628b7047f739797eb8467809e3827f2b"}]}
