)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"39967e36642e0814714b3435256b3f42808eddb5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ecc02c00_5786dab7","updated":"2024-03-20 17:03:53.000000000","message":"We need two things:\n- We need to put this new behavior behind a microversion\n- We need to write tempest tests to validate current behavior on current microversions, and new behavior on new microversions ( https://etherpad.opendev.org/p/ironic-tempest-dotjson )","commit_id":"e0cc0d773ba7e34aa63f9c04e37f3ef5b409f50d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"5ff61f60076f07bfdb678e376fbe40376b60f2a0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fd380469_95701519","updated":"2024-04-14 20:36:14.000000000","message":"I rebased this + revised the commit message after taking a look locally.\n\nThe unit test failures are valid; basically it doesn\u0027t look like you\u0027ve accounted for the older microversion in the API code. (e.g.  Anytime a client connects with an earlier version header we\u0027ll need to provide the old behavior -- this is what the unit test is doing, and it\u0027s correctly failing. You can see some examples of this in the controller code for node: https://opendev.org/openstack/ironic/src/branch/master/ironic/api/controllers/v1/node.py#L352 \n\nI can look at this with you next week if you want; just let me know. Once we fix backwards compatibility this should be good to go.","commit_id":"4c954a09637a403c2c57b1068ed6e59c3e902365"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"1cdb069141c2d505e69ba0aa535099ae6df87e03","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3bf21671_8e57434d","updated":"2024-04-24 19:36:47.000000000","message":"Super close!","commit_id":"4015290822d283d34e42c2eb05341de9dcd8607d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f8a891529c2799b8ec29dea31f69c78ada1ab577","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"e93eb7bf_a264acc6","updated":"2024-04-29 21:41:57.000000000","message":"Going to try and put this in a devstack in the next day or two to validate it locally","commit_id":"ee5315bcf3364469d5d5200933ab22e1ecdc38c2"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"816613beb4a6ecdd880e248b211be6349f9310d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"11e00145_9096f32c","updated":"2024-04-29 15:47:28.000000000","message":"LGTM, Thanks!","commit_id":"ee5315bcf3364469d5d5200933ab22e1ecdc38c2"}],"ironic/api/middleware/json_ext.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"1cdb069141c2d505e69ba0aa535099ae6df87e03","unresolved":true,"context_lines":[{"line_number":34,"context_line":"    def __call__(self, env, start_response):"},{"line_number":35,"context_line":"        path \u003d utils.safe_rstrip(env.get(\u0027PATH_INFO\u0027), \u0027/\u0027)"},{"line_number":36,"context_line":"        api_version \u003d utils.safe_rstrip("},{"line_number":37,"context_line":"            env.get(\u0027HTTP_X_OPENSTACK_IRONIC_API_VERSION\u0027, \u0027\u0027)).split(\u0027.\u0027)[-1]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        if path and path.endswith(\u0027.json\u0027):"},{"line_number":40,"context_line":"            # NOTE(cid): We can cast to int() without an exception since"}],"source_content_type":"text/x-python","patch_set":13,"id":"2aaaad3c_fc777766","line":37,"updated":"2024-04-24 19:36:47.000000000","message":"Should you use microversion-parse library here instead?","commit_id":"4015290822d283d34e42c2eb05341de9dcd8607d"}],"ironic/common/release_mappings.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"553816f0305f3f7830bcbd841cdaf60409703b33","unresolved":true,"context_lines":[{"line_number":704,"context_line":"            \u0027FirmwareComponent\u0027: [\u00271.0\u0027],"},{"line_number":705,"context_line":"        }"},{"line_number":706,"context_line":"    },"},{"line_number":707,"context_line":"    \u002724.2\u0027: {"},{"line_number":708,"context_line":"        \u0027api\u0027: \u00271.91\u0027,"},{"line_number":709,"context_line":"        \u0027rpc\u0027: \u00271.59\u0027,"},{"line_number":710,"context_line":"        \u0027objects\u0027: {"},{"line_number":711,"context_line":"            \u0027Allocation\u0027: [\u00271.1\u0027],"},{"line_number":712,"context_line":"            \u0027BIOSSetting\u0027: [\u00271.1\u0027],"},{"line_number":713,"context_line":"            \u0027Node\u0027: [\u00271.40\u0027, \u00271.39\u0027, \u00271.38\u0027, \u00271.37\u0027],"},{"line_number":714,"context_line":"            \u0027NodeHistory\u0027: [\u00271.0\u0027],"},{"line_number":715,"context_line":"            \u0027NodeInventory\u0027: [\u00271.0\u0027],"},{"line_number":716,"context_line":"            \u0027Conductor\u0027: [\u00271.4\u0027],"},{"line_number":717,"context_line":"            \u0027Chassis\u0027: [\u00271.3\u0027],"},{"line_number":718,"context_line":"            \u0027Deployment\u0027: [\u00271.0\u0027],"},{"line_number":719,"context_line":"            \u0027DeployTemplate\u0027: [\u00271.1\u0027],"},{"line_number":720,"context_line":"            \u0027Port\u0027: [\u00271.11\u0027],"},{"line_number":721,"context_line":"            \u0027Portgroup\u0027: [\u00271.5\u0027],"},{"line_number":722,"context_line":"            \u0027Trait\u0027: [\u00271.0\u0027],"},{"line_number":723,"context_line":"            \u0027TraitList\u0027: [\u00271.0\u0027],"},{"line_number":724,"context_line":"            \u0027VolumeConnector\u0027: [\u00271.0\u0027],"},{"line_number":725,"context_line":"            \u0027VolumeTarget\u0027: [\u00271.0\u0027],"},{"line_number":726,"context_line":"            \u0027FirmwareComponent\u0027: [\u00271.0\u0027],"},{"line_number":727,"context_line":"        }"},{"line_number":728,"context_line":"    },"},{"line_number":729,"context_line":"    \u0027master\u0027: {"},{"line_number":730,"context_line":"        \u0027api\u0027: \u00271.91\u0027,"},{"line_number":731,"context_line":"        \u0027rpc\u0027: \u00271.59\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"ca962f17_99075a55","line":728,"range":{"start_line":707,"start_character":3,"end_line":728,"end_character":6},"updated":"2024-04-24 19:17:39.000000000","message":"So why this? I guess I\u0027m confused and this should be done separately as part of a release.","commit_id":"4015290822d283d34e42c2eb05341de9dcd8607d"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"1cdb069141c2d505e69ba0aa535099ae6df87e03","unresolved":true,"context_lines":[{"line_number":704,"context_line":"            \u0027FirmwareComponent\u0027: [\u00271.0\u0027],"},{"line_number":705,"context_line":"        }"},{"line_number":706,"context_line":"    },"},{"line_number":707,"context_line":"    \u002724.2\u0027: {"},{"line_number":708,"context_line":"        \u0027api\u0027: \u00271.91\u0027,"},{"line_number":709,"context_line":"        \u0027rpc\u0027: \u00271.59\u0027,"},{"line_number":710,"context_line":"        \u0027objects\u0027: {"},{"line_number":711,"context_line":"            \u0027Allocation\u0027: [\u00271.1\u0027],"},{"line_number":712,"context_line":"            \u0027BIOSSetting\u0027: [\u00271.1\u0027],"},{"line_number":713,"context_line":"            \u0027Node\u0027: [\u00271.40\u0027, \u00271.39\u0027, \u00271.38\u0027, \u00271.37\u0027],"},{"line_number":714,"context_line":"            \u0027NodeHistory\u0027: [\u00271.0\u0027],"},{"line_number":715,"context_line":"            \u0027NodeInventory\u0027: [\u00271.0\u0027],"},{"line_number":716,"context_line":"            \u0027Conductor\u0027: [\u00271.4\u0027],"},{"line_number":717,"context_line":"            \u0027Chassis\u0027: [\u00271.3\u0027],"},{"line_number":718,"context_line":"            \u0027Deployment\u0027: [\u00271.0\u0027],"},{"line_number":719,"context_line":"            \u0027DeployTemplate\u0027: [\u00271.1\u0027],"},{"line_number":720,"context_line":"            \u0027Port\u0027: [\u00271.11\u0027],"},{"line_number":721,"context_line":"            \u0027Portgroup\u0027: [\u00271.5\u0027],"},{"line_number":722,"context_line":"            \u0027Trait\u0027: [\u00271.0\u0027],"},{"line_number":723,"context_line":"            \u0027TraitList\u0027: [\u00271.0\u0027],"},{"line_number":724,"context_line":"            \u0027VolumeConnector\u0027: [\u00271.0\u0027],"},{"line_number":725,"context_line":"            \u0027VolumeTarget\u0027: [\u00271.0\u0027],"},{"line_number":726,"context_line":"            \u0027FirmwareComponent\u0027: [\u00271.0\u0027],"},{"line_number":727,"context_line":"        }"},{"line_number":728,"context_line":"    },"},{"line_number":729,"context_line":"    \u0027master\u0027: {"},{"line_number":730,"context_line":"        \u0027api\u0027: \u00271.91\u0027,"},{"line_number":731,"context_line":"        \u0027rpc\u0027: \u00271.59\u0027,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1bb0c051_061480ac","line":728,"range":{"start_line":707,"start_character":3,"end_line":728,"end_character":6},"in_reply_to":"ca962f17_99075a55","updated":"2024-04-24 19:36:47.000000000","message":"++ this should be removed","commit_id":"4015290822d283d34e42c2eb05341de9dcd8607d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"553816f0305f3f7830bcbd841cdaf60409703b33","unresolved":false,"context_lines":[{"line_number":727,"context_line":"        }"},{"line_number":728,"context_line":"    },"},{"line_number":729,"context_line":"    \u0027master\u0027: {"},{"line_number":730,"context_line":"        \u0027api\u0027: \u00271.91\u0027,"},{"line_number":731,"context_line":"        \u0027rpc\u0027: \u00271.59\u0027,"},{"line_number":732,"context_line":"        \u0027objects\u0027: {"},{"line_number":733,"context_line":"            \u0027Allocation\u0027: [\u00271.1\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"4ee4f1ec_d6ced32f","line":730,"updated":"2024-04-24 19:17:39.000000000","message":"This is what I would expect. 😊","commit_id":"4015290822d283d34e42c2eb05341de9dcd8607d"}],"releasenotes/notes/stop-special-handling-of-json-extension-c69af7da3abaeaac.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"553816f0305f3f7830bcbd841cdaf60409703b33","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special treatment of .json is now disabled for nodes with .json"},{"line_number":5,"context_line":"    extension See `bug 1748224"},{"line_number":6,"context_line":"    \u003chttps://bugs.launchpad.net/ironic/+bug/1748224\u003e`_ for more details."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"74eb4454_ca581d14","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":30},"updated":"2024-04-24 19:17:39.000000000","message":"Maybe:\n- Move \"See `bug 1748224\" to the next line. It is okay if it exceeds 80 characters due to the URL.\n- s/extension/extension in URL field./\n\nAdditionally:\n\nWould it make sense to add an upgrade note as well?","commit_id":"295b8cdd678d56ba41be9c5d3b8c77f7a0ae2906"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"70d242a48a2dc2df15654a9117847ef851da38b6","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special treatment of .json is now disabled for nodes with .json"},{"line_number":5,"context_line":"    extension in URL field."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    See `bug 1748224 \u003chttps://bugs.launchpad.net/ironic/+bug/1748224\u003e`_ for more details."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"3d43a48c_12bfb824","line":5,"updated":"2024-04-25 16:19:50.000000000","message":"We need to indicate, that we\u0027ve added a new microversion to the API to govern changed behavior.\n\nMy suggestion, add something like the following:\n\n\"\nupgrade:\n  - |\n    API version 1.91 removes special treatment given to URLs ending in \".json\".\n    Operators desiring the previous behavior can request API version 1.90 or\n    earlier.\n\"\n\nReally the exact wording matters less than documenting the API behavior change.","commit_id":"f10d6ba4753b44ecfe0cec6e80bc0efad8f98cac"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"3a48cab2960f27c8a464b4016a1f67abbe377b91","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Special treatment of .json is now disabled for nodes with .json"},{"line_number":5,"context_line":"    extension in URL field."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    See `bug 1748224 \u003chttps://bugs.launchpad.net/ironic/+bug/1748224\u003e`_ for more details."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"f1f631a4_a0ee477b","line":5,"in_reply_to":"3d43a48c_12bfb824","updated":"2024-06-06 12:15:38.000000000","message":"Acknowledged","commit_id":"f10d6ba4753b44ecfe0cec6e80bc0efad8f98cac"}]}
