)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"c3b7c012badebd658e88fa53361b7db4c1ac6c22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5e0f9a5b_a56a7b4d","updated":"2024-09-06 21:30:39.000000000","message":"check experimental","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5d045f4e96749824616d2f1b4bb5573bd50e02ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d9af709b_00d7c73c","updated":"2024-09-06 23:29:04.000000000","message":"check experimental","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"911e54c89af7d311948d17c2898afda54bdc52a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3243c8ec_73d9d70a","updated":"2024-09-09 08:20:10.000000000","message":"mostly nits but one definite fix needed for repeated text","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3d73e77d19eda1d5a03063e6e924bcfa5ca17990","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"92b4ab90_17e55a1f","updated":"2024-09-09 21:12:29.000000000","message":"check experimental","commit_id":"1b8166df0e9c01826e2fe516071759aeffbc874f"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a0041f57e0785fd6c7a93be15d40ada43421bfdf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3fa3897d_0be810d5","updated":"2024-09-11 15:40:52.000000000","message":"check experimental","commit_id":"f69635e11e1ff4d8794c65ab04f5be246ccb0cef"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5ec4147d34d4cb16f8238e73dc8020771719adb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fe6e03da_fdcaec47","updated":"2024-09-11 21:22:55.000000000","message":"Thanks, everyone, for looking over the notes!","commit_id":"0e41e179003fac2a0ca4bc4c913e9a6d574ddf68"}],"CHANGELOG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"911e54c89af7d311948d17c2898afda54bdc52a6","unresolved":true,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"    * Middleware features:"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"      * The static large object middleware now supports including a"},{"line_number":6,"context_line":"        `?part-number\u003d\u003cN\u003e` query parameter to request just part of a"},{"line_number":7,"context_line":"        large object. This may be used to enable efficient parallel"},{"line_number":8,"context_line":"        downloads. For more information, see"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"76687d58_42cbfd13","line":5,"range":{"start_line":5,"start_character":12,"end_line":5,"end_character":31},"updated":"2024-09-09 08:20:10.000000000","message":"nit: include the TLA ``(SLO)``","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ebacfd57a8903d52d30acae27a4f4bfdb3980766","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"    * Middleware features:"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"      * The static large object middleware now supports including a"},{"line_number":6,"context_line":"        `?part-number\u003d\u003cN\u003e` query parameter to request just part of a"},{"line_number":7,"context_line":"        large object. This may be used to enable efficient parallel"},{"line_number":8,"context_line":"        downloads. For more information, see"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"9d612c48_ce4d4776","line":5,"range":{"start_line":5,"start_character":12,"end_line":5,"end_character":31},"in_reply_to":"76687d58_42cbfd13","updated":"2024-09-09 21:08:31.000000000","message":"Done","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"911e54c89af7d311948d17c2898afda54bdc52a6","unresolved":true,"context_lines":[{"line_number":8,"context_line":"        downloads. For more information, see"},{"line_number":9,"context_line":"        https://docs.openstack.org/swift/latest/overview_large_objects.html#retrieving-a-large-object"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"      * The S3 API now supports the `?partNumber` query parameter,"},{"line_number":12,"context_line":"        enabling parallel downloads."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"      * The account quota middleware now supports object-count quotas"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"071e1705_9ad00155","line":11,"updated":"2024-09-09 08:20:10.000000000","message":"nit: for consistency with previous bullet this could also state ``\u003d\u003cN\u003e``","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ebacfd57a8903d52d30acae27a4f4bfdb3980766","unresolved":false,"context_lines":[{"line_number":8,"context_line":"        downloads. For more information, see"},{"line_number":9,"context_line":"        https://docs.openstack.org/swift/latest/overview_large_objects.html#retrieving-a-large-object"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"      * The S3 API now supports the `?partNumber` query parameter,"},{"line_number":12,"context_line":"        enabling parallel downloads."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"      * The account quota middleware now supports object-count quotas"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"12912f39_f8963882","line":11,"in_reply_to":"071e1705_9ad00155","updated":"2024-09-09 21:08:31.000000000","message":"Done","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"911e54c89af7d311948d17c2898afda54bdc52a6","unresolved":true,"context_lines":[{"line_number":26,"context_line":"        `config_reload_interval` control which file is reloaded and how"},{"line_number":27,"context_line":"        frequently, respectively."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"      * The backend ratelimiter now supports per-method, per-method"},{"line_number":30,"context_line":"        ratelimits. See `etc/backend-ratelimit.conf-sample` for more"},{"line_number":31,"context_line":"        information."},{"line_number":32,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"f62d7f48_68432830","line":29,"range":{"start_line":29,"start_character":45,"end_line":29,"end_character":67},"updated":"2024-09-09 08:20:10.000000000","message":"typo: repeated ``per-method``","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ebacfd57a8903d52d30acae27a4f4bfdb3980766","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        `config_reload_interval` control which file is reloaded and how"},{"line_number":27,"context_line":"        frequently, respectively."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"      * The backend ratelimiter now supports per-method, per-method"},{"line_number":30,"context_line":"        ratelimits. See `etc/backend-ratelimit.conf-sample` for more"},{"line_number":31,"context_line":"        information."},{"line_number":32,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"e4b8e4ff_a8e75c72","line":29,"range":{"start_line":29,"start_character":45,"end_line":29,"end_character":67},"in_reply_to":"f62d7f48_68432830","updated":"2024-09-09 21:08:31.000000000","message":"Done","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"911e54c89af7d311948d17c2898afda54bdc52a6","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        used to offer some grace period in which to recover expired objects."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      * Added the ability for clients to interact with expired objects by"},{"line_number":49,"context_line":"        including a `X-Open-Expired: true` header if the cluster is"},{"line_number":50,"context_line":"        configured to allow it. This is controlled by the `allow_open_expired`"},{"line_number":51,"context_line":"        option in the proxy-server and defaults to disabled."},{"line_number":52,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"92614a45_7fc9367c","line":49,"range":{"start_line":49,"start_character":18,"end_line":49,"end_character":19},"updated":"2024-09-09 08:20:10.000000000","message":"nit: s/a/an/","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ebacfd57a8903d52d30acae27a4f4bfdb3980766","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        used to offer some grace period in which to recover expired objects."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      * Added the ability for clients to interact with expired objects by"},{"line_number":49,"context_line":"        including a `X-Open-Expired: true` header if the cluster is"},{"line_number":50,"context_line":"        configured to allow it. This is controlled by the `allow_open_expired`"},{"line_number":51,"context_line":"        option in the proxy-server and defaults to disabled."},{"line_number":52,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"8063cdfb_0506715c","line":49,"range":{"start_line":49,"start_character":18,"end_line":49,"end_character":19},"in_reply_to":"92614a45_7fc9367c","updated":"2024-09-09 21:08:31.000000000","message":"Done","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"911e54c89af7d311948d17c2898afda54bdc52a6","unresolved":true,"context_lines":[{"line_number":48,"context_line":"      * Added the ability for clients to interact with expired objects by"},{"line_number":49,"context_line":"        including a `X-Open-Expired: true` header if the cluster is"},{"line_number":50,"context_line":"        configured to allow it. This is controlled by the `allow_open_expired`"},{"line_number":51,"context_line":"        option in the proxy-server and defaults to disabled."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      * Expiring object queue entries now include the size of the object to"},{"line_number":54,"context_line":"        be expired in the `swift_expirer_bytes` parameter of the queue entry\u0027s"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"342544e5_d3064981","line":51,"range":{"start_line":51,"start_character":35,"end_line":51,"end_character":38},"updated":"2024-09-09 08:20:10.000000000","message":"s/and/which/\n\n``This`` is the header, so as it is written the expanded sentence says \"the header is controlled by... and the header defaults to ...\"","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ebacfd57a8903d52d30acae27a4f4bfdb3980766","unresolved":false,"context_lines":[{"line_number":48,"context_line":"      * Added the ability for clients to interact with expired objects by"},{"line_number":49,"context_line":"        including a `X-Open-Expired: true` header if the cluster is"},{"line_number":50,"context_line":"        configured to allow it. This is controlled by the `allow_open_expired`"},{"line_number":51,"context_line":"        option in the proxy-server and defaults to disabled."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      * Expiring object queue entries now include the size of the object to"},{"line_number":54,"context_line":"        be expired in the `swift_expirer_bytes` parameter of the queue entry\u0027s"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"5d1bd022_c31bb781","line":51,"range":{"start_line":51,"start_character":35,"end_line":51,"end_character":38},"in_reply_to":"342544e5_d3064981","updated":"2024-09-09 21:08:31.000000000","message":"I was thinking that \"this\" was referring to the \"cluster [being] confgiured to allow it.\" Re-worded the whole thing; hopefully it\u0027s more clear.","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"911e54c89af7d311948d17c2898afda54bdc52a6","unresolved":true,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    * Proxy-server fixes:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"      * Object POSTs when primaries are overloaded now 503 rather than"},{"line_number":63,"context_line":"        trusting the 404s that might be returned from handoffs."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"      * Client disconnects should always be logged within the context of"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"71e27ef2_88fda760","line":62,"range":{"start_line":62,"start_character":21,"end_line":62,"end_character":50},"updated":"2024-09-09 08:20:10.000000000","message":"nit: move this phrase to the end of the sentence","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ebacfd57a8903d52d30acae27a4f4bfdb3980766","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    * Proxy-server fixes:"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"      * Object POSTs when primaries are overloaded now 503 rather than"},{"line_number":63,"context_line":"        trusting the 404s that might be returned from handoffs."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"      * Client disconnects should always be logged within the context of"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"c268579a_7700f200","line":62,"range":{"start_line":62,"start_character":21,"end_line":62,"end_character":50},"in_reply_to":"71e27ef2_88fda760","updated":"2024-09-09 21:08:31.000000000","message":"Done","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"911e54c89af7d311948d17c2898afda54bdc52a6","unresolved":true,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"      * Client disconnects should always be logged within the context of"},{"line_number":66,"context_line":"        the appropriate client request. Previously, there were some cases"},{"line_number":67,"context_line":"        where it would occur during general garbage collection, leading to"},{"line_number":68,"context_line":"        incorrect or missing transaction IDs in logs."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"      * The proxy-logging middleware now emits timing and transfer stats for"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"4d524b28_1c34d3de","line":67,"range":{"start_line":67,"start_character":14,"end_line":67,"end_character":16},"updated":"2024-09-09 08:20:10.000000000","message":"s/it/logging/","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"ebacfd57a8903d52d30acae27a4f4bfdb3980766","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"      * Client disconnects should always be logged within the context of"},{"line_number":66,"context_line":"        the appropriate client request. Previously, there were some cases"},{"line_number":67,"context_line":"        where it would occur during general garbage collection, leading to"},{"line_number":68,"context_line":"        incorrect or missing transaction IDs in logs."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"      * The proxy-logging middleware now emits timing and transfer stats for"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"6bf6f61f_f91ea3eb","line":67,"range":{"start_line":67,"start_character":14,"end_line":67,"end_character":16},"in_reply_to":"4d524b28_1c34d3de","updated":"2024-09-09 21:08:31.000000000","message":"Done","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"911e54c89af7d311948d17c2898afda54bdc52a6","unresolved":true,"context_lines":[{"line_number":65,"context_line":"      * Client disconnects should always be logged within the context of"},{"line_number":66,"context_line":"        the appropriate client request. Previously, there were some cases"},{"line_number":67,"context_line":"        where it would occur during general garbage collection, leading to"},{"line_number":68,"context_line":"        incorrect or missing transaction IDs in logs."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"      * The proxy-logging middleware now emits timing and transfer stats for"},{"line_number":71,"context_line":"        more requests such as auth requests. These will be labeled `UNKNOWN`"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"c67b0e79_b52098b3","line":68,"updated":"2024-09-09 08:20:10.000000000","message":"yay!","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f6e5e7403b9d52d61ccdbfbfb23f2c09725d807a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"      * Client disconnects should always be logged within the context of"},{"line_number":66,"context_line":"        the appropriate client request. Previously, there were some cases"},{"line_number":67,"context_line":"        where it would occur during general garbage collection, leading to"},{"line_number":68,"context_line":"        incorrect or missing transaction IDs in logs."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"      * The proxy-logging middleware now emits timing and transfer stats for"},{"line_number":71,"context_line":"        more requests such as auth requests. These will be labeled `UNKNOWN`"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"53fb5bb4_62f904ab","line":68,"in_reply_to":"c67b0e79_b52098b3","updated":"2024-09-11 03:39:11.000000000","message":"Acknowledged","commit_id":"387d9bc14e422a77abbde7d174e884797073f650"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"16a6b5b6c962bf79c39629e64bc025a670e7b19a","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        quota middleware. For more information, see"},{"line_number":47,"context_line":"        https://docs.openstack.org/swift/latest/middleware.html#module-swift.common.middleware.account_quotas"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"      * Using an `X-Account-Quota-Bytes-Policy-\u003cpolicy name\u003e` header now"},{"line_number":50,"context_line":"        removes the per-policy quota, rather than reducing it to zero."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    * Object expiration improvements:"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"c8eb80ad_6f2363a9","line":49,"range":{"start_line":49,"start_character":17,"end_line":49,"end_character":60},"updated":"2024-09-11 00:16:38.000000000","message":"I assume this is suppose to be a delete header","commit_id":"df4fd93af58758920f9d5b7c0caaa9f648cdc472"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f6e5e7403b9d52d61ccdbfbfb23f2c09725d807a","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        quota middleware. For more information, see"},{"line_number":47,"context_line":"        https://docs.openstack.org/swift/latest/middleware.html#module-swift.common.middleware.account_quotas"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"      * Using an `X-Account-Quota-Bytes-Policy-\u003cpolicy name\u003e` header now"},{"line_number":50,"context_line":"        removes the per-policy quota, rather than reducing it to zero."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    * Object expiration improvements:"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"fb37cd47_777b95f2","line":49,"range":{"start_line":49,"start_character":17,"end_line":49,"end_character":60},"in_reply_to":"c8eb80ad_6f2363a9","updated":"2024-09-11 03:39:11.000000000","message":"I *did* mean `X-Remove-...`! Good catch, Matt!","commit_id":"df4fd93af58758920f9d5b7c0caaa9f648cdc472"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5ec4147d34d4cb16f8238e73dc8020771719adb2","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        quota middleware. For more information, see"},{"line_number":47,"context_line":"        https://docs.openstack.org/swift/latest/middleware.html#module-swift.common.middleware.account_quotas"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"      * Using an `X-Account-Quota-Bytes-Policy-\u003cpolicy name\u003e` header now"},{"line_number":50,"context_line":"        removes the per-policy quota, rather than reducing it to zero."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    * Object expiration improvements:"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"5f1a6039_2ad54bb5","line":49,"range":{"start_line":49,"start_character":17,"end_line":49,"end_character":60},"in_reply_to":"fb37cd47_777b95f2","updated":"2024-09-11 21:22:55.000000000","message":"Done","commit_id":"df4fd93af58758920f9d5b7c0caaa9f648cdc472"}]}
