)]}'
{".zuul.yaml":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f6f47ab6d7aa7c465a78584941ea4ff92a301e59","unresolved":true,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"- job:"},{"line_number":292,"context_line":"    name: swift-tox-func-s3api-tests-tempauth"},{"line_number":293,"context_line":"    parent: unittests"},{"line_number":294,"context_line":"    nodeset: centos-9-stream"},{"line_number":295,"context_line":"    description: |"},{"line_number":296,"context_line":"      Setup a SAIO dev environment and run our s3api test suite"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"4d53d7e5_2eda4196","line":293,"updated":"2025-04-08 17:35:19.000000000","message":"This guy doesn\u0027t inherit from `swift-tox-base` -- maybe it should? \\*shrug\\* It certainly doesn\u0027t need the XFS tempdir tho...","commit_id":"ca51bd7f22fc33749613d9ca330ac0fc3afcf929"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e32b86f1aa2d404fd78b3d94c36b3be49b2eadb2","unresolved":true,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"- job:"},{"line_number":292,"context_line":"    name: swift-tox-func-s3api-tests-tempauth"},{"line_number":293,"context_line":"    parent: unittests"},{"line_number":294,"context_line":"    nodeset: centos-9-stream"},{"line_number":295,"context_line":"    description: |"},{"line_number":296,"context_line":"      Setup a SAIO dev environment and run our s3api test suite"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"23fa42de_a4007338","line":293,"in_reply_to":"4d53d7e5_2eda4196","updated":"2025-04-09 13:38:47.000000000","message":"thanks for the pointer, sorry I still managed to screw it up.","commit_id":"ca51bd7f22fc33749613d9ca330ac0fc3afcf929"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e32b86f1aa2d404fd78b3d94c36b3be49b2eadb2","unresolved":true,"context_lines":[{"line_number":239,"context_line":"    timeout: 5400"},{"line_number":240,"context_line":"    vars:"},{"line_number":241,"context_line":"      tox_environment:"},{"line_number":242,"context_line":"        COLUMNS: 240"},{"line_number":243,"context_line":"      tox_constraints_file: \u0027{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt\u0027"},{"line_number":244,"context_line":"      # This tox env get run twice; once for Keystone and once for tempauth"},{"line_number":245,"context_line":"      tox_envlist: func"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"11a43178_e572e88f","line":242,"updated":"2025-04-09 13:38:47.000000000","message":"no idea why I added this *here*","commit_id":"b07492a0eaf6008af2bfdb8b70df05d1ce36a83b"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"14d9d4d22a7fb9bf01ed84a017061e1ef31793be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"214d29e1_ccd88b2f","updated":"2025-04-08 14:31:11.000000000","message":"Do we want this extra-wide output for developers, too, or just the gate? If the latter, then we might want to use `passenv` instead, and export from `.zuul.yaml`","commit_id":"926074c3887e15b7b9da006acecadda6103b3d81"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9034fc2f16a7a0c3b8ed58eac79675941673c4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8e2e0a8a_f171623e","updated":"2025-04-08 15:04:50.000000000","message":"got it down to only ONE line!","commit_id":"926074c3887e15b7b9da006acecadda6103b3d81"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9034fc2f16a7a0c3b8ed58eac79675941673c4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5873e8b5_99b5fb99","in_reply_to":"214d29e1_ccd88b2f","updated":"2025-04-08 15:04:50.000000000","message":"\u003e Do we want this extra-wide output for developers\n\none of the reasons I had such a hard time debugging the gate output was because I could already see the skip reason on my console.  The \"narrow\" output only kicks in if you redirect tox output to a file.\n\n\u003e want to use passenv instead, and export from .zuul.yaml\n\nno idea what that means, diffs work best.","commit_id":"926074c3887e15b7b9da006acecadda6103b3d81"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"b1d6371aecfa31069be877058d6b8ca3730577c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9f2c6d54_be7990d3","updated":"2025-04-08 16:56:39.000000000","message":"Even with master I see the full skip reason when running in my vsaio so curious about Tim\u0027s suggestion to restrict the fix to gate only runs","commit_id":"b247316b78b49ece16baa8ff445d6b5d5543d5c5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"95fc333c3f1cc4c4959ff45a2d11ce8aab5fd19a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0ced96de_dae464de","in_reply_to":"9f2c6d54_be7990d3","updated":"2025-04-08 17:20:06.000000000","message":"\u003e curious about Tim\u0027s suggestion to restrict the fix to gate only runs\n\nOH!  Now I get it (?) \n\n@tburke@nvidia.com like this!?","commit_id":"b247316b78b49ece16baa8ff445d6b5d5543d5c5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f6f47ab6d7aa7c465a78584941ea4ff92a301e59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ec315218_00d0ef55","in_reply_to":"9f2c6d54_be7990d3","updated":"2025-04-08 17:35:19.000000000","message":"Because I don\u0027t care for output like\n```\ntest/unit/account/test_replicator.py::TestReplicatorSync::test_sync_remote_missi\nng_one_rows PASSED                                                              \n                                                                         [  1%]\ntest/unit/account/test_server.py::TestAccountController::test_DELETE_empty PASSE\nD                                                                               \n                                                                         [  1%]\ntest/unit/account/test_server.py::TestAccountController::test_DELETE_invalid_par\ntition PASSED                                                                   \n                                                                         [  1%]\ntest/unit/account/test_server.py::TestAccountController::test_DELETE_not_empty P\nASSED                                                                           \n                                                                         [  1%]\n```\nwhen run in a narrow terminal. Something closer to\n```\ntest/unit/account/test_backend.py::TestAccountBrokerBeforeMetadata::test_newid P\nASSED [  0%]\ntest/unit/account/test_backend.py::TestAccountBrokerBeforeMetadata::test_policy_\nstats_tracking PASSED [  0%]\ntest/unit/account/test_backend.py::TestAccountBrokerBeforeMetadata::test_put_con\ntainer PASSED [  0%]\ntest/unit/account/test_backend.py::TestAccountBrokerBeforeMetadata::test_reclaim\n PASSED [  0%]\n```\nwhile still not ideal, is an improvement. Even at full screen, my `$COLUMNS` is like 186 with default font/sizing, so I\u0027d get something like\n```\ntest/unit/account/test_reaper.py::TestReaper::test_reap_warn_after_conf_set PASSED\n                                               [  1%]\ntest/unit/account/test_reaper.py::TestReaper::test_reset_stats PASSED\n                                               [  1%]\ntest/unit/account/test_reaper.py::TestReaper::test_run_forever PASSED\n                                               [  1%]\ntest/unit/account/test_reaper.py::TestReaper::test_run_once PASSED\n                                               [  1%]\n\n```","commit_id":"b247316b78b49ece16baa8ff445d6b5d5543d5c5"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"95fc333c3f1cc4c4959ff45a2d11ce8aab5fd19a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2a9fe15e_37e20f2f","updated":"2025-04-08 17:20:06.000000000","message":"i\u0027ll have to make sure this still works in the gate since I can\u0027t `.zuul.yaml` locally... \n\nit *was* working:\n\n```\ntest/s3api/test_request_target_style.py::TestRequestTargetStyle::test_absolute_url SKIPPED (Absolute URL test requires https)                                                                                                            [ 93%]\n```","commit_id":"ca51bd7f22fc33749613d9ca330ac0fc3afcf929"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"2298fcb4fe57e11538810bfaef88f60afdb91c02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"8c7fb211_b044c39a","updated":"2025-04-08 19:50:45.000000000","message":"well, I managed to break it:\n\n```\ntest/s3api/test_request_target_style.py::TestRequestTargetStyle::test_absolute_url SKIPPED [ 93%]\n```\n\nI think spotted the problem; I\u0027m a zuul new here - trying again.","commit_id":"ca51bd7f22fc33749613d9ca330ac0fc3afcf929"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4ff8fa0c539eb18f086a339354c78ce8346db86a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6cae7834_493f651f","in_reply_to":"8c7fb211_b044c39a","updated":"2025-04-09 00:54:58.000000000","message":"I was trying to say: \"I think Tim spotted the problem; I\u0027m a zuul newb\"","commit_id":"ca51bd7f22fc33749613d9ca330ac0fc3afcf929"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"4ff8fa0c539eb18f086a339354c78ce8346db86a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"54dcca18_aefac582","updated":"2025-04-09 00:54:58.000000000","message":"I think this is *still* not working:\n\n```\ntest/s3api/test_request_target_style.py::TestRequestTargetStyle::test_absolute_url SKIPPED [ 93%]\n```\n\nhttps://zuul.opendev.org/t/openstack/build/f569986ff33f4baa922aec27d43e9833/console","commit_id":"b07492a0eaf6008af2bfdb8b70df05d1ce36a83b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cbb7bdeff0424ee0d41fea4a5cac99728512b927","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fa7eab34_a69e7d84","updated":"2025-04-09 01:36:50.000000000","message":"Interesting, the py36 job *is* working:\n\n```\ntest/unit/common/test_utils.py::TestUtils::test_load_pkg_resource_importlib SKIPPED (importlib loading is only available on python 3.8 and later)                                                                                        [ 18%]\n```\n\nhttps://zuul.opendev.org/t/openstack/build/e456933a5b2e430cb68ee6031ecf65ee/console","commit_id":"b07492a0eaf6008af2bfdb8b70df05d1ce36a83b"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b574f485be948c6232058184f5b7cac8e7bf1f0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"cca5bbf1_c7b2bb1c","updated":"2025-04-08 20:15:28.000000000","message":"What about something like https://review.opendev.org/c/openstack/swift/+/946710? Yields [output](https://zuul.opendev.org/t/openstack/build/74d89d51887142bc8dcb75244230d334/log/job-output.txt#2092) like\n```\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d short test summary info \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nSKIPPED [1] test/s3api/test_request_target_style.py:40: Absolute URL test requires https\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 261 passed, 1 skipped in 71.90s (0:01:11) \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n```","commit_id":"b07492a0eaf6008af2bfdb8b70df05d1ce36a83b"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e32b86f1aa2d404fd78b3d94c36b3be49b2eadb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b7a97cfd_0eb44f4a","updated":"2025-04-09 13:38:47.000000000","message":"I\u0027m happy if Tim\u0027s happy!","commit_id":"e438ac207316b49cc9f1829a244845881e0ec275"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"22bd6ab097687be6fcd625a349370681d4019cfc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"43c9be93_69241446","updated":"2025-04-09 08:57:46.000000000","message":"Trying to get this working on all s3api tests. I like seeing the skip reasons in the sequential test output rather than having to remember to go look for it in the summary.  But I like https://review.opendev.org/c/openstack/swift/+/946710/1/tox.ini *as well* - the more useful output the better.","commit_id":"e438ac207316b49cc9f1829a244845881e0ec275"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c8769ab87fc22917ba7122cfdb240f22b629ff2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3b10a2c0_fb08df43","updated":"2025-04-09 10:11:20.000000000","message":"```2025-04-09 09:01:44.815363 | centos-9-stream | test/s3api/test_request_target_style.py::TestRequestTargetStyle::test_absolute_url SKIPPED (Absolute URL test requires https)                                                                                                            [ 93%]```","commit_id":"e438ac207316b49cc9f1829a244845881e0ec275"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"330fdd701413106471779856e1f2b267647955dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fd999384_042e0145","updated":"2025-04-09 10:13:47.000000000","message":"oh, so my +2 overrode Clays\u0027 Workflow-1 - I\u0027m dropping to +1 out of respect for Clay having marked this Workflow-1 - Clay should get to decide it\u0027s fate. BUT IMHO let\u0027s merge and see those skip reasons. And maybe merge Tim\u0027s patch too.","commit_id":"e438ac207316b49cc9f1829a244845881e0ec275"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e32b86f1aa2d404fd78b3d94c36b3be49b2eadb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e6c0c2e5_0528442b","in_reply_to":"3b10a2c0_fb08df43","updated":"2025-04-09 13:38:47.000000000","message":"yippie!","commit_id":"e438ac207316b49cc9f1829a244845881e0ec275"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e32b86f1aa2d404fd78b3d94c36b3be49b2eadb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b2362037_49f9a6c1","in_reply_to":"fd999384_042e0145","updated":"2025-04-09 13:38:47.000000000","message":"oh goodness no, I only had it \"wip\" because it wasn\u0027t working yet.  this is very much I wanted - thanks for fixing it for me.","commit_id":"e438ac207316b49cc9f1829a244845881e0ec275"}],"tox.ini":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"14d9d4d22a7fb9bf01ed84a017061e1ef31793be","unresolved":true,"context_lines":[{"line_number":29,"context_line":"[testenv:s3api]"},{"line_number":30,"context_line":"usedevelop \u003d False"},{"line_number":31,"context_line":"deps \u003d {[testenv:py36]deps}"},{"line_number":32,"context_line":"setenv \u003d COLUMNS\u003d240"},{"line_number":33,"context_line":"commands \u003d"},{"line_number":34,"context_line":"  pytest {posargs:test/s3api}"},{"line_number":35,"context_line":"passenv \u003d SWIFT_*"}],"source_content_type":"text/x-properties","patch_set":3,"id":"bbe261e8_77e02a6b","line":32,"updated":"2025-04-08 14:31:11.000000000","message":"Do we need this? It doesn\u0027t just inherit from the general `[testenv]`?","commit_id":"926074c3887e15b7b9da006acecadda6103b3d81"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"fd60e12395d987ce429498c6062beb456645f595","unresolved":true,"context_lines":[{"line_number":29,"context_line":"[testenv:s3api]"},{"line_number":30,"context_line":"usedevelop \u003d False"},{"line_number":31,"context_line":"deps \u003d {[testenv:py36]deps}"},{"line_number":32,"context_line":"setenv \u003d COLUMNS\u003d240"},{"line_number":33,"context_line":"commands \u003d"},{"line_number":34,"context_line":"  pytest {posargs:test/s3api}"},{"line_number":35,"context_line":"passenv \u003d SWIFT_*"}],"source_content_type":"text/x-properties","patch_set":3,"id":"8163967e_9e5a91a5","line":32,"updated":"2025-04-08 16:22:29.000000000","message":"Why does this need to be repeated in this section?\n\nIIUC this is going to override setenv in ``[testenv]`` which means the ``VIRTUAL_ENV`` var is lost.","commit_id":"926074c3887e15b7b9da006acecadda6103b3d81"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"4f98537ff8cadbed087f66062fa17838bb2b0454","unresolved":false,"context_lines":[{"line_number":29,"context_line":"[testenv:s3api]"},{"line_number":30,"context_line":"usedevelop \u003d False"},{"line_number":31,"context_line":"deps \u003d {[testenv:py36]deps}"},{"line_number":32,"context_line":"setenv \u003d COLUMNS\u003d240"},{"line_number":33,"context_line":"commands \u003d"},{"line_number":34,"context_line":"  pytest {posargs:test/s3api}"},{"line_number":35,"context_line":"passenv \u003d SWIFT_*"}],"source_content_type":"text/x-properties","patch_set":3,"id":"3cc27d9c_7afa6046","line":32,"in_reply_to":"8163967e_9e5a91a5","updated":"2025-04-08 16:52:40.000000000","message":"duh! pushed my stale comment before checking for update","commit_id":"926074c3887e15b7b9da006acecadda6103b3d81"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f9034fc2f16a7a0c3b8ed58eac79675941673c4d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"[testenv:s3api]"},{"line_number":30,"context_line":"usedevelop \u003d False"},{"line_number":31,"context_line":"deps \u003d {[testenv:py36]deps}"},{"line_number":32,"context_line":"setenv \u003d COLUMNS\u003d240"},{"line_number":33,"context_line":"commands \u003d"},{"line_number":34,"context_line":"  pytest {posargs:test/s3api}"},{"line_number":35,"context_line":"passenv \u003d SWIFT_*"}],"source_content_type":"text/x-properties","patch_set":3,"id":"27b2dd24_74b9adfc","line":32,"in_reply_to":"bbe261e8_77e02a6b","updated":"2025-04-08 15:04:50.000000000","message":"indeed it seems like it does!\n\n```\nvagrant@saio:~/swift$ tail -f !$\ntail -f ../test.out\ntest/s3api/test_mpu.py::TestMultiPartUpload::test_create_upload_complete_subset_of_parts_list FAILED                                                                                                                                     [ 89%]\ntest/s3api/test_mpu.py::TestMultiPartUpload::test_create_upload_complete_subset_of_parts_list_with_gaps FAILED                                                                                                                           [ 89%]\ntest/s3api/test_mpu.py::TestMultiPartUpload::test_get_object_partNumber_and_range FAILED                                                                                                                                                 [ 90%]\ntest/s3api/test_mpu.py::TestMultiPartUpload::test_get_object_partNumber_errors FAILED                                                                                                                                                    [ 90%]\ntest/s3api/test_mpu.py::TestMultiPartUpload::test_head_object_partNumber_errors FAILED                                                                                                                                                   [ 90%]\ntest/s3api/test_mpu.py::TestMultiPartUpload::test_part_number_non_mpu FAILED                                                                                                                                                             [ 91%]\ntest/s3api/test_mpu.py::TestMultiPartUpload::test_upload_part_copy FAILED                                                                                                                                                                [ 91%]\ntest/s3api/test_mpu.py::TestMultiPartUpload::test_zero_byte_segment_upload FAILED                                                                                                                                                        [ 91%]\n```","commit_id":"926074c3887e15b7b9da006acecadda6103b3d81"}]}
