)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"fc9ab80075188be5d464698f4bb4ffd954ca4c6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7b879377_1dfbf3bd","updated":"2026-01-09 16:39:49.000000000","message":"check experimental","commit_id":"e4c232aa674d45e6baee287aeb74b83d6a7ce368"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f0d63d6941485d152564a9cb240bcd336890fda2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6810f86b_74930f62","updated":"2026-01-09 16:39:38.000000000","message":"recheck","commit_id":"e4c232aa674d45e6baee287aeb74b83d6a7ce368"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"098b06530f70ef1f91ab226ccf18eeee05d3b440","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"536e5534_1bb7d277","updated":"2026-01-09 19:06:58.000000000","message":"check experimental","commit_id":"a63db6b6350056421791028cbea7acd5ec8484ab"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0990bcf6d9d9f3bb9938965e0b6b0923030757c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ad091b12_9e125c1a","updated":"2026-01-09 19:24:22.000000000","message":"check experimental","commit_id":"b66c2db3c6125ae78da0eea299e878ae2469bb10"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"325c2d4bc7bd67681f93a5a764d8fc6acb8d6dcd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ebc43cd9_489181ab","updated":"2026-01-21 21:54:33.000000000","message":"Seeing as this patch landed, https://review.opendev.org/c/openstack/swift/+/966659, and it\u0027s related to removing files, maybe it needs to be added to the changelog?","commit_id":"274697b61a58b3dbfecc7155e80b00b495d18f72"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dd9a4662f942b75ce4e5a1b0de1fa4ee2fc223e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e208cf33_9291a273","updated":"2026-01-26 17:12:00.000000000","message":"probably ought to include the recently added \u0027api\u0027 metric label","commit_id":"274697b61a58b3dbfecc7155e80b00b495d18f72"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d7b35155689c252c291fb9bd50b76904953524f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4e4bf176_bf19b248","in_reply_to":"ebc43cd9_489181ab","updated":"2026-01-26 22:28:26.000000000","message":"Done","commit_id":"274697b61a58b3dbfecc7155e80b00b495d18f72"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"79a47fe9c9e57d1ed375dae349cacc5de964b366","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"46349e4e_7053c590","updated":"2026-01-26 22:28:34.000000000","message":"check experimental","commit_id":"7f436f5b8ddb1dc82acf8bde8269813d6fae89dc"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8434edf91952630233a3fce35985ecda37e5a8e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d00bc161_a767c508","updated":"2026-01-26 23:22:41.000000000","message":"check experimental","commit_id":"555026d200337b39c97eb9dafd26901ff40c7a1d"}],"AUTHORS":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"5587ec16ba86422c2272e6d152896e703ddff9cc","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Janie Richling (jrichli@us.ibm.com)"},{"line_number":32,"context_line":"Michael Barton (mike@weirdlooking.com)"},{"line_number":33,"context_line":"Mahati Chamarthy (mahati.chamarthy@gmail.com)"},{"line_number":34,"context_line":"Samuel Merritt (smerritt@nvidia.com)"},{"line_number":35,"context_line":"Romain Le Disez (romain.ledisez@ovh.net)"},{"line_number":36,"context_line":"Pete Zaitcev (zaitcev@yahoo.com)"},{"line_number":37,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"c89da754_be3e445c","line":34,"updated":"2026-01-12 03:07:15.000000000","message":"Does this need to be changed to his newest.. I guess it\u0027s fine, just curious, maybe this is first time a \u0027Core Emeritus\u0027 has added another patch.","commit_id":"b66c2db3c6125ae78da0eea299e878ae2469bb10"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"036a7df1435a7853dc9b23f7e95e28453e5665ca","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Janie Richling (jrichli@us.ibm.com)"},{"line_number":32,"context_line":"Michael Barton (mike@weirdlooking.com)"},{"line_number":33,"context_line":"Mahati Chamarthy (mahati.chamarthy@gmail.com)"},{"line_number":34,"context_line":"Samuel Merritt (smerritt@nvidia.com)"},{"line_number":35,"context_line":"Romain Le Disez (romain.ledisez@ovh.net)"},{"line_number":36,"context_line":"Pete Zaitcev (zaitcev@yahoo.com)"},{"line_number":37,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"5bb1b4cf_10b88f32","line":34,"in_reply_to":"c89da754_be3e445c","updated":"2026-01-12 17:06:48.000000000","message":"I figured, if he\u0027s actively submitting new patches, probably ought to update to what seems to be currently preferred. I suppose I could also just ask him ;-)","commit_id":"b66c2db3c6125ae78da0eea299e878ae2469bb10"}],"CHANGELOG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dd9a4662f942b75ce4e5a1b0de1fa4ee2fc223e1","unresolved":true,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"      * The proxy-logging middleware may now emit real-time transfer metrics."},{"line_number":37,"context_line":"        See the `statsd_emit_buffer_xfer_bytes_seconds` option in"},{"line_number":38,"context_line":"        etc/proxy-server.conf-sample for more information."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"      * The s3api middleware now emits a counter recording the usage of"},{"line_number":41,"context_line":"        various protocol-related headers."}],"source_content_type":"application/octet-stream","patch_set":6,"id":"a7d145a4_30ab144e","line":38,"updated":"2026-01-26 17:12:00.000000000","message":"```\n* proxy-logging middleware metrics now have an additional label key \u0027api\u0027 whose value may be \u0027swift\u0027 or \u0027S3\u0027 depending on whether the request is handled by the swift API or S3 API.\n```","commit_id":"274697b61a58b3dbfecc7155e80b00b495d18f72"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d7b35155689c252c291fb9bd50b76904953524f1","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"      * The proxy-logging middleware may now emit real-time transfer metrics."},{"line_number":37,"context_line":"        See the `statsd_emit_buffer_xfer_bytes_seconds` option in"},{"line_number":38,"context_line":"        etc/proxy-server.conf-sample for more information."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"      * The s3api middleware now emits a counter recording the usage of"},{"line_number":41,"context_line":"        various protocol-related headers."}],"source_content_type":"application/octet-stream","patch_set":6,"id":"7de57260_42df18c8","line":38,"in_reply_to":"a7d145a4_30ab144e","updated":"2026-01-26 22:28:26.000000000","message":"Done","commit_id":"274697b61a58b3dbfecc7155e80b00b495d18f72"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dd9a4662f942b75ce4e5a1b0de1fa4ee2fc223e1","unresolved":true,"context_lines":[{"line_number":48,"context_line":"      `--skip-commits`, may be used to restore previous behavior."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    * Added a `--clobber-hardlink-collisions` option to`swift-object-relinker`."},{"line_number":51,"context_line":"      With this option enabled during the relink phase we\u0027ll quarantine the"},{"line_number":52,"context_line":"      colliding file in the new target part dir and retry the relink. During"},{"line_number":53,"context_line":"      the cleanup phase we ignore the un-matched inode \"collision\" and allow"},{"line_number":54,"context_line":"      the cleanup of the old file in the old part dir similar to tombstones."}],"source_content_type":"application/octet-stream","patch_set":6,"id":"2f01c268_f46494fd","line":51,"range":{"start_line":51,"start_character":55,"end_line":51,"end_character":57},"updated":"2026-01-26 17:12:00.000000000","message":"nit: I wonder whether the changelog should a little more formal/precise i.e. ``the relinker will quarantine``. Same line 53.","commit_id":"274697b61a58b3dbfecc7155e80b00b495d18f72"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d7b35155689c252c291fb9bd50b76904953524f1","unresolved":false,"context_lines":[{"line_number":48,"context_line":"      `--skip-commits`, may be used to restore previous behavior."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    * Added a `--clobber-hardlink-collisions` option to`swift-object-relinker`."},{"line_number":51,"context_line":"      With this option enabled during the relink phase we\u0027ll quarantine the"},{"line_number":52,"context_line":"      colliding file in the new target part dir and retry the relink. During"},{"line_number":53,"context_line":"      the cleanup phase we ignore the un-matched inode \"collision\" and allow"},{"line_number":54,"context_line":"      the cleanup of the old file in the old part dir similar to tombstones."}],"source_content_type":"application/octet-stream","patch_set":6,"id":"bf24a6c6_2eee9796","line":51,"range":{"start_line":51,"start_character":55,"end_line":51,"end_character":57},"in_reply_to":"2f01c268_f46494fd","updated":"2026-01-26 22:28:26.000000000","message":"Done","commit_id":"274697b61a58b3dbfecc7155e80b00b495d18f72"}]}
