)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"457f49c3c0453ace2e33778620f1a81bdb31d1ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ac94e41b_1e579034","updated":"2025-09-08 19:04:05.000000000","message":"https://zuul.opendev.org/t/openstack/build/e3e6e8a552fa476aaea0c899492f0b7c/log/job-output.txt#3977\n\nin ci it does seam to pick up both but i need to rebase i think to ensure i have gotten ride of any trace of inplace and i want to see if i  can replicate that ci behaivor localy by default","commit_id":"4ff8282f1e1e0609f4a7016660da1d9839117ebe"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9e4b7c604d597145b9e6a2baae494f52bd6a8d3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"85053122_060948d1","updated":"2025-09-08 18:58:47.000000000","message":"this is not","commit_id":"4ff8282f1e1e0609f4a7016660da1d9839117ebe"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63c5afc75a439562c3a1c2d51b732a92bc81268e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"86861c69_ed04fb04","updated":"2025-09-09 11:05:22.000000000","message":"I don\u0027t think this will work. zuul executes the `pep8` tox target. That target needs to apply autopep8, otherwise most people will use it but a few stragglers won\u0027t and we\u0027ll end up with patches making more changes than necessary when the former group modifies files last edited by the latter.","commit_id":"ea6e37f012f19ed63fd74b47cec7f2863031b634"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"aa324d4e06da477682f03eb1192bd3d32752907f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5ad2d41b_9f68481e","in_reply_to":"86861c69_ed04fb04","updated":"2025-09-09 11:09:44.000000000","message":"this does still run autopep8 but with --diff instead of -i or --in-place\n\n--exit-code means that if it woudl generate a diff or modification it will exit non zero and fail the tox env.\n\nso this is very similar to how ti used to work\n\nhttps://review.opendev.org/c/openstack/nova/+/896227/5/tox.ini#b131\n\nalthough i did not include the -r so that it runs only over the modified files","commit_id":"ea6e37f012f19ed63fd74b47cec7f2863031b634"}],"tox.ini":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"614468be8018af140cfe26c86b761abce80a3704","unresolved":true,"context_lines":[{"line_number":130,"context_line":"extras \u003d"},{"line_number":131,"context_line":"commands \u003d"},{"line_number":132,"context_line":"  bash -c \u0027SKIP\u003dautopep8 pre-commit run --all-files --show-diff-on-failure\u0027"},{"line_number":133,"context_line":"  pre-commit run --all-files --show-diff-on-failure --hook-stage manual autopep8"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"[testenv:mypy]"},{"line_number":136,"context_line":"description \u003d"}],"source_content_type":"text/x-properties","patch_set":1,"id":"63878e47_ff9bed3b","line":133,"updated":"2025-09-08 18:33:42.000000000","message":"so the bhavior of this is as follows\n\nwhen using bash -c the retrun code of the executed command is propagated\n\n\n```\n[19:25:48]❯ bash -c \u0027/bin/false\u0027 ; echo $?\n1\n~/repos/nova on optional-formating:master [$?⇡] via python: v3.11.13 (.venv) \n[19:25:56]\u003e bash -c \u0027/bin/true\u0027 ; echo $?\n0\n```\n\ntox will run both commands even if the first fails.\nand you will see teh output in your terminal.\n\nthis is very slightly more verbose but it pretty similar\n\n```\n~/repos/nova on optional-formating:master [$!+?] via python: v3.11.13 (.venv) \n[18:28:47]\u003e tox -e pep8\n.pkg: _optional_hooks\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\n.pkg: get_requires_for_build_sdist\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\n.pkg: get_requires_for_build_editable\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\n.pkg: build_editable\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\npep8: install_package\u003e python -I -m pip install -chttps://releases.openstack.org/constraints/upper/master --force-reinstall --no-deps /home/smooney/repos/nova/.tox/.tmp/package/293/nova-31.1.0.dev357-0.editable-py3-none-any.whl\npep8: commands[0]\u003e bash -c \u0027SKIP\u003dautopep8 pre-commit run --all-files --show-diff-on-failure\u0027\ntrim trailing whitespace.................................................Passed\nmixed line ending........................................................Passed\nfix utf-8 byte order marker..............................................Passed\ncheck that executables have shebangs.....................................Passed\ncheck that scripts with shebangs are executable..........................Passed\ncheck json...............................................................Passed\ncheck yaml...............................................................Passed\ncheck for added large files..............................................Passed\ncheck for merge conflicts................................................Passed\ncheck for case conflicts.................................................Passed\ndetect private key.......................................................Passed\ndebug statements (python)................................................Passed\ncheck docstring is first.................................................Passed\nTabs remover.............................................................Passed\nautopep8................................................................Skipped\nhacking..................................................................Failed\n- hook id: hacking\n- exit code: 1\n\nnova/test.py:113:16: E201 whitespace after \u0027(\u0027\nnova/test.py:113:22: E225 missing whitespace around operator\n\ncodespell................................................................Passed\nmypy.....................................................................Passed\nSphinx Lint..............................................................Passed\npre-commit hook(s) made changes.\nIf you are seeing this message in CI, reproduce locally with: `pre-commit run --all-files`.\nTo run `pre-commit` as part of git workflow, use `pre-commit install`.\nAll changes made by hooks:\ndiff --git a/nova/test.py b/nova/test.py\nindex 335bb759dd..799c1819d7 100644\n--- a/nova/test.py\n+++ b/nova/test.py\n@@ -110,7 +110,7 @@ def _poison_unfair_compute_resource_semaphore_locking():\n         # passed as args or as kwargs.\n         # Note that we cannot import COMPUTE_RESOURCE_SEMAPHORE as that would\n         # apply the decorators we want to poison here.\n-        if len(args) \u003e\u003d 1:\n+        if len( args)\u003e\u003d1:\n             name \u003d args[0]\n         else:\n             name \u003d kwargs.get(\"name\")\npep8: exit 1 (23.40 seconds) /home/smooney/repos/nova\u003e bash -c \u0027SKIP\u003dautopep8 pre-commit run --all-files --show-diff-on-failure\u0027 pid\u003d2283681\n.pkg: _exit\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\n  pep8: FAIL code 1 (28.96\u003dsetup[5.56]+cmd[23.40] seconds)\n  evaluation failed :( (29.10 seconds)\n  ```","commit_id":"4ff8282f1e1e0609f4a7016660da1d9839117ebe"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"27ed3be3ff5e70661924db067d2a766c927357aa","unresolved":false,"context_lines":[{"line_number":130,"context_line":"extras \u003d"},{"line_number":131,"context_line":"commands \u003d"},{"line_number":132,"context_line":"  bash -c \u0027SKIP\u003dautopep8 pre-commit run --all-files --show-diff-on-failure\u0027"},{"line_number":133,"context_line":"  pre-commit run --all-files --show-diff-on-failure --hook-stage manual autopep8"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"[testenv:mypy]"},{"line_number":136,"context_line":"description \u003d"}],"source_content_type":"text/x-properties","patch_set":1,"id":"a7ce628c_17203224","line":133,"in_reply_to":"1bb5a9c4_d455b914","updated":"2025-09-08 21:26:57.000000000","message":"im pretty sure that the ci is invokeign tox with set +e or a non interactive shell\nso i have emulated that with a helper script to ensure both invoctions run.\n\nlets see if that work in ci.\n\nthe third approch i have considered is just using a local hook to run autopep8 via a script that will check an envionmental varible that we woudl set diffently in tox but that seam more complicated this this.","commit_id":"4ff8282f1e1e0609f4a7016660da1d9839117ebe"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9e4b7c604d597145b9e6a2baae494f52bd6a8d3f","unresolved":true,"context_lines":[{"line_number":130,"context_line":"extras \u003d"},{"line_number":131,"context_line":"commands \u003d"},{"line_number":132,"context_line":"  bash -c \u0027SKIP\u003dautopep8 pre-commit run --all-files --show-diff-on-failure\u0027"},{"line_number":133,"context_line":"  pre-commit run --all-files --show-diff-on-failure --hook-stage manual autopep8"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"[testenv:mypy]"},{"line_number":136,"context_line":"description \u003d"}],"source_content_type":"text/x-properties","patch_set":1,"id":"1bb5a9c4_d455b914","line":133,"in_reply_to":"63878e47_ff9bed3b","updated":"2025-09-08 18:58:47.000000000","message":"Actully that not how it works it fails on the first one\n \n```\n[19:53:57]\u003e tox -e pep8\n.pkg: _optional_hooks\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\n.pkg: get_requires_for_build_sdist\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\n.pkg: get_requires_for_build_editable\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\n.pkg: build_editable\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\npep8: install_package\u003e python -I -m pip install -chttps://releases.openstack.org/constraints/upper/master --force-reinstall --no-deps /home/smooney/repos/nova/.tox/.tmp/package/305/nova-31.1.0.dev360-0.editable-py3-none-any.whl\npep8: commands[0]\u003e bash -c \u0027SKIP\u003dautopep8 pre-commit run --all-files --show-diff-on-failure\u0027\ntrim trailing whitespace.................................................Passed\nmixed line ending........................................................Passed\nfix utf-8 byte order marker..............................................Passed\ncheck that executables have shebangs.....................................Passed\ncheck that scripts with shebangs are executable..........................Passed\ncheck json...............................................................Passed\ncheck yaml...............................................................Passed\ncheck for added large files..............................................Passed\ncheck for merge conflicts................................................Passed\ncheck for case conflicts.................................................Passed\ndetect private key.......................................................Passed\ndebug statements (python)................................................Passed\ncheck docstring is first.................................................Passed\nTabs remover.............................................................Passed\nautopep8................................................................Skipped\nhacking..................................................................Failed\n- hook id: hacking\n- exit code: 1\n\nnova/test.py:113:20: E202 whitespace before \u0027)\u0027\nnova/test.py:113:22: E225 missing whitespace around operator\n\ncodespell................................................................Passed\nmypy.....................................................................Passed\nSphinx Lint..............................................................Passed\npep8: exit 1 (30.82 seconds) /home/smooney/repos/nova\u003e bash -c \u0027SKIP\u003dautopep8 pre-commit run --all-files --show-diff-on-failure\u0027 pid\u003d2488655\n.pkg: _exit\u003e python /home/smooney/repos/nova/.venv/lib/python3.11/site-packages/pyproject_api/_backend.py True pbr.build\n  pep8: FAIL code 1 (36.48\u003dsetup[5.66]+cmd[30.82] seconds)\n  evaluation failed :( (36.62 seconds)\n  ```\n i got confused by the diff that was printed but that was just rpinting the unstage changes whihc is why it was backward form what i expected. to see.\n \n i belive there is a way to get it to kep going i just need to look that up in the tox docs.","commit_id":"4ff8282f1e1e0609f4a7016660da1d9839117ebe"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c8f6c5219aa6aa7eef3fc77b426ad5cd6f25c283","unresolved":true,"context_lines":[{"line_number":129,"context_line":"  pre-commit"},{"line_number":130,"context_line":"extras \u003d"},{"line_number":131,"context_line":"commands \u003d"},{"line_number":132,"context_line":"  bash tools/pep8.sh"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"[testenv:mypy]"},{"line_number":135,"context_line":"description \u003d"}],"source_content_type":"text/x-properties","patch_set":2,"id":"6f044658_289c84a0","line":132,"updated":"2025-09-08 21:37:14.000000000","message":"actully instead of this i can do \n\nignore_errors\u003dtrue\n\nhttps://tox.wiki/en/latest/config.html#ignore_errors\n\n```\nWhen executing the commands keep going even if a sub-command exits with non-zero \nexit code. The overall status will be “commands failed”, i.e. tox will exit non-zero\n in case any command failed. It may be helpful to note that this setting is \nanalogous to the -k or --keep-going option of GNU Make.\n\n```\n\nif people prefer that i can do that instead and add a comment to explain why.","commit_id":"ea6e37f012f19ed63fd74b47cec7f2863031b634"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cea144d88615f47e5acdd9151487a47eb6105170","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  pre-commit"},{"line_number":130,"context_line":"extras \u003d"},{"line_number":131,"context_line":"commands \u003d"},{"line_number":132,"context_line":"  bash tools/pep8.sh"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"[testenv:mypy]"},{"line_number":135,"context_line":"description \u003d"}],"source_content_type":"text/x-properties","patch_set":2,"id":"fd6d1e4a_a7ddd0b9","line":132,"in_reply_to":"6f044658_289c84a0","updated":"2025-09-09 14:59:44.000000000","message":"Done","commit_id":"ea6e37f012f19ed63fd74b47cec7f2863031b634"}]}
