)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"deddefd0daf339d2463346b84feb96099d1242d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"08a24650_eca7d4d5","updated":"2026-10-28 16:29:37.000000000","message":"+1 while i wait for the ci job to report so i can review the flow chart :)","commit_id":"1a3204fd49aa1ce85ddb25cef2ee2ef6c3622714"}],"doc/source/contributor/microversions.rst":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"09e872d7ad06a4d9ecaa87c3d456545541304510","unresolved":true,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  - new headers returned on a response"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"- the observable behavior of an operation, even when its request and response"},{"line_number":120,"context_line":"  formats do not change"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  - the resource states or configurations for which an operation is supported"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a0aac24_a095fa03","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":23},"updated":"2026-10-29 19:52:05.000000000","message":"This isn\u0027t always true; it is mostly case-by-case, and the team discuss and decides the best path forward, either a microversion bump or no microversion bump. We have many example where microversion is not bumped for example: vtpm/virtfs live migration. Bug fixes are another example where we do not usually bump the microversion, or may bump it to advertise the fix.\n\nIt is hard to generalize the policy on this: which cases need a bump and which do not. That is why we have not documented it yet, and not because it was just missed. One thing we can document is that we need to bring such a discussion to the team and decide if we need a microversion for a particular behaviour change where API request/response stays same.","commit_id":"1a3204fd49aa1ce85ddb25cef2ee2ef6c3622714"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a220123d2b48cd771ad1ea971bc5910f2e88b150","unresolved":true,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  - new headers returned on a response"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"- the observable behavior of an operation, even when its request and response"},{"line_number":120,"context_line":"  formats do not change"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  - the resource states or configurations for which an operation is supported"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"0f66dd3a_de13b647","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":23},"in_reply_to":"0e644335_d93d6d46","updated":"2026-10-30 16:42:41.000000000","message":"Yes, as it is case by case, and we have cases where we bumped the microversion and cases where we did not. With that my suggestion is not to include it \u0027When do I need a new Microversion?\u0027 or \u0027When a microversion is not needed\u0027 section instead add a 3rd section \u0027More discussion needed in team to decide microversion bump\u0027 and there we can add this text and the list of cases with microversion bump and cases of no microversion. That will be helpful for us or new people to check the ref quickly. what yuou say?","commit_id":"1a3204fd49aa1ce85ddb25cef2ee2ef6c3622714"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bb8bbc7ca7689dea1bf488a1939cb43d3a527a7e","unresolved":true,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  - new headers returned on a response"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"- the observable behavior of an operation, even when its request and response"},{"line_number":120,"context_line":"  formats do not change"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  - the resource states or configurations for which an operation is supported"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"cac8d604_92a8754f","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":23},"in_reply_to":"0f66dd3a_de13b647","updated":"2026-10-30 17:34:33.000000000","message":"oh i kind of like that idea of having a third section esppcially since we alwas discuss this on a case by case basis anyway.","commit_id":"1a3204fd49aa1ce85ddb25cef2ee2ef6c3622714"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b454973df330ff4818c25d76163be98691a79930","unresolved":true,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  - new headers returned on a response"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"- the observable behavior of an operation, even when its request and response"},{"line_number":120,"context_line":"  formats do not change"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  - the resource states or configurations for which an operation is supported"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"0e644335_d93d6d46","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":23},"in_reply_to":"1a0aac24_a095fa03","updated":"2026-10-30 10:42:48.000000000","message":"Fair. How about some \"fuzzing\" verbiage like so?\n\n```suggestion\n- the observable behavior of an operation, even when its request and response\n  formats do not change\n  \n  These changes are decided on a case-by-case basis, based on the likely impact\n  for end-users or need to make the change discoverable. Some pre-existing\n  examples include:\n```\n\nOpen to alternative suggestions too","commit_id":"1a3204fd49aa1ce85ddb25cef2ee2ef6c3622714"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3c1c79d376e16fb5a75d1215acfc47702cf46e97","unresolved":true,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  - new headers returned on a response"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"- the observable behavior of an operation, even when its request and response"},{"line_number":120,"context_line":"  formats do not change"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  - the resource states or configurations for which an operation is supported"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"130a7641_b5f91e8d","line":120,"range":{"start_line":119,"start_character":0,"end_line":120,"end_character":23},"in_reply_to":"cac8d604_92a8754f","updated":"2026-11-05 15:46:59.000000000","message":"+1 for stating case by case. It is pretty hard to define a generic rule for the case when the syntax remains the but some level of semantics change. @gmaan.os14@gmail.com had good counterexamples when we allowed the semantic change without microversion for a new feature because it was considered safe, incremental, positive feature addition.","commit_id":"1a3204fd49aa1ce85ddb25cef2ee2ef6c3622714"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6cc2461f35ae742d7565fe342af57ff1801b262b","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"- the observable behavior of an operation, even when its request and response"},{"line_number":120,"context_line":"  formats do not change"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  - the resource states or configurations for which an operation is supported"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    Example: microversion 2.87 allows rescuing volume-backed servers, and"},{"line_number":125,"context_line":"    microversion 2.93 allows rebuilding them with a new image."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  - the resulting resource state or the guarantees about when work completes"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    Example: microversion 2.95 changes evacuation to leave the server stopped"},{"line_number":130,"context_line":"    at the destination, rather than preserving its previous power state."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  Internal implementation changes that do not affect the user contract do not"},{"line_number":133,"context_line":"  require a microversion. The bug-fix exceptions described below still apply."},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e1b5cc66_e632e218","line":131,"range":{"start_line":121,"start_character":1,"end_line":131,"end_character":1},"updated":"2026-10-28 16:55:38.000000000","message":"Note that I\u0027ve given concrete examples here because it\u0027s hard to describe in the abstract. If anyone thinks there\u0027s a better way to do this though, please just say.","commit_id":"1a3204fd49aa1ce85ddb25cef2ee2ef6c3622714"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"deddefd0daf339d2463346b84feb96099d1242d4","unresolved":true,"context_lines":[{"line_number":130,"context_line":"    at the destination, rather than preserving its previous power state."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  Internal implementation changes that do not affect the user contract do not"},{"line_number":133,"context_line":"  require a microversion. The bug-fix exceptions described below still apply."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The following flow chart attempts to walk through the process of \"do"},{"line_number":136,"context_line":"we need a microversion\"."}],"source_content_type":"text/x-rst","patch_set":1,"id":"e199ddfd_2f0830aa","line":133,"updated":"2026-10-28 16:29:37.000000000","message":"+1\n\nthis is all consinsitent with my understandign of the micoverion contract\n\nwe can intoduce a microverison without a request or respocne change to opt into behvior\n\nwe rearly do it but in the rebuild of volume backed isntace we did it becaue before the change a rebuilt to the same image was allow and only updated the metadata (a poorly documented adn tested behviro) and after it it actully did rebuild properly and reimaged the the volume removing the spcial casing for bfv guest brign them in line with normal instances.","commit_id":"1a3204fd49aa1ce85ddb25cef2ee2ef6c3622714"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bb8bbc7ca7689dea1bf488a1939cb43d3a527a7e","unresolved":true,"context_lines":[{"line_number":130,"context_line":"    at the destination, rather than preserving its previous power state."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  Internal implementation changes that do not affect the user contract do not"},{"line_number":133,"context_line":"  require a microversion. The bug-fix exceptions described below still apply."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The following flow chart attempts to walk through the process of \"do"},{"line_number":136,"context_line":"we need a microversion\"."}],"source_content_type":"text/x-rst","patch_set":1,"id":"a061b04b_b9995d52","line":133,"in_reply_to":"e199ddfd_2f0830aa","updated":"2026-10-30 17:34:33.000000000","message":"`Internal implementation changes that do not affect the user contract do not\n  require a microversion`\n  \nis very impornat.\n\nwe hav elong heled that removing an api block for say live migration when a vm uses a feature that was not prviosly live mgiratbale should never require a microverion\n\n\nthere are outer exampels as well where the fact x was not implmente when a feature was addded shoudl not require a microverion if the gap is closed in teh futre.\nwe just removed the api block or made it ocndtional with a min compute service version check internally.\n\nthis also pairs well with the \"should not need to opt into a bug fix\" convent aroudn not requrieing a new microvtion to fix a behvior that was clearly a bug.","commit_id":"1a3204fd49aa1ce85ddb25cef2ee2ef6c3622714"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a5f0fffe2364e237d378b3b7389035b70ed9f56c","unresolved":true,"context_lines":[{"line_number":204,"context_line":"  are handled before API methods are called which results in a 415."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    .. note:: When in doubt about whether or not a microversion is required"},{"line_number":207,"context_line":"        for changing an error response code, consul the nova core team."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"When a microversion might be needed"},{"line_number":210,"context_line":"-----------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b02bebc8_a53bea71","line":207,"range":{"start_line":207,"start_character":45,"end_line":207,"end_character":51},"updated":"2026-11-06 16:12:33.000000000","message":"I assume you didn\u0027t mean to strip the \u0027t\u0027 here?","commit_id":"a5f937fcb0af94864664d00b8ae3f0b0bafd5ad1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a5f0fffe2364e237d378b3b7389035b70ed9f56c","unresolved":true,"context_lines":[{"line_number":219,"context_line":"  microversion 2.93 allows rebuilding them with a new image."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"  Counter-example: support for live migrating instances with vTPM devices or"},{"line_number":222,"context_line":"  virtiofs share attachments was added without a new microversion."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"- the resulting resource state or the guarantees about when work completes"},{"line_number":225,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fbfcb453_e6cb8902","line":222,"updated":"2026-11-06 16:12:33.000000000","message":"The second example here reads to me as \"live migration with ...  virtiofs share attachments\". We\u0027ve approved that as an acceptable direction but it\u0027s not merged yet (or maybe even proposed). However, cold migration with those shares fits this example and that _is_ merged. Just pointing it out in case we never merge the live one, or we end up needing microversion-required changes and in a couple years this example seems wrong.","commit_id":"a5f937fcb0af94864664d00b8ae3f0b0bafd5ad1"}]}
