)]}'
{"id":"openstack%2Frequirements~995122","triplet_id":"openstack%2Frequirements~master~Ic397115020cfb1932db04ee26576c9fdbbaeaa88","project":"openstack/requirements","branch":"master","attention_set":{},"removed_from_attention_set":{"10273":{"account":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"last_update":"2026-07-06 10:54:37.000000000","reason":"Change was submitted"}},"hashtags":["asgi","asgi-phase-0"],"change_id":"Ic397115020cfb1932db04ee26576c9fdbbaeaa88","subject":"Add a2wsgi","status":"MERGED","created":"2026-06-26 18:25:41.000000000","updated":"2026-07-06 10:56:17.000000000","submitted":"2026-07-06 10:54:37.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"995122","meta_rev_id":"ad603dd361d2be9a2fefc0636b6b96b13e277568","_number":995122,"virtual_id_number":995122,"owner":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-07-06 10:54:37.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"all":[{"value":2,"date":"2026-07-02 15:31:51.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":2,"date":"2026-07-06 08:53:34.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":1,"date":"2026-07-06 08:53:34.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-26 21:03:38.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-07-02 15:31:51.000000000","updated_by":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"reviewer":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"state":"REVIEWER"},{"updated":"2026-07-06 08:53:34.000000000","updated_by":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"reviewer":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"state":"REVIEWER"}],"messages":[{"id":"fedb0f88801fbd9115fa00c1fb29a0489a786364","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 18:25:41.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"49d81644d61c928726216d8ef1aa9984bea6a603","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 19:13:31.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"398ddbd1ecb0c3617c1e614ca592b720af9bcd63","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 19:48:16.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":2},{"id":"61c9253aae07f01f6610ce6b5e577701c11fe4a3","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-26 19:48:16.000000000","message":"Hashtag added: asgi","accounts_in_message":[],"_revision_number":2},{"id":"be522b88a093c1f43c96913692b170a63a93870c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 21:03:38.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ce49443f87f741e783cc7fbe748b5321\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4b3ade0efa4c4b71ad02aeaa2f65ede3 : SUCCESS in 4m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cf28763e11794e749dae17c5f8fdda4b : SUCCESS in 3m 57s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d22c360d5baf4044a4f1781e2079038e : SUCCESS in 3m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/53f56fd4e8aa42b08d1355b1d9d94d70 : SUCCESS in 4m 01s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a3f27561c6774ebd81fdf42d7c5831d6 : SUCCESS in 5m 38s (non-voting)\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/20547434f972466e972c62822e695f26 : SUCCESS in 2m 08s\n- requirements-tox-babel https://zuul.opendev.org/t/openstack/build/4c628e05d42f4a3ebc3620ae44ba9e1a : SUCCESS in 3m 45s\n- requirements-tox-py311-check-uc https://zuul.opendev.org/t/openstack/build/b981f3c0eaf54503b75b212614daf80e : SUCCESS in 6m 35s\n- requirements-tox-py312-check-uc https://zuul.opendev.org/t/openstack/build/1a40c5766c9740ccb77dafd682e307ea : SUCCESS in 6m 25s\n- requirements-tox-py313-check-uc https://zuul.opendev.org/t/openstack/build/0e2f7190b6b9481284ab98a46ff945ba : SUCCESS in 7m 34s\n- cross-aodh-py313 https://zuul.opendev.org/t/openstack/build/375e9a34b8e048b4b0bd3af4eadc4b0e : SUCCESS in 5m 46s\n- cross-barbican-py313 https://zuul.opendev.org/t/openstack/build/9e2aa0452d58466789eae0dbbb1eaa66 : SUCCESS in 4m 28s\n- cross-ceilometer-py313 https://zuul.opendev.org/t/openstack/build/8a6ee4eff1434951b30083b8a23b74c9 : SUCCESS in 4m 56s\n- cross-cinder-py313 https://zuul.opendev.org/t/openstack/build/5051a63633724df3b6840910aed8ff37 : SUCCESS in 11m 27s\n- cross-designate-py313 https://zuul.opendev.org/t/openstack/build/241dac4779894dcda35b1f7c938d750a : SUCCESS in 3m 13s\n- cross-glance-py313 https://zuul.opendev.org/t/openstack/build/7afa7bd28e9c404bb221b0d9a40982b2 : SUCCESS in 4m 14s\n- cross-heat-py313 https://zuul.opendev.org/t/openstack/build/2f2378caec014d5a8e0ea98a447f0aa9 : SUCCESS in 4m 30s\n- cross-horizon-py313 https://zuul.opendev.org/t/openstack/build/6408a3a34ff244f8a3a0192f2a6cdb1d : SUCCESS in 8m 26s\n- cross-horizon-npm https://zuul.opendev.org/t/openstack/build/ddea359483784339a6fbfe56ca84eccd : SUCCESS in 4m 45s\n- cross-ironic-py313 https://zuul.opendev.org/t/openstack/build/886fb0d2189a4aee8b68e00208963abf : SUCCESS in 8m 23s\n- cross-keystone-py313 https://zuul.opendev.org/t/openstack/build/5e7233de57e84702879c3d0ba9665b36 : SUCCESS in 9m 36s\n- cross-kuryr-py313 https://zuul.opendev.org/t/openstack/build/019229b5e873449999c1f382a8093c7c : SUCCESS in 2m 06s\n- cross-manila-py313 https://zuul.opendev.org/t/openstack/build/34270cb2851142408bf878496da8d707 : SUCCESS in 6m 11s\n- cross-magnum-py313 https://zuul.opendev.org/t/openstack/build/62705c61afa64bc7bc6c25a4cce41499 : SUCCESS in 3m 56s\n- cross-masakari-py313 https://zuul.opendev.org/t/openstack/build/102f6e3ce0eb416b80dde7d1f9a5b1ad : SUCCESS in 6m 10s (non-voting)\n- cross-mistral-py313 https://zuul.opendev.org/t/openstack/build/106944492c254f889b741e3b8314199a : SUCCESS in 10m 00s (non-voting)\n- cross-neutron-py313 https://zuul.opendev.org/t/openstack/build/3592f1f743b547bb9a895f8fac99fc7e : SUCCESS in 27m 05s\n- cross-nova-pep8 https://zuul.opendev.org/t/openstack/build/7d61b96ca78c4df7b3861d0795e7057d : SUCCESS in 7m 08s\n- cross-nova-py313 https://zuul.opendev.org/t/openstack/build/705f6ee48c0a44b29c3cf43e904adf6e : SUCCESS in 13m 17s\n- cross-placement-py313 https://zuul.opendev.org/t/openstack/build/10e7f60114174625acf336a936c98fc7 : SUCCESS in 2m 48s\n- cross-osvif-py3 https://zuul.opendev.org/t/openstack/build/3c8af92a1dd240cf8370c18e43a1f9b3 : SUCCESS in 3m 23s\n- cross-nova-functional https://zuul.opendev.org/t/openstack/build/8519fdc9f08543c7bb06758cc1a05e14 : SUCCESS in 23m 52s\n- cross-placement-functional-py313 https://zuul.opendev.org/t/openstack/build/53d553f992c84f4a86b7b52cdd72f185 : SUCCESS in 6m 17s\n- cross-octavia-py313 https://zuul.opendev.org/t/openstack/build/d12d0119ff0b4eff81099a1a7257684c : SUCCESS in 3m 01s\n- cross-osc-tox-docs https://zuul.opendev.org/t/openstack/build/1b3788d336014cf988c1ae5347487700 : SUCCESS in 5m 05s\n- cross-swift-py313 https://zuul.opendev.org/t/openstack/build/9179c98d1ba74e77b004bbed58cfbb99 : SUCCESS in 18m 36s\n- cross-watcher-py3 https://zuul.opendev.org/t/openstack/build/70aa86dd6aa64dac9c4b2177c8b55d26 : SUCCESS in 3m 53s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/451ed882987e47fe8300f286ae0c19e4 : SUCCESS in 1h 07m 40s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/618fcd58db324422a556f506f48d39f8 : SUCCESS in 1h 47m 32s","accounts_in_message":[],"_revision_number":2},{"id":"2c3b9cb5f775933b30032d626a74bf10eb101e8e","tag":"autogenerated:gerrit:setReadyForReview","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-28 22:00:59.000000000","message":"Set Ready For Review","accounts_in_message":[],"_revision_number":2},{"id":"3be0c8aa7e86d3c162030b3a9f71680feb880e3b","tag":"autogenerated:gerrit:setHashtag","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-29 00:27:17.000000000","message":"Hashtag added: asgi-phase-0","accounts_in_message":[],"_revision_number":2},{"id":"57b745e1973ecfe59b2d94c5bb23769e9cf52081","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-29 04:28:56.000000000","message":"Uploaded patch set 3: Commit message was updated.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"732db614a351db76329de86d1aea6f54af5ab87b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-06-29 05:51:22.000000000","message":"Uploaded patch set 4: Commit message was updated.","accounts_in_message":[],"_revision_number":4},{"id":"43cd032486c80721d8a71e82e44466a237cb0dca","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-29 07:34:38.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9b7f91ebf65248e09a845bc14d14ff5d\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9604cc5b50ac490cb7ff541927e51379 : SUCCESS in 2m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c4283fbce47b4a94899c8ef1c8f7dd05 : SUCCESS in 2m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/83feb8a01883408581a0b7713836b48c : SUCCESS in 2m 56s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/cb7bca2d168e4bca9fe86eacd4592cb3 : SUCCESS in 3m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/47dbdd6d187d450e9c2244f80061db78 : SUCCESS in 5m 34s (non-voting)\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/c70c4c561ee14486bc533f353acf1848 : SUCCESS in 3m 28s\n- requirements-tox-babel https://zuul.opendev.org/t/openstack/build/2b9f11b4e5e343169dec5fafeeca9009 : SUCCESS in 2m 53s\n- requirements-tox-py311-check-uc https://zuul.opendev.org/t/openstack/build/603f2591cda44989b254c3c630502295 : SUCCESS in 5m 21s\n- requirements-tox-py312-check-uc https://zuul.opendev.org/t/openstack/build/a9ac2855a0a44a7da8f48ad5d332740b : SUCCESS in 5m 24s\n- requirements-tox-py313-check-uc https://zuul.opendev.org/t/openstack/build/7a4daa4575264504879afb6f3abe14be : SUCCESS in 3m 05s\n- cross-aodh-py313 https://zuul.opendev.org/t/openstack/build/109da366c9864c78a78797432eca898a : SUCCESS in 4m 24s\n- cross-barbican-py313 https://zuul.opendev.org/t/openstack/build/80e3be5e569843ed88ed9ba4256e8f2e : SUCCESS in 4m 32s\n- cross-ceilometer-py313 https://zuul.opendev.org/t/openstack/build/b634e348c97d4b63ba3f973665f5e67b : SUCCESS in 6m 26s\n- cross-cinder-py313 https://zuul.opendev.org/t/openstack/build/62722db1a43049c48cf6469f1774ccb8 : SUCCESS in 8m 18s\n- cross-designate-py313 https://zuul.opendev.org/t/openstack/build/898e7e5acd7e4296ba578757191478bf : SUCCESS in 4m 28s\n- cross-glance-py313 https://zuul.opendev.org/t/openstack/build/b3848cae7124496484d74b2d5664eab4 : SUCCESS in 2m 44s\n- cross-heat-py313 https://zuul.opendev.org/t/openstack/build/8200934e77d04d63a18d8197fa311e40 : SUCCESS in 5m 34s\n- cross-horizon-py313 https://zuul.opendev.org/t/openstack/build/4d2ea000a906481f9849eb0cb016647d : SUCCESS in 7m 25s\n- cross-horizon-npm https://zuul.opendev.org/t/openstack/build/5bc37362d98f418faafd97b4088d4a01 : SUCCESS in 7m 24s\n- cross-ironic-py313 https://zuul.opendev.org/t/openstack/build/f2d399463a2c4b339713263cf6ffc42b : SUCCESS in 7m 46s\n- cross-keystone-py313 https://zuul.opendev.org/t/openstack/build/adddb9e6e25b41178ae979c5fbab19eb : SUCCESS in 9m 55s\n- cross-kuryr-py313 https://zuul.opendev.org/t/openstack/build/8994f03b0a904cbd9fc91d65fa72121b : SUCCESS in 2m 29s\n- cross-manila-py313 https://zuul.opendev.org/t/openstack/build/7f3e859b53f24e34b3e02a22e8a5004c : SUCCESS in 4m 46s\n- cross-magnum-py313 https://zuul.opendev.org/t/openstack/build/275e5982786c418385b8a71a731e286f : SUCCESS in 3m 49s\n- cross-masakari-py313 https://zuul.opendev.org/t/openstack/build/fb5de78d5d0342fb906e0138e7b93c34 : SUCCESS in 5m 57s (non-voting)\n- cross-mistral-py313 https://zuul.opendev.org/t/openstack/build/9b82d6d2ff1541c58dec350f79e92d3d : SUCCESS in 9m 46s (non-voting)\n- cross-neutron-py313 https://zuul.opendev.org/t/openstack/build/8d4605f340be477e99323dda416e9838 : SUCCESS in 25m 15s\n- cross-nova-pep8 https://zuul.opendev.org/t/openstack/build/ca6a3976e4b9410598057f07393236e9 : SUCCESS in 6m 22s\n- cross-nova-py313 https://zuul.opendev.org/t/openstack/build/af30db8d28e8463ebd922104b26aee6d : SUCCESS in 12m 37s\n- cross-placement-py313 https://zuul.opendev.org/t/openstack/build/0f87b37b264d4eda8abba15f89ee37f4 : SUCCESS in 3m 46s\n- cross-osvif-py3 https://zuul.opendev.org/t/openstack/build/798c6b0e38c1477795e14af951396323 : SUCCESS in 3m 14s\n- cross-nova-functional https://zuul.opendev.org/t/openstack/build/dc52d856673e45bf92f04f2d0f0ec114 : SUCCESS in 21m 08s\n- cross-placement-functional-py313 https://zuul.opendev.org/t/openstack/build/a1ece38dd8134a60a0eaee02f6f6224a : SUCCESS in 6m 19s\n- cross-octavia-py313 https://zuul.opendev.org/t/openstack/build/7a322ee7e59c4406bf8820b3832037bf : SUCCESS in 4m 13s\n- cross-osc-tox-docs https://zuul.opendev.org/t/openstack/build/77f28f9b10b34e11a9141eb7f8dfa4d1 : SUCCESS in 3m 28s\n- cross-swift-py313 https://zuul.opendev.org/t/openstack/build/f04cc9e75ba04bd79c437ac75cf22913 : SUCCESS in 8m 20s\n- cross-watcher-py3 https://zuul.opendev.org/t/openstack/build/9f57cbd3912442e38a4003adb16846aa : SUCCESS in 5m 21s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/374c7740276b40eb8798f2eb05bfaf98 : SUCCESS in 1h 02m 15s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/3029c6998d3d4ffab8fbe1ad85602216 : SUCCESS in 1h 40m 07s","accounts_in_message":[],"_revision_number":4},{"id":"02b179cbb383c7c2fa8add7b142da3a3bb8f749c","author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"date":"2026-07-02 15:31:51.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4},{"id":"05474219e1dfe778896385fc791d6b69a3a7e3d8","author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"date":"2026-07-06 08:53:34.000000000","message":"Patch Set 4: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":4},{"id":"3a0d5f424f14659402225284df06945592213ab8","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 08:54:19.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"74075f101c2c680c199fce9aca609f19f2ebb7e4","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 10:54:37.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6b930ac31365474e850b3fb0d223b9fd\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e6d7fa3f6c384b1d837294ff8eb3840c : SUCCESS in 4m 58s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/42b8e5addf324a55987f5ed24e0bf910 : SUCCESS in 2m 33s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/bcbdedf5f4c74f599430dec02ebff135 : SUCCESS in 3m 06s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/38b6b5fb1cfb49ddb5f1dfc123f7d435 : SUCCESS in 2m 13s\n- openstack-tox-validate https://zuul.opendev.org/t/openstack/build/71cac22b2b0c4bea947fa4ce40c3fdad : SUCCESS in 4m 18s\n- requirements-tox-babel https://zuul.opendev.org/t/openstack/build/6f3d3257071941c7bccda8cc9e3127bf : SUCCESS in 2m 58s\n- requirements-tox-py311-check-uc https://zuul.opendev.org/t/openstack/build/3c373b5b4037417bbdcb8cda8e7e54ef : SUCCESS in 3m 51s\n- requirements-tox-py312-check-uc https://zuul.opendev.org/t/openstack/build/f09a2a32bad14d83a916e97878ba3e5a : SUCCESS in 3m 30s\n- requirements-tox-py313-check-uc https://zuul.opendev.org/t/openstack/build/696c6a41006445b3833e934a6bdd6a03 : SUCCESS in 5m 33s\n- cross-cinder-py313 https://zuul.opendev.org/t/openstack/build/18815663892c469cb335ada55bac7712 : SUCCESS in 7m 13s\n- cross-designate-py313 https://zuul.opendev.org/t/openstack/build/00bc49b0908d4aa197aec3f137d87deb : SUCCESS in 3m 14s\n- cross-glance-py313 https://zuul.opendev.org/t/openstack/build/adbd244c23924eaeb229d26a705f4119 : SUCCESS in 4m 45s\n- cross-heat-py313 https://zuul.opendev.org/t/openstack/build/408159a8da064db0897f4b4350222dfb : SUCCESS in 3m 59s\n- cross-horizon-py313 https://zuul.opendev.org/t/openstack/build/da4bc59b1f0d4548b32c0e410bf44eae : SUCCESS in 15m 29s\n- cross-horizon-npm https://zuul.opendev.org/t/openstack/build/1afaed112dec451b849307bab8c993e8 : SUCCESS in 14m 05s\n- cross-ironic-py313 https://zuul.opendev.org/t/openstack/build/3375250559704e69b1b866580bed6119 : SUCCESS in 5m 18s\n- cross-keystone-py313 https://zuul.opendev.org/t/openstack/build/0f5d8b07dc6d466b936a66c57ee08f6d : SUCCESS in 10m 33s\n- cross-kuryr-py313 https://zuul.opendev.org/t/openstack/build/8c2faee0bfe74069ba9d7030ffc53da5 : SUCCESS in 2m 24s\n- cross-manila-py313 https://zuul.opendev.org/t/openstack/build/1e347317d5c4499390054a2fb143f1ca : SUCCESS in 8m 08s\n- cross-neutron-py313 https://zuul.opendev.org/t/openstack/build/df34f655d9c049ddbe872790555e21b4 : SUCCESS in 22m 29s\n- cross-nova-pep8 https://zuul.opendev.org/t/openstack/build/1d6e3eaa7bab4732b80bd0beda2d083e : SUCCESS in 6m 10s\n- cross-nova-py313 https://zuul.opendev.org/t/openstack/build/ef87ff0d5e2c4cbdacc479ebca2d7055 : SUCCESS in 9m 13s\n- cross-placement-py313 https://zuul.opendev.org/t/openstack/build/4ba3ea042af544bdb787ff40b7f2c13e : SUCCESS in 5m 08s\n- cross-osvif-py3 https://zuul.opendev.org/t/openstack/build/c428f3f590ab41f581d1fcad2f011346 : SUCCESS in 3m 14s\n- cross-nova-functional https://zuul.opendev.org/t/openstack/build/c474d01352b14d2080744b1774fc1dd1 : SUCCESS in 20m 30s\n- cross-placement-functional-py313 https://zuul.opendev.org/t/openstack/build/89d128569bc34ec1b161b89701af0d4d : SUCCESS in 5m 25s\n- cross-octavia-py313 https://zuul.opendev.org/t/openstack/build/f2cea0e855fb435daa9f8615e136ce89 : SUCCESS in 4m 17s\n- cross-osc-tox-docs https://zuul.opendev.org/t/openstack/build/f6fdd7df5a2d40348e768cf2a76d37d2 : SUCCESS in 4m 52s\n- cross-swift-py313 https://zuul.opendev.org/t/openstack/build/90422e3a7028485aba4faf9e30542242 : SUCCESS in 17m 56s\n- cross-watcher-py3 https://zuul.opendev.org/t/openstack/build/3fcd21b7863b44fe80144215de644fca : SUCCESS in 5m 21s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d9d8cc26a1ab4d6d84a319f57f25830b : SUCCESS in 1h 04m 38s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/f03ba45332824d56a7a6db6bd5f3c942 : SUCCESS in 1h 51m 26s","accounts_in_message":[],"_revision_number":4},{"id":"62b911d95e190a687a66af9c769dbdee8aeef526","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 10:54:37.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":4},{"id":"ad603dd361d2be9a2fefc0636b6b96b13e277568","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 10:56:17.000000000","message":"Patch Set 4:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2e7700c85bdc43a591629153b6f37b96\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/73d43f98f4994b089f1faca67e5b50ae : SUCCESS in 46s","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"4fc141c9dafd8ad2893164f1541eb3fd960dc990","revisions":{"c5576d9ef9bfb0a7f2e4edea64907be3369ca394":{"kind":"REWORK","_number":1,"created":"2026-06-26 18:25:41.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/995122/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/22/995122/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/22/995122/1"}}},"commit":{"parents":[{"commit":"655fcff9ab42f99367686b3d93a8ae1384c29801","subject":"Merge \"Updated from generate-constraints\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/655fcff9ab42f99367686b3d93a8ae1384c29801"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 15:10:36.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 18:25:35.000000000","tz":-240},"subject":"Add a2wsgi to global-requirements and upper-constraints","message":"Add a2wsgi to global-requirements and upper-constraints\n\na2wsgi is a high-performance ASGI/WSGI bidirectional adapter that\nenables OpenStack services to be served under ASGI servers (such as\nHypercorn) while preserving existing WSGI application code and\nmiddleware pipelines.\n\nUnlike asgiref\u0027s WsgiToAsgi wrapper, a2wsgi streams request and\nresponse bodies via queues rather than buffering them in memory,\nmaking it suitable for services that handle large payloads (e.g.\nGlance image uploads/downloads).\n\na2wsgi is Apache-2.0 licensed with zero transitive dependencies.\n\nThis is the first step toward offering ASGI entry points for\nOpenStack API services, enabling HTTP/2, modern TLS termination,\nand a path toward native async request handling.\n\nLicense: Apache-2.0\nLatest version: 1.10.10\nPyPI: https://pypi.org/project/a2wsgi/\n\nChange-Id: Ic397115020cfb1932db04ee26576c9fdbbaeaa88\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/c5576d9ef9bfb0a7f2e4edea64907be3369ca394"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/c5576d9ef9bfb0a7f2e4edea64907be3369ca394"}]},"branch":"refs/heads/master"},"6c03ddd56935600f2db0f75f1d7990d53fb0c19d":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-06-26 19:13:31.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/995122/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/22/995122/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/22/995122/2"}}},"commit":{"parents":[{"commit":"655fcff9ab42f99367686b3d93a8ae1384c29801","subject":"Merge \"Updated from generate-constraints\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/655fcff9ab42f99367686b3d93a8ae1384c29801"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 15:10:36.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 19:13:20.000000000","tz":-240},"subject":"Add a2wsgi to global-requirements and upper-constraints","message":"Add a2wsgi to global-requirements and upper-constraints\n\na2wsgi is a high-performance ASGI/WSGI bidirectional adapter that\nenables OpenStack services to be served under ASGI servers (such as\nHypercorn) while preserving existing WSGI application code and\nmiddleware pipelines.\n\nUnlike asgiref\u0027s WsgiToAsgi wrapper, a2wsgi streams request and\nresponse bodies via queues rather than buffering them in memory,\nmaking it suitable for services that handle large payloads (e.g.\nGlance image uploads/downloads).\n\na2wsgi is Apache-2.0 licensed with zero transitive dependencies.\n\nThis is the first step toward offering ASGI entry points for\nOpenStack API services, enabling HTTP/2, modern TLS termination,\nand a path toward native async request handling.\n\nLicense: Apache-2.0\nLatest version: 1.10.10\nPyPI: https://pypi.org/project/a2wsgi/\n\nGenerated-By: claude-opus-4-6 (OpenCode)\nChange-Id: Ic397115020cfb1932db04ee26576c9fdbbaeaa88\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/6c03ddd56935600f2db0f75f1d7990d53fb0c19d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/6c03ddd56935600f2db0f75f1d7990d53fb0c19d"}]},"branch":"refs/heads/master"},"44cb3cd0c20d8e718dd9bb6c68823a17c7e3afd9":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2026-06-29 04:28:56.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/995122/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/22/995122/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/22/995122/3"}}},"commit":{"parents":[{"commit":"655fcff9ab42f99367686b3d93a8ae1384c29801","subject":"Merge \"Updated from generate-constraints\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/655fcff9ab42f99367686b3d93a8ae1384c29801"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 15:10:36.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-29 04:28:48.000000000","tz":-240},"subject":"Add a2wsgi","message":"Add a2wsgi\n\na2wsgi is a high-performance bidirectional ASGI/WSGI adapter that\nenables OpenStack services to be served under ASGI servers (such as\nHypercorn) while preserving existing WSGI application code and\nmiddleware pipelines. Unlike asgiref\u0027s WsgiToAsgi, a2wsgi streams\nrequest and response bodies via queues rather than buffering in\nmemory, making it safe for services handling large payloads.\n\n* Is the library actively maintained?\n  Yes. 29 releases over 4 years (2021-2025). Author Aber (abersheeran).\n  Latest release 1.10.10 (May 2025). Regular maintenance releases,\n  active issue tracker.\n\n* Is the library good code?\n  Yes. Fully typed, pytest test suite, CI tests Python 3.8-3.13.\n  Zero transitive dependencies. Zero published security advisories.\n\n* Is the library license compatible?\n  Yes, Apache-2.0 licensed.\n\n* Is the library already packaged in the distros we target?\n  Debian (trixie stable): python3-a2wsgi 1.10.6-1\n  Ubuntu (resolute 26.04 LTS): python3-a2wsgi 1.10.6-1\n  Zero open Debian bugs.\n\n* Is the function of this library already covered by other libraries\n  in global-requirements.txt?\n  Partially. asgiref (already in g-r) provides WsgiToAsgi but it\n  buffers entire request bodies in memory before passing to WSGI,\n  making it unsafe for services like Glance that handle multi-GB\n  image uploads. a2wsgi streams both directions via bounded queues\n  with configurable back-pressure, and also provides the reverse\n  direction (ASGIMiddleware for ASGI-in-WSGI embedding).\n\n* Is the library required for an OpenStack project? Which?\n  Yes, oslo.service\u0027s new oslo_service.asgi module uses a2wsgi to\n  wrap WSGI applications for ASGI serving across all OpenStack API\n  services.\n\n* If the library release is managed by the OpenStack release process?\n  No, it is not managed by OpenStack.\n\nNeeded-By: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: Ic397115020cfb1932db04ee26576c9fdbbaeaa88\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/44cb3cd0c20d8e718dd9bb6c68823a17c7e3afd9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/44cb3cd0c20d8e718dd9bb6c68823a17c7e3afd9"}]},"branch":"refs/heads/master"},"4fc141c9dafd8ad2893164f1541eb3fd960dc990":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2026-06-29 05:51:22.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/22/995122/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/requirements","ref":"refs/changes/22/995122/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/requirements refs/changes/22/995122/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/requirements refs/changes/22/995122/4"}}},"commit":{"parents":[{"commit":"655fcff9ab42f99367686b3d93a8ae1384c29801","subject":"Merge \"Updated from generate-constraints\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/655fcff9ab42f99367686b3d93a8ae1384c29801"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-26 15:10:36.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-06-29 05:51:14.000000000","tz":-240},"subject":"Add a2wsgi","message":"Add a2wsgi\n\na2wsgi is a bidirectional ASGI/WSGI adapter that enables OpenStack\nservices to be served under ASGI servers (such as Hypercorn) while\npreserving existing WSGI application code and middleware pipelines.\nUnlike asgiref\u0027s WsgiToAsgi, a2wsgi streams request and response\nbodies via queues rather than buffering in memory, making it safe\nfor services handling large payloads.\n\n* Is the library actively maintained?\n  Yes. 35 releases over 5 years (2020-2025). Author Aber\n  (abersheeran). Latest release 1.10.10 (June 2025). Regular\n  maintenance releases, active issue tracker.\n\n* Is the library good code?\n  Yes. Fully typed, pytest test suite. One conditional dependency\n  (typing_extensions on Python \u003c 3.11, otherwise zero deps).\n\n* Is the library license compatible?\n  Yes, Apache-2.0 licensed (per GitHub repo metadata).\n\n* Is the library already packaged in the distros we target?\n  Debian (trixie stable): python3-a2wsgi 1.10.8-2\n\n* Is the function of this library already covered by other libraries\n  in global-requirements.txt?\n  Partially. asgiref (already in g-r) provides WsgiToAsgi but it\n  buffers entire request bodies in memory before passing to WSGI,\n  making it unsafe for services like Glance that handle multi-GB\n  image uploads. a2wsgi streams both directions via bounded queues\n  with configurable back-pressure, and also provides the reverse\n  direction (ASGIMiddleware for ASGI-in-WSGI embedding).\n\n* Is the library required for an OpenStack project? Which?\n  Yes, oslo.service\u0027s new oslo_service.asgi module uses a2wsgi to\n  wrap WSGI applications for ASGI serving across all OpenStack API\n  services.\n\n* If the library release is managed by the OpenStack release process?\n  No, it is not managed by OpenStack.\n\nNeeded-By: https://review.opendev.org/c/openstack/oslo.service/+/995128\nChange-Id: Ic397115020cfb1932db04ee26576c9fdbbaeaa88\nGenerated-By: claude-opus-4-6 (OpenCode)\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/4fc141c9dafd8ad2893164f1541eb3fd960dc990"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/requirements/commit/4fc141c9dafd8ad2893164f1541eb3fd960dc990"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
