)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f6e51a1e4bff4eb4365ce856647a4bba39e3258e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Although microvrsion allow the API can be changed whatever back-compatible"},{"line_number":10,"context_line":"or back-incompatible ways. But actually we won\u0027t allow any kind of change."},{"line_number":11,"context_line":"This patch adds some description on what we can change for API by micro-version."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I1d1752eca27f3ab0888b7db8871449dbb3a1eb72"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3acd31a7_d1445c75","line":11,"updated":"2015-05-01 17:34:43.000000000","message":"The above paragraph doesn\u0027t really make much grammatical sense... how about just this instead?\n\nThis patch adds some description on how the API can be evolved using API microversioning, including descriptions of which changes are possible with and without a microversion bump.","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"}],"doc/source/devref/api_microversions.rst":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6109363ae173d6e424701ef9523883843ccdc892","unresolved":false,"context_lines":[{"line_number":217,"context_line":"* Input validation: Input also includes the request body and url query string,"},{"line_number":218,"context_line":"  and the id in the URL."},{"line_number":219,"context_line":"* The semantic and behavior change."},{"line_number":220,"context_line":"* Status code for successful and failure."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"},{"line_number":223,"context_line":"nova-specs:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_3f060b21","line":220,"updated":"2015-04-27 14:47:16.000000000","message":"will failure status code belongs to ? \ne.g change 403 to 404 ?","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"06d4cb73831f6496efdb8d3bac8e0930de31f596","unresolved":false,"context_lines":[{"line_number":217,"context_line":"* Input validation: Input also includes the request body and url query string,"},{"line_number":218,"context_line":"  and the id in the URL."},{"line_number":219,"context_line":"* The semantic and behavior change."},{"line_number":220,"context_line":"* Status code for successful and failure."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"},{"line_number":223,"context_line":"nova-specs:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_9d82ab51","line":220,"in_reply_to":"7ad32947_3f060b21","updated":"2015-04-28 09:15:13.000000000","message":"yes.","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6109363ae173d6e424701ef9523883843ccdc892","unresolved":false,"context_lines":[{"line_number":230,"context_line":"the back-incompatible changes allowed, although there isn\u0027t distinguish for"},{"line_number":231,"context_line":"back-compatible and back-incompatible change in the Microversion."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"First any API change is must for feature or bug, but we should prority choice"},{"line_number":234,"context_line":"back-compatible way."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The API change for inconsistent input (includes the request body and url query"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_5f3c272f","line":233,"updated":"2015-04-27 14:47:16.000000000","message":"typo: s/prority/prioirty/","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"06d4cb73831f6496efdb8d3bac8e0930de31f596","unresolved":false,"context_lines":[{"line_number":230,"context_line":"the back-incompatible changes allowed, although there isn\u0027t distinguish for"},{"line_number":231,"context_line":"back-compatible and back-incompatible change in the Microversion."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"First any API change is must for feature or bug, but we should prority choice"},{"line_number":234,"context_line":"back-compatible way."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The API change for inconsistent input (includes the request body and url query"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_7d87cf61","line":233,"in_reply_to":"7ad32947_5f3c272f","updated":"2015-04-28 09:15:13.000000000","message":"Done","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6109363ae173d6e424701ef9523883843ccdc892","unresolved":false,"context_lines":[{"line_number":238,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":239,"context_line":"improvement in functionality except consistent."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"There are some back-incompatible fixes for API and introduced in the depreciated"},{"line_number":242,"context_line":"Nova V3 API before, which think of can be allowed by Microversion. Because those"},{"line_number":243,"context_line":"fixes can avoid user using API with wrong way. This is useful improvement for the"},{"line_number":244,"context_line":"API. Those kind of fixes are:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_ff5f7373","line":241,"updated":"2015-04-27 14:47:16.000000000","message":"s/depreciate/deprecated/ ?","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"06d4cb73831f6496efdb8d3bac8e0930de31f596","unresolved":false,"context_lines":[{"line_number":238,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":239,"context_line":"improvement in functionality except consistent."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"There are some back-incompatible fixes for API and introduced in the depreciated"},{"line_number":242,"context_line":"Nova V3 API before, which think of can be allowed by Microversion. Because those"},{"line_number":243,"context_line":"fixes can avoid user using API with wrong way. This is useful improvement for the"},{"line_number":244,"context_line":"API. Those kind of fixes are:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_5d7c1372","line":241,"in_reply_to":"7ad32947_ff5f7373","updated":"2015-04-28 09:15:13.000000000","message":"Done","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6109363ae173d6e424701ef9523883843ccdc892","unresolved":false,"context_lines":[{"line_number":249,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":250,"context_line":"  string, the id in the URL."},{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"},{"line_number":252,"context_line":"  the API have didn\u0027t behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_3f816b90","line":252,"updated":"2015-04-27 14:47:16.000000000","message":"make the API have same behavior with different implementation?","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"06d4cb73831f6496efdb8d3bac8e0930de31f596","unresolved":false,"context_lines":[{"line_number":249,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":250,"context_line":"  string, the id in the URL."},{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"},{"line_number":252,"context_line":"  the API have didn\u0027t behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_3dcf17b2","line":252,"in_reply_to":"7ad32947_3f816b90","updated":"2015-04-28 09:15:13.000000000","message":"yes.","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6109363ae173d6e424701ef9523883843ccdc892","unresolved":false,"context_lines":[{"line_number":252,"context_line":"  the API have didn\u0027t behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"But the microversion won\u0027t bumped for those single fixes. For those small fixes"},{"line_number":258,"context_line":"to trigger the client upgrade is overhead."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_aa5bf72d","line":255,"updated":"2015-04-27 14:47:16.000000000","message":"are we going to return status code ? or can you elaborate here?","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"06d4cb73831f6496efdb8d3bac8e0930de31f596","unresolved":false,"context_lines":[{"line_number":252,"context_line":"  the API have didn\u0027t behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"But the microversion won\u0027t bumped for those single fixes. For those small fixes"},{"line_number":258,"context_line":"to trigger the client upgrade is overhead."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_3d5dd7e9","line":255,"in_reply_to":"7ad32947_aa5bf72d","updated":"2015-04-28 09:15:13.000000000","message":"Like the case, if there is any expected exception raised, and it isn\u0027t catch by the API layer. The v2.1 will return 500.\n\nIf it is expected exception and return 500, this is a bug.\n\nLike this fix Id70d8eaa704fd82cef1afdb65756d75cb56fbdce","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"6109363ae173d6e424701ef9523883843ccdc892","unresolved":false,"context_lines":[{"line_number":258,"context_line":"to trigger the client upgrade is overhead."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"When some API is changed by feature, then we can fix those problems for the APIs"},{"line_number":261,"context_line":"related to this resource at same time. Then we reduce the number of version bump."},{"line_number":262,"context_line":"Like what we do for keypairs API:"},{"line_number":263,"context_line":"`https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42`"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_8aaf1be3","line":261,"updated":"2015-04-27 14:47:16.000000000","message":"we need to record the minor changes somewhere so that later a bump will include all of them?","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"06d4cb73831f6496efdb8d3bac8e0930de31f596","unresolved":false,"context_lines":[{"line_number":258,"context_line":"to trigger the client upgrade is overhead."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"When some API is changed by feature, then we can fix those problems for the APIs"},{"line_number":261,"context_line":"related to this resource at same time. Then we reduce the number of version bump."},{"line_number":262,"context_line":"Like what we do for keypairs API:"},{"line_number":263,"context_line":"`https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42`"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7ad32947_9dbaabe0","line":261,"in_reply_to":"7ad32947_8aaf1be3","updated":"2015-04-28 09:15:13.000000000","message":"yea, I\u0027m confuse this also. And those fixes better include in the spec. But who is response for write this spec? I\u0027m trying figure out this also...","commit_id":"da0d8b945129c009d14f352b66c9184f496f1dfe"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d527efe46575b8418f6148d3c690881877e90258","unresolved":false,"context_lines":[{"line_number":209,"context_line":"Microversion Bump Guidelines"},{"line_number":210,"context_line":"----------------------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Any change to the API will be required Microversion bump, and nova spec"},{"line_number":213,"context_line":"is required. The API change includes:"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Input/Output format: Input includes the request body and url query string,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_4081c649","line":212,"updated":"2015-04-28 10:16:00.000000000","message":"english nit: ...will require a microversion bump...","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d527efe46575b8418f6148d3c690881877e90258","unresolved":false,"context_lines":[{"line_number":210,"context_line":"----------------------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Any change to the API will be required Microversion bump, and nova spec"},{"line_number":213,"context_line":"is required. The API change includes:"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Input/Output format: Input includes the request body and url query string,"},{"line_number":216,"context_line":"  the id in the URL. Format includes the data structure and data type."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_a0a1baab","line":213,"updated":"2015-04-28 10:16:00.000000000","message":"English nit: I think you mean: \"API changes include:\"","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d527efe46575b8418f6148d3c690881877e90258","unresolved":false,"context_lines":[{"line_number":217,"context_line":"* Input validation: Input also includes the request body and url query string,"},{"line_number":218,"context_line":"  and the id in the URL."},{"line_number":219,"context_line":"* The semantic and behavior change."},{"line_number":220,"context_line":"* Status code for successful and failure."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"},{"line_number":223,"context_line":"nova-specs:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_e0c45241","line":220,"updated":"2015-04-28 10:16:00.000000000","message":"comment: I don\u0027t think we need to include changes for failure cases here: https://wiki.openstack.org/wiki/APIChangeGuidelines#Generally_Considered_OK\n\nUnless there is discussion that these guidelines might change? I hear it called out almost every time we talk about it... And those guidelines are a little out-of-date by referring to \"API extensions\".","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"225a786707046ebe451a7880a07bcb3ad9b43cc0","unresolved":false,"context_lines":[{"line_number":217,"context_line":"* Input validation: Input also includes the request body and url query string,"},{"line_number":218,"context_line":"  and the id in the URL."},{"line_number":219,"context_line":"* The semantic and behavior change."},{"line_number":220,"context_line":"* Status code for successful and failure."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"},{"line_number":223,"context_line":"nova-specs:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_69826d02","line":220,"in_reply_to":"7ad32947_e0c45241","updated":"2015-04-28 11:14:21.000000000","message":"Emm...actually I\u0027m not describe what can be changed at here. I want to say any change for the API need bump Microversion. I list all the case of change API. Hope it helpful for people to review code.","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"67ad26ae4fff7e8e6f7f8448510a6568db5b7b4e","unresolved":false,"context_lines":[{"line_number":227,"context_line":"the whole API, in the most of cases the API change is required bumped Y."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Most of time the back-comptible change which is allowed, but it isn\u0027t all"},{"line_number":230,"context_line":"the back-incompatible changes allowed, although there isn\u0027t distinguish for"},{"line_number":231,"context_line":"back-compatible and back-incompatible change in the Microversion."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"First any API change is must for feature or bug, but we should priority choice"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_40b546cb","line":230,"updated":"2015-04-28 10:00:04.000000000","message":"back-comptible is misspelled , s/comptible/compatible.\n\nwould that be better ?\n\nMost of time the back-compatible change is allowed, but for back-incompatible change, we need to consider it more, it should be a significant change. Although we don\u0027t distinguish back-compatible and back-incompatible \nin Microversion.","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ca1bb19a5d6581a5f91019fbde94a2931a08f120","unresolved":false,"context_lines":[{"line_number":227,"context_line":"the whole API, in the most of cases the API change is required bumped Y."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Most of time the back-comptible change which is allowed, but it isn\u0027t all"},{"line_number":230,"context_line":"the back-incompatible changes allowed, although there isn\u0027t distinguish for"},{"line_number":231,"context_line":"back-compatible and back-incompatible change in the Microversion."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"First any API change is must for feature or bug, but we should priority choice"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_e3033cb7","line":230,"in_reply_to":"7ad32947_40b546cb","updated":"2015-04-28 10:05:18.000000000","message":"thanks, that\u0027s better more.","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d527efe46575b8418f6148d3c690881877e90258","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Most of time the back-comptible change which is allowed, but it isn\u0027t all"},{"line_number":230,"context_line":"the back-incompatible changes allowed, although there isn\u0027t distinguish for"},{"line_number":231,"context_line":"back-compatible and back-incompatible change in the Microversion."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"First any API change is must for feature or bug, but we should priority choice"},{"line_number":234,"context_line":"back-compatible way."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_4088a6e7","line":231,"updated":"2015-04-28 10:16:00.000000000","message":"English nit: I don\u0027t get the meaning of this paragraph. Hope you don\u0027t mind me suggesting some different phrasing:\n\n\"\"\"Most of the time back-compatible changes are allowed, but not all back-incompatible changes can be allowed.  There is no way to distinguish a back-compatible or back-incompatible change in a microversion.\"\"\"\n\ncomment: Maybe I misunderstood what you meant? Because I think a change to X is back-incompatible and to Y is back-compatible. But I guess we should clarify this.","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"225a786707046ebe451a7880a07bcb3ad9b43cc0","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Most of time the back-comptible change which is allowed, but it isn\u0027t all"},{"line_number":230,"context_line":"the back-incompatible changes allowed, although there isn\u0027t distinguish for"},{"line_number":231,"context_line":"back-compatible and back-incompatible change in the Microversion."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"First any API change is must for feature or bug, but we should priority choice"},{"line_number":234,"context_line":"back-compatible way."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_29d23501","line":231,"in_reply_to":"7ad32947_4088a6e7","updated":"2015-04-28 11:14:21.000000000","message":"Actually Y also can be back-incompatible. We won\u0027t distinguish back-compatible or back-incompatible in the microversion. There is description in the spec about Y https://github.com/openstack/nova-specs/blame/master/specs/kilo/implemented/api-microversions.rst#L106","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"67ad26ae4fff7e8e6f7f8448510a6568db5b7b4e","unresolved":false,"context_lines":[{"line_number":231,"context_line":"back-compatible and back-incompatible change in the Microversion."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"First any API change is must for feature or bug, but we should priority choice"},{"line_number":234,"context_line":"back-compatible way."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":237,"context_line":"string) and output format (includes data struct or data type, naming style"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_a32664b8","line":234,"updated":"2015-04-28 10:00:04.000000000","message":"First, any API change should be feature implement or bug fix, but we should preferentially consider back-compatible way.","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ca1bb19a5d6581a5f91019fbde94a2931a08f120","unresolved":false,"context_lines":[{"line_number":231,"context_line":"back-compatible and back-incompatible change in the Microversion."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"First any API change is must for feature or bug, but we should priority choice"},{"line_number":234,"context_line":"back-compatible way."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":237,"context_line":"string) and output format (includes data struct or data type, naming style"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_833128a5","line":234,"in_reply_to":"7ad32947_a32664b8","updated":"2015-04-28 10:05:18.000000000","message":"ok, thanks","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"67ad26ae4fff7e8e6f7f8448510a6568db5b7b4e","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":237,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":238,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":239,"context_line":"improvement in functionality except consistent."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"There are some back-incompatible fixes for API and introduced in the deprecated"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_a34d4474","line":238,"updated":"2015-04-28 10:00:04.000000000","message":"s/isn\u0027t/don\u0027t","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ca1bb19a5d6581a5f91019fbde94a2931a08f120","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":237,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":238,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":239,"context_line":"improvement in functionality except consistent."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"There are some back-incompatible fixes for API and introduced in the deprecated"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_432b1031","line":238,"in_reply_to":"7ad32947_a34d4474","updated":"2015-04-28 10:05:18.000000000","message":"Done","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d527efe46575b8418f6148d3c690881877e90258","unresolved":false,"context_lines":[{"line_number":236,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":237,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":238,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":239,"context_line":"improvement in functionality except consistent."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"There are some back-incompatible fixes for API and introduced in the deprecated"},{"line_number":242,"context_line":"Nova V3 API before, which think of can be allowed by Microversion. Because those"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_e04e92c0","line":239,"updated":"2015-04-28 10:16:00.000000000","message":"English nit: s/consistent/consistency/","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"225a786707046ebe451a7880a07bcb3ad9b43cc0","unresolved":false,"context_lines":[{"line_number":236,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":237,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":238,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":239,"context_line":"improvement in functionality except consistent."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"There are some back-incompatible fixes for API and introduced in the deprecated"},{"line_number":242,"context_line":"Nova V3 API before, which think of can be allowed by Microversion. Because those"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_c9d86120","line":239,"in_reply_to":"7ad32947_e04e92c0","updated":"2015-04-28 11:14:21.000000000","message":"Done","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d527efe46575b8418f6148d3c690881877e90258","unresolved":false,"context_lines":[{"line_number":238,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":239,"context_line":"improvement in functionality except consistent."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"There are some back-incompatible fixes for API and introduced in the deprecated"},{"line_number":242,"context_line":"Nova V3 API before, which think of can be allowed by Microversion. Because those"},{"line_number":243,"context_line":"fixes can avoid user using API with wrong way. This is useful improvement for the"},{"line_number":244,"context_line":"API. Those kind of fixes are:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_20b12a90","line":241,"updated":"2015-04-28 10:16:00.000000000","message":"English nit: ... which were introduced in the V3 API before it was deprecated, which could be allowed by microversions.","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"225a786707046ebe451a7880a07bcb3ad9b43cc0","unresolved":false,"context_lines":[{"line_number":238,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":239,"context_line":"improvement in functionality except consistent."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"There are some back-incompatible fixes for API and introduced in the deprecated"},{"line_number":242,"context_line":"Nova V3 API before, which think of can be allowed by Microversion. Because those"},{"line_number":243,"context_line":"fixes can avoid user using API with wrong way. This is useful improvement for the"},{"line_number":244,"context_line":"API. Those kind of fixes are:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_e9f2fd99","line":241,"in_reply_to":"7ad32947_20b12a90","updated":"2015-04-28 11:14:21.000000000","message":"ok, thanks","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"67ad26ae4fff7e8e6f7f8448510a6568db5b7b4e","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"* Correct successful status code."},{"line_number":247,"context_line":"  For example, some async API call return 200 or some sync API call return 202"},{"line_number":248,"context_line":"  which lead to use the API with wrong way."},{"line_number":249,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":250,"context_line":"  string, the id in the URL."},{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_a39b04c9","line":248,"updated":"2015-04-28 10:00:04.000000000","message":"can you clarify if this change is allowed? thanks\nhttps://review.openstack.org/#/c/163275/","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ca1bb19a5d6581a5f91019fbde94a2931a08f120","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"* Correct successful status code."},{"line_number":247,"context_line":"  For example, some async API call return 200 or some sync API call return 202"},{"line_number":248,"context_line":"  which lead to use the API with wrong way."},{"line_number":249,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":250,"context_line":"  string, the id in the URL."},{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_4387900f","line":248,"in_reply_to":"7ad32947_a39b04c9","updated":"2015-04-28 10:05:18.000000000","message":"yes, the change about status code in that spec which I think it\u0027s ok for me. But I\u0027m not sure the parameter {\"ignore_status\": True/False} is what we want. Let us discussion it in your spec.","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d527efe46575b8418f6148d3c690881877e90258","unresolved":false,"context_lines":[{"line_number":249,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":250,"context_line":"  string, the id in the URL."},{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"},{"line_number":252,"context_line":"  the API have same behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_2342543f","line":252,"updated":"2015-04-28 10:16:00.000000000","message":"English nit: \"This can avoid some implementation details being exposed to the user\"","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"225a786707046ebe451a7880a07bcb3ad9b43cc0","unresolved":false,"context_lines":[{"line_number":249,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":250,"context_line":"  string, the id in the URL."},{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"},{"line_number":252,"context_line":"  the API have same behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_c9ef41af","line":252,"in_reply_to":"7ad32947_2342543f","updated":"2015-04-28 11:14:21.000000000","message":"Done","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"67ad26ae4fff7e8e6f7f8448510a6568db5b7b4e","unresolved":false,"context_lines":[{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"},{"line_number":252,"context_line":"  the API have same behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"But the microversion won\u0027t bumped for those single fixes. For those small fixes"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_23b01443","line":254,"updated":"2015-04-28 10:00:04.000000000","message":"s/worth/worthy","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ca1bb19a5d6581a5f91019fbde94a2931a08f120","unresolved":false,"context_lines":[{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"},{"line_number":252,"context_line":"  the API have same behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"But the microversion won\u0027t bumped for those single fixes. For those small fixes"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_c373a04c","line":254,"in_reply_to":"7ad32947_23b01443","updated":"2015-04-28 10:05:18.000000000","message":"emm... it should \"it is worth to\"?","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"225a786707046ebe451a7880a07bcb3ad9b43cc0","unresolved":false,"context_lines":[{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"},{"line_number":252,"context_line":"  the API have same behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"But the microversion won\u0027t bumped for those single fixes. For those small fixes"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_89302958","line":254,"in_reply_to":"7ad32947_c355e01d","updated":"2015-04-28 11:14:21.000000000","message":"hah, thanks :)","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"529de3ffdd6c0bc6d2a0015c9a2ca96b8e80b6a2","unresolved":false,"context_lines":[{"line_number":251,"context_line":"  This can avoid some underlayer implement behavior expose to the user, make"},{"line_number":252,"context_line":"  the API have same behavior with different implement."},{"line_number":253,"context_line":"* Expected error but return 500 status code."},{"line_number":254,"context_line":"  This is worth use concrete status code instead of 500, which help the user"},{"line_number":255,"context_line":"  determine what happened."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"But the microversion won\u0027t bumped for those single fixes. For those small fixes"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_c355e01d","line":254,"in_reply_to":"7ad32947_c373a04c","updated":"2015-04-28 10:19:18.000000000","message":"Normally:  \"It is worth using a concrete status code ....\"","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"67ad26ae4fff7e8e6f7f8448510a6568db5b7b4e","unresolved":false,"context_lines":[{"line_number":262,"context_line":"Like what we do for keypairs API:"},{"line_number":263,"context_line":"`https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42`"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":266,"context_line":"them by add note at the code first, like this:"},{"line_number":267,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_23ded46d","line":265,"updated":"2015-04-28 10:00:04.000000000","message":"s/worth/worthy","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"67ad26ae4fff7e8e6f7f8448510a6568db5b7b4e","unresolved":false,"context_lines":[{"line_number":263,"context_line":"`https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42`"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":266,"context_line":"them by add note at the code first, like this:"},{"line_number":267,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"After the related API have chance to bump version, all the notes can be fixed"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_a3d0a454","line":266,"updated":"2015-04-28 10:00:04.000000000","message":"adding","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ca1bb19a5d6581a5f91019fbde94a2931a08f120","unresolved":false,"context_lines":[{"line_number":263,"context_line":"`https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42`"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":266,"context_line":"them by add note at the code first, like this:"},{"line_number":267,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"After the related API have chance to bump version, all the notes can be fixed"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_23a494a4","line":266,"in_reply_to":"7ad32947_a3d0a454","updated":"2015-04-28 10:05:18.000000000","message":"Done","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"d527efe46575b8418f6148d3c690881877e90258","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":266,"context_line":"them by add note at the code first, like this:"},{"line_number":267,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"After the related API have chance to bump version, all the notes can be fixed"},{"line_number":270,"context_line":"together."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_036638ed","line":267,"updated":"2015-04-28 10:16:00.000000000","message":"Comment: Better to link to git.openstack.org than github, if possible.","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"225a786707046ebe451a7880a07bcb3ad9b43cc0","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":266,"context_line":"them by add note at the code first, like this:"},{"line_number":267,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"After the related API have chance to bump version, all the notes can be fixed"},{"line_number":270,"context_line":"together."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7ad32947_e949ddd1","line":267,"in_reply_to":"7ad32947_036638ed","updated":"2015-04-28 11:14:21.000000000","message":"ok, thanks","commit_id":"0c9c01a269b210fd837c3bdd8f9608f752db69c7"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e948af7f7572cb9d472b3e4bf15c7926cf680d60","unresolved":false,"context_lines":[{"line_number":210,"context_line":"----------------------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Any change to the API will require Microversion bump, and nova spec"},{"line_number":213,"context_line":"is required. API changes includes:"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Input/Output format: Input includes the request body and url query string,"},{"line_number":216,"context_line":"  the id in the URL. Format includes the data structure and data type."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_f7ce5382","line":213,"updated":"2015-04-28 13:10:45.000000000","message":"s/includes/include/","commit_id":"099ed0baeb3be6cc9520521dbbe3d929cd738789"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e948af7f7572cb9d472b3e4bf15c7926cf680d60","unresolved":false,"context_lines":[{"line_number":232,"context_line":"Microversion."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"First, any API change should be feature implement or bug fix, but we should"},{"line_number":235,"context_line":"preferentially consider back-compatible way."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":238,"context_line":"string) and output format (includes data struct or data type, naming style"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_b749fbd2","line":235,"updated":"2015-04-28 13:10:45.000000000","message":"+1","commit_id":"099ed0baeb3be6cc9520521dbbe3d929cd738789"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e948af7f7572cb9d472b3e4bf15c7926cf680d60","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":238,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":239,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":240,"context_line":"improvement in functionality except consistency."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"There are some back-incompatible fixes for API which were introduced in the V3"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_375a8b84","line":239,"updated":"2015-04-28 13:10:45.000000000","message":"s/isn\u0027t/doesn\u0027t/","commit_id":"099ed0baeb3be6cc9520521dbbe3d929cd738789"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"867a2e534ce70c0644825bdcc64f11633621bbef","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":238,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":239,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":240,"context_line":"improvement in functionality except consistency."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"There are some back-incompatible fixes for API which were introduced in the V3"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_7a88ea22","line":239,"in_reply_to":"7ad32947_375a8b84","updated":"2015-04-28 13:25:58.000000000","message":"Done","commit_id":"099ed0baeb3be6cc9520521dbbe3d929cd738789"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e948af7f7572cb9d472b3e4bf15c7926cf680d60","unresolved":false,"context_lines":[{"line_number":237,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":238,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":239,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":240,"context_line":"improvement in functionality except consistency."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"There are some back-incompatible fixes for API which were introduced in the V3"},{"line_number":243,"context_line":"API before it was deprecated, which could be allowed by microversions. Because"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_37d16bce","line":240,"updated":"2015-04-28 13:10:45.000000000","message":"I guess the above mentions that\n\n The API changes, which fix inconsistency only, is not allowed.\n The API changes, which fix inconsistency, should include the\n other improvement like additional functions or bug-fix.\n\nright?\nI think v2.2 is a good sample for this case(including both compatible change and incompatible change), right?","commit_id":"099ed0baeb3be6cc9520521dbbe3d929cd738789"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"83777f47cff70fe9d9a489d4432fc085b4d91333","unresolved":false,"context_lines":[{"line_number":237,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":238,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":239,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":240,"context_line":"improvement in functionality except consistency."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"There are some back-incompatible fixes for API which were introduced in the V3"},{"line_number":243,"context_line":"API before it was deprecated, which could be allowed by microversions. Because"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_c69f235e","line":240,"in_reply_to":"7ad32947_1542e73e","updated":"2015-04-28 14:23:14.000000000","message":"Nice point, yeah inconsistency is very generic. but we are using the word for this case, and it is not so bad to use the word in this doc also.","commit_id":"099ed0baeb3be6cc9520521dbbe3d929cd738789"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"867a2e534ce70c0644825bdcc64f11633621bbef","unresolved":false,"context_lines":[{"line_number":237,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":238,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":239,"context_line":"change) is not allowed anymore. Those kind of changes isn\u0027t provide any"},{"line_number":240,"context_line":"improvement in functionality except consistency."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"There are some back-incompatible fixes for API which were introduced in the V3"},{"line_number":243,"context_line":"API before it was deprecated, which could be allowed by microversions. Because"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_1542e73e","line":240,"in_reply_to":"7ad32947_37d16bce","updated":"2015-04-28 13:25:58.000000000","message":"Maybe \u0027inconsistency\u0027 is too generic. Actually I want to say for any change just provide unify convention isn\u0027t allowed.\n\nThe change like status code from 200 to 202. It isn\u0027t for convention or inconsistency. It\u0027s more about a bug. So I describe those kind of change at line 247. It is explain for \u0027inconsistency\u0027 make sense to you? Or I should use \u0027convention change\u0027 instead of it.","commit_id":"099ed0baeb3be6cc9520521dbbe3d929cd738789"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e948af7f7572cb9d472b3e4bf15c7926cf680d60","unresolved":false,"context_lines":[{"line_number":242,"context_line":"There are some back-incompatible fixes for API which were introduced in the V3"},{"line_number":243,"context_line":"API before it was deprecated, which could be allowed by microversions. Because"},{"line_number":244,"context_line":"those fixes can avoid user using API with wrong way. This is useful improvement"},{"line_number":245,"context_line":"for the API. Those kind of fixes are:"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"* Correct successful status code."},{"line_number":248,"context_line":"  For example, some async API call return 200 or some sync API call return 202"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_3aa5d203","line":245,"updated":"2015-04-28 13:10:45.000000000","message":"I think it is better to avoid V3 story for long-term because V3 story sometimes confuses for new contributors. In addition, we can explain the following without V3.","commit_id":"099ed0baeb3be6cc9520521dbbe3d929cd738789"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"867a2e534ce70c0644825bdcc64f11633621bbef","unresolved":false,"context_lines":[{"line_number":242,"context_line":"There are some back-incompatible fixes for API which were introduced in the V3"},{"line_number":243,"context_line":"API before it was deprecated, which could be allowed by microversions. Because"},{"line_number":244,"context_line":"those fixes can avoid user using API with wrong way. This is useful improvement"},{"line_number":245,"context_line":"for the API. Those kind of fixes are:"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"* Correct successful status code."},{"line_number":248,"context_line":"  For example, some async API call return 200 or some sync API call return 202"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7ad32947_9aee26eb","line":245,"in_reply_to":"7ad32947_3aa5d203","updated":"2015-04-28 13:25:58.000000000","message":"yea, this is good point. I will remove those confuse words.","commit_id":"099ed0baeb3be6cc9520521dbbe3d929cd738789"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"92fd78187a86ffa09091f2e5af0c513b95f702a2","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":238,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":239,"context_line":"change) doesn\u0027t allow anymore. Those kind of changes isn\u0027t provide any"},{"line_number":240,"context_line":"improvement in functionality except consistency."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"There are some back-incompatible fixes which could be allowed by microversions."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5ad0253b_2fca42a2","line":239,"updated":"2015-04-29 05:35:42.000000000","message":"For proper grammar, this should be \"...aren\u0027t allowed anymore.  These kinds of changes don\u0027t provide any...\"","commit_id":"e9804aac2064e9259edd453bdf6d6efdbeb928a6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"090481c2f96dc2ae5334de57541befe01c771fc6","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"The API change for inconsistent input (includes the request body and url query"},{"line_number":238,"context_line":"string) and output format (includes data struct or data type, naming style"},{"line_number":239,"context_line":"change) doesn\u0027t allow anymore. Those kind of changes isn\u0027t provide any"},{"line_number":240,"context_line":"improvement in functionality except consistency."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"There are some back-incompatible fixes which could be allowed by microversions."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_02a61610","line":239,"in_reply_to":"5ad0253b_2fca42a2","updated":"2015-04-30 23:05:27.000000000","message":"Thanks!","commit_id":"e9804aac2064e9259edd453bdf6d6efdbeb928a6"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"92fd78187a86ffa09091f2e5af0c513b95f702a2","unresolved":false,"context_lines":[{"line_number":240,"context_line":"improvement in functionality except consistency."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"There are some back-incompatible fixes which could be allowed by microversions."},{"line_number":243,"context_line":"Because those fixes can avoid user using API with wrong way. This is useful"},{"line_number":244,"context_line":"improvement for the API. Those kind of fixes are:"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"* Correct successful status code."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5ad0253b_af5532c7","line":243,"updated":"2015-04-29 05:35:42.000000000","message":"For proper grammar this would be better as:\n\nThere are some back-incompatible fixes which could be allowed via microversions because those fixes can prevent the user from using the API the wrong way.  This is a useful improvement for the API.  These kinds of fixes are:","commit_id":"e9804aac2064e9259edd453bdf6d6efdbeb928a6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"090481c2f96dc2ae5334de57541befe01c771fc6","unresolved":false,"context_lines":[{"line_number":240,"context_line":"improvement in functionality except consistency."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"There are some back-incompatible fixes which could be allowed by microversions."},{"line_number":243,"context_line":"Because those fixes can avoid user using API with wrong way. This is useful"},{"line_number":244,"context_line":"improvement for the API. Those kind of fixes are:"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"* Correct successful status code."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_a2abe2d5","line":243,"in_reply_to":"5ad0253b_af5532c7","updated":"2015-04-30 23:05:27.000000000","message":"thanks","commit_id":"e9804aac2064e9259edd453bdf6d6efdbeb928a6"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"92fd78187a86ffa09091f2e5af0c513b95f702a2","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"* Correct successful status code."},{"line_number":247,"context_line":"  For example, some async API call return 200 or some sync API call return 202"},{"line_number":248,"context_line":"  which lead to use the API with wrong way."},{"line_number":249,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":250,"context_line":"  string, the id in the URL."},{"line_number":251,"context_line":"  This can avoid some implementation details being exposed to the user."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5ad0253b_0f5d46e9","line":248,"updated":"2015-04-29 05:35:42.000000000","message":"Should be \"...lead to using the API the wrong way.\"","commit_id":"e9804aac2064e9259edd453bdf6d6efdbeb928a6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"090481c2f96dc2ae5334de57541befe01c771fc6","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"* Correct successful status code."},{"line_number":247,"context_line":"  For example, some async API call return 200 or some sync API call return 202"},{"line_number":248,"context_line":"  which lead to use the API with wrong way."},{"line_number":249,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":250,"context_line":"  string, the id in the URL."},{"line_number":251,"context_line":"  This can avoid some implementation details being exposed to the user."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_4283ee56","line":248,"in_reply_to":"5ad0253b_0f5d46e9","updated":"2015-04-30 23:05:27.000000000","message":"thanks","commit_id":"e9804aac2064e9259edd453bdf6d6efdbeb928a6"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"92fd78187a86ffa09091f2e5af0c513b95f702a2","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"When some API is changed by feature, then we can fix those problems for the APIs"},{"line_number":260,"context_line":"related to this resource at same time. Then we reduce the number of version bump."},{"line_number":261,"context_line":"Like what we do for keypairs API:"},{"line_number":262,"context_line":"`https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42`"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5ad0253b_eff9eac9","line":261,"updated":"2015-04-29 05:35:42.000000000","message":"\"Like what we did for the keypairs API:\"","commit_id":"e9804aac2064e9259edd453bdf6d6efdbeb928a6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"090481c2f96dc2ae5334de57541befe01c771fc6","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"When some API is changed by feature, then we can fix those problems for the APIs"},{"line_number":260,"context_line":"related to this resource at same time. Then we reduce the number of version bump."},{"line_number":261,"context_line":"Like what we do for keypairs API:"},{"line_number":262,"context_line":"`https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42`"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3acd31a7_2286b265","line":261,"in_reply_to":"5ad0253b_eff9eac9","updated":"2015-04-30 23:05:27.000000000","message":"thanks","commit_id":"e9804aac2064e9259edd453bdf6d6efdbeb928a6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3d2e9f5633a8479fbe7e63b271f33a26c8457576","unresolved":false,"context_lines":[{"line_number":210,"context_line":"----------------------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Any change to the API will require Microversion bump, and nova spec"},{"line_number":213,"context_line":"is required. API changes include:"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Input/Output format: Input includes the request body and url query string,"},{"line_number":216,"context_line":"  the id in the URL. Format includes the data structure and data type."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_72134db9","line":213,"updated":"2015-05-01 14:51:34.000000000","message":"I think certain types of bug fix maybe don\u0027t need a spec, but do need a version bump. Or is that a silly idea?","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"682d26bc78b21d9d2edba59d9250ecfd53ad857f","unresolved":false,"context_lines":[{"line_number":210,"context_line":"----------------------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Any change to the API will require Microversion bump, and nova spec"},{"line_number":213,"context_line":"is required. API changes include:"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Input/Output format: Input includes the request body and url query string,"},{"line_number":216,"context_line":"  the id in the URL. Format includes the data structure and data type."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_83456c18","line":213,"in_reply_to":"3acd31a7_715a2852","updated":"2015-05-03 04:04:22.000000000","message":"ok, emm.....should we list out which kind of bug fix needn\u0027t a spec?","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f6e51a1e4bff4eb4365ce856647a4bba39e3258e","unresolved":false,"context_lines":[{"line_number":210,"context_line":"----------------------------"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Any change to the API will require Microversion bump, and nova spec"},{"line_number":213,"context_line":"is required. API changes include:"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Input/Output format: Input includes the request body and url query string,"},{"line_number":216,"context_line":"  the id in the URL. Format includes the data structure and data type."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_715a2852","line":213,"in_reply_to":"3acd31a7_72134db9","updated":"2015-05-01 17:34:43.000000000","message":"agreed. Also I don\u0027t think it\u0027s necessary to bring up specs here at all.\n\nHow about this instead?\n\nAny patch that changes the Nova REST API in any of the following ways will require an API microversion bump:","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f6e51a1e4bff4eb4365ce856647a4bba39e3258e","unresolved":false,"context_lines":[{"line_number":216,"context_line":"  the id in the URL. Format includes the data structure and data type."},{"line_number":217,"context_line":"* Input validation: Input also includes the request body and url query string,"},{"line_number":218,"context_line":"  and the id in the URL."},{"line_number":219,"context_line":"* The semantic and behavior change."},{"line_number":220,"context_line":"* Status code for successful and failure."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_d1121c62","line":219,"updated":"2015-05-01 17:34:43.000000000","message":"\"Semantic or behavioral change -- for example changing an API from an asynchronous to a synchronous operation\"","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"682d26bc78b21d9d2edba59d9250ecfd53ad857f","unresolved":false,"context_lines":[{"line_number":216,"context_line":"  the id in the URL. Format includes the data structure and data type."},{"line_number":217,"context_line":"* Input validation: Input also includes the request body and url query string,"},{"line_number":218,"context_line":"  and the id in the URL."},{"line_number":219,"context_line":"* The semantic and behavior change."},{"line_number":220,"context_line":"* Status code for successful and failure."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_63749067","line":219,"in_reply_to":"3acd31a7_d1121c62","updated":"2015-05-03 04:04:22.000000000","message":"thanks","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f6e51a1e4bff4eb4365ce856647a4bba39e3258e","unresolved":false,"context_lines":[{"line_number":217,"context_line":"* Input validation: Input also includes the request body and url query string,"},{"line_number":218,"context_line":"  and the id in the URL."},{"line_number":219,"context_line":"* The semantic and behavior change."},{"line_number":220,"context_line":"* Status code for successful and failure."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"},{"line_number":223,"context_line":"nova-specs:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_712108b4","line":220,"updated":"2015-05-01 17:34:43.000000000","message":"s/successful/success/","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"682d26bc78b21d9d2edba59d9250ecfd53ad857f","unresolved":false,"context_lines":[{"line_number":217,"context_line":"* Input validation: Input also includes the request body and url query string,"},{"line_number":218,"context_line":"  and the id in the URL."},{"line_number":219,"context_line":"* The semantic and behavior change."},{"line_number":220,"context_line":"* Status code for successful and failure."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"},{"line_number":223,"context_line":"nova-specs:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_436f5492","line":220,"in_reply_to":"3acd31a7_712108b4","updated":"2015-05-03 04:04:22.000000000","message":"Done","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f6e51a1e4bff4eb4365ce856647a4bba39e3258e","unresolved":false,"context_lines":[{"line_number":229,"context_line":"Most of time the back-compatible change is allowed, but for back-incompatible"},{"line_number":230,"context_line":"change, we need to consider it more, it should be a significant change."},{"line_number":231,"context_line":"Although we don\u0027t distinguish back-compatible and back-incompatible in"},{"line_number":232,"context_line":"Microversion."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"First, any API change should be feature implement or bug fix, but we should"},{"line_number":235,"context_line":"preferentially consider back-compatible way. If we have to do back-incompatible"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_144e426f","line":232,"updated":"2015-05-01 17:34:43.000000000","message":"The above three paragraphs do not make much grammatical sense :) How about this instead?\n\nThe microversion format is X.Y. When a change is made to the API that cannot be handled using backwards-compatible client changes, X must be incremented. These occasions should be exceedingly rare. When a change is made that can be handled by the client in a backwards-compatible way, Y must be incremented.","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"682d26bc78b21d9d2edba59d9250ecfd53ad857f","unresolved":false,"context_lines":[{"line_number":229,"context_line":"Most of time the back-compatible change is allowed, but for back-incompatible"},{"line_number":230,"context_line":"change, we need to consider it more, it should be a significant change."},{"line_number":231,"context_line":"Although we don\u0027t distinguish back-compatible and back-incompatible in"},{"line_number":232,"context_line":"Microversion."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"First, any API change should be feature implement or bug fix, but we should"},{"line_number":235,"context_line":"preferentially consider back-compatible way. If we have to do back-incompatible"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_a3106802","line":232,"in_reply_to":"3acd31a7_144e426f","updated":"2015-05-03 04:04:22.000000000","message":"Emm....Jay I guess you miss understand about X.Y. Y also allowed backwards-incompatible way. There is describe about X.Y in nova spec http://git.openstack.org/cgit/openstack/nova-specs/tree/specs/kilo/implemented/api-microversions.rst#n106\n\n\nWhat I want to say at here is Y allowed back-incompatible change, but we should choice back-compatible way first if possible.\n\nBut from the nova api meeting discussion, the microversion is cheap. So sounds like we can remove those words.","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"23b5303ce0089e538c3db609256df2fb1b1fda77","unresolved":false,"context_lines":[{"line_number":251,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":252,"context_line":"  string, the id in the URL."},{"line_number":253,"context_line":"  This can avoid some implementation details being exposed to the user."},{"line_number":254,"context_line":"* Expected error but return 500 status code."},{"line_number":255,"context_line":"  This is worth using concrete status code instead of 500, which help the user"},{"line_number":256,"context_line":"  determine what happened."},{"line_number":257,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_3c8c8e34","line":254,"updated":"2015-05-01 13:03:02.000000000","message":"As the discussion at nova API meeting, this kind of change needn\u0027t bump microversion.","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"682d26bc78b21d9d2edba59d9250ecfd53ad857f","unresolved":false,"context_lines":[{"line_number":251,"context_line":"* Restrict input validation, the input includes request body and url query"},{"line_number":252,"context_line":"  string, the id in the URL."},{"line_number":253,"context_line":"  This can avoid some implementation details being exposed to the user."},{"line_number":254,"context_line":"* Expected error but return 500 status code."},{"line_number":255,"context_line":"  This is worth using concrete status code instead of 500, which help the user"},{"line_number":256,"context_line":"  determine what happened."},{"line_number":257,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_e32d4047","line":254,"in_reply_to":"3acd31a7_3c8c8e34","updated":"2015-05-03 04:04:22.000000000","message":"there is a example https://review.openstack.org/#/c/177018/","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"5bff23c9de63fe8ad645831217517f6acb27da06","unresolved":false,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":267,"context_line":"them by adding note at the code first, like this:"},{"line_number":268,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"After the related API have chance to bump version, all the notes can be fixed"},{"line_number":271,"context_line":"together."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_995614d1","line":268,"updated":"2015-05-01 17:29:14.000000000","message":"Some time later after changes to that source file are committed, this link shall be invalid. Could we use a permanent link? For examle\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/compute/plugins/v3/agents.py?id\u003d830816cdef6765c14b2111ccc2932b8e48b3ad04#n109\n\nOr is it out of RST rules?","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"682d26bc78b21d9d2edba59d9250ecfd53ad857f","unresolved":false,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":267,"context_line":"them by adding note at the code first, like this:"},{"line_number":268,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"After the related API have chance to bump version, all the notes can be fixed"},{"line_number":271,"context_line":"together."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_832a0c2b","line":268,"in_reply_to":"3acd31a7_995614d1","updated":"2015-05-03 04:04:22.000000000","message":"ok, will update","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f6e51a1e4bff4eb4365ce856647a4bba39e3258e","unresolved":false,"context_lines":[{"line_number":268,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"After the related API have chance to bump version, all the notes can be fixed"},{"line_number":271,"context_line":"together."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_94cff27e","line":271,"updated":"2015-05-01 17:34:43.000000000","message":"The above text goes a little bit too long. How about structuring things as specific examples of what to do and what not to do?\n\nFor instance:\n\n Examples\n ~~~~~~~\n\n 1. An existing API call uses 202 Accepted, but the API call\n actually results in a synchronous operation, therefore a\n 200 OK is more semantically appropriate. Changing the \n status code from 202 Accepted to 200 OK would require a\n microversion bump in the patch.\n\n 2. An existing API call\u0027s response body has some\n additional information appended to it. The patch adding\n the new information would require a microversion bump.","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"682d26bc78b21d9d2edba59d9250ecfd53ad857f","unresolved":false,"context_lines":[{"line_number":268,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"After the related API have chance to bump version, all the notes can be fixed"},{"line_number":271,"context_line":"together."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3acd31a7_a3de283d","line":271,"in_reply_to":"3acd31a7_94cff27e","updated":"2015-05-03 04:04:22.000000000","message":"ok, use some example is better to explain something. But it probably my English\u0027s fault.. What I want to say at here is about we can group some change in a single version bump. Like the agents API\u0027s delete and create both need correct the return code https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109\n\nThen we can fix them in single one microversion.\n\nAnother example is https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42\n\nWe fix the return code along with some functional improvement.","commit_id":"9626088604ad69f3599e2da6f8fedfa600260e12"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"09db6938a8977b48964c8c86b40030b877004ea8","unresolved":false,"context_lines":[{"line_number":236,"context_line":"Most of time the back-compatible change is allowed, but for back-incompatible"},{"line_number":237,"context_line":"change, we need to consider it more, it should be a significant change."},{"line_number":238,"context_line":"Although we don\u0027t distinguish back-compatible and back-incompatible in"},{"line_number":239,"context_line":"Microversion."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"First, any API change should be feature implement or bug fix, but we should"},{"line_number":242,"context_line":"preferentially consider back-compatible way. If we have to do back-incompatible"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7a016987_61c7bf96","line":239,"updated":"2015-05-20 20:34:36.000000000","message":"Not sure I get the meaning of this paragraph.","commit_id":"526192e0e84946e8ab49ca0c21664419c62b5e2d"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6f3c4afe556b62f02934683e2430767f1a17a3e7","unresolved":false,"context_lines":[{"line_number":259,"context_line":"  string, the id in the URL."},{"line_number":260,"context_line":"  This can avoid some implementation details being exposed to the user."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"We can group some of changes into same microversion bump. There is example:"},{"line_number":263,"context_line":"`https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42`"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"But we should keep any microversion bump isn\u0027t a big bang change. We should"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3acd31a7_c796c9ef","line":262,"updated":"2015-05-04 05:17:46.000000000","message":"+1","commit_id":"526192e0e84946e8ab49ca0c21664419c62b5e2d"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6f3c4afe556b62f02934683e2430767f1a17a3e7","unresolved":false,"context_lines":[{"line_number":262,"context_line":"We can group some of changes into same microversion bump. There is example:"},{"line_number":263,"context_line":"`https://github.com/openstack/nova/blob/master/nova/api/openstack/api_version_request.py#L42`"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"But we should keep any microversion bump isn\u0027t a big bang change. We should"},{"line_number":266,"context_line":"keep the changes in the same microversion bump relate to same API or same API"},{"line_number":267,"context_line":"about same resource."},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3acd31a7_0795e1dc","line":265,"updated":"2015-05-04 05:17:46.000000000","message":"would this be better?\nWe should make sure that there are no any big bang changes when microversion bump.","commit_id":"526192e0e84946e8ab49ca0c21664419c62b5e2d"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6f3c4afe556b62f02934683e2430767f1a17a3e7","unresolved":false,"context_lines":[{"line_number":266,"context_line":"keep the changes in the same microversion bump relate to same API or same API"},{"line_number":267,"context_line":"about same resource."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":270,"context_line":"them by adding note at the code first, like this:"},{"line_number":271,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3acd31a7_87e9f182","line":269,"updated":"2015-05-04 05:17:46.000000000","message":"will this be better?\nIf an API bug found, and it isn\u0027t worth a single version bump, we can track","commit_id":"526192e0e84946e8ab49ca0c21664419c62b5e2d"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6f3c4afe556b62f02934683e2430767f1a17a3e7","unresolved":false,"context_lines":[{"line_number":267,"context_line":"about same resource."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":270,"context_line":"them by adding note at the code first, like this:"},{"line_number":271,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"After the related API have chance to bump version, all the notes can be fixed"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3acd31a7_67ec958f","line":270,"updated":"2015-05-04 05:17:46.000000000","message":"s/them/it","commit_id":"526192e0e84946e8ab49ca0c21664419c62b5e2d"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"09db6938a8977b48964c8c86b40030b877004ea8","unresolved":false,"context_lines":[{"line_number":267,"context_line":"about same resource."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"If an API bug found, and it isn\u0027t worth a single version bump. We can track"},{"line_number":270,"context_line":"them by adding note at the code first, like this:"},{"line_number":271,"context_line":"`https://github.com/openstack/nova/blob/stable/kilo/nova/api/openstack/compute/plugins/v3/agents.py#L109`"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"After the related API have chance to bump version, all the notes can be fixed"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7a016987_28f19501","line":270,"in_reply_to":"3acd31a7_67ec958f","updated":"2015-05-20 20:34:36.000000000","message":"I don\u0027t agree with this. The code example linked to is a TODO which was added before microversions were available. If it\u0027s worth fixing, we should just fix it. Of course it would be fine to make several similar fixes in the same increment.","commit_id":"526192e0e84946e8ab49ca0c21664419c62b5e2d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9ede31d3a59a682d0b0b0a175a4477f99948a047","unresolved":false,"context_lines":[{"line_number":213,"context_line":"~~~~~~~~~~~~~~~"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"},{"line_number":216,"context_line":"nova-specs:"},{"line_number":217,"context_line":"`http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html`"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Except X is only bumped when a significant backwards incompatible change for"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_d3fccdb6","line":216,"updated":"2015-06-01 12:14:26.000000000","message":"nova-specs \u003d\u003e nova-spec","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"97c824a56ce747734e66f2842c6cc7227c45e72e","unresolved":false,"context_lines":[{"line_number":213,"context_line":"~~~~~~~~~~~~~~~"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"The format of microversion is X.Y, the meaning of X and Y defined in the"},{"line_number":216,"context_line":"nova-specs:"},{"line_number":217,"context_line":"`http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/api-microversions.html`"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Except X is only bumped when a significant backwards incompatible change for"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_966883f6","line":216,"in_reply_to":"7a016987_d3fccdb6","updated":"2015-06-01 12:55:13.000000000","message":"Done","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9ede31d3a59a682d0b0b0a175a4477f99948a047","unresolved":false,"context_lines":[{"line_number":220,"context_line":"the whole API, in the most of cases the API change is required bumped Y."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"Any API change should be **feature implement or bug fix**, but we should"},{"line_number":223,"context_line":"preferentially consider back-compatible way. If we have to do back-incompatible"},{"line_number":224,"context_line":"change, this change must provide valuable improvement or significant feature"},{"line_number":225,"context_line":"for the API."},{"line_number":226,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_d313adff","line":223,"range":{"start_line":223,"start_character":24,"end_line":223,"end_character":39},"updated":"2015-06-01 12:14:26.000000000","message":"back-compatible \u003d\u003e backward compatible","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"97c824a56ce747734e66f2842c6cc7227c45e72e","unresolved":false,"context_lines":[{"line_number":220,"context_line":"the whole API, in the most of cases the API change is required bumped Y."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"Any API change should be **feature implement or bug fix**, but we should"},{"line_number":223,"context_line":"preferentially consider back-compatible way. If we have to do back-incompatible"},{"line_number":224,"context_line":"change, this change must provide valuable improvement or significant feature"},{"line_number":225,"context_line":"for the API."},{"line_number":226,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_766bc7f1","line":223,"in_reply_to":"7a016987_d313adff","updated":"2015-06-01 12:55:13.000000000","message":"Done","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9ede31d3a59a682d0b0b0a175a4477f99948a047","unresolved":false,"context_lines":[{"line_number":224,"context_line":"change, this change must provide valuable improvement or significant feature"},{"line_number":225,"context_line":"for the API."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"**Any API change need nova-specs**, to avoid adding more bad things to the API."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Group the change"},{"line_number":230,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_53de9d3e","line":227,"updated":"2015-06-01 12:14:26.000000000","message":"need nova-specs \u003d\u003e needs a nova-spec","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"97c824a56ce747734e66f2842c6cc7227c45e72e","unresolved":false,"context_lines":[{"line_number":224,"context_line":"change, this change must provide valuable improvement or significant feature"},{"line_number":225,"context_line":"for the API."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"**Any API change need nova-specs**, to avoid adding more bad things to the API."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Group the change"},{"line_number":230,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_d67a7bb9","line":227,"in_reply_to":"7a016987_53de9d3e","updated":"2015-06-01 12:55:13.000000000","message":"Done","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9ede31d3a59a682d0b0b0a175a4477f99948a047","unresolved":false,"context_lines":[{"line_number":232,"context_line":"We can group some of changes into same microversion bump. There is example:"},{"line_number":233,"context_line":"`http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/rest_api_version_history.rst?id\u003d2015.1.0#n24`"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should keep any microversion bump isn\u0027t a big bang change. We should"},{"line_number":236,"context_line":"keep the changes in the same microversion bump relate to same API or same API"},{"line_number":237,"context_line":"about same resource."},{"line_number":238,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_f3efc9e6","line":235,"updated":"2015-06-01 12:14:26.000000000","message":"This sentence does not really make sense","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"97c824a56ce747734e66f2842c6cc7227c45e72e","unresolved":false,"context_lines":[{"line_number":232,"context_line":"We can group some of changes into same microversion bump. There is example:"},{"line_number":233,"context_line":"`http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/rest_api_version_history.rst?id\u003d2015.1.0#n24`"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should keep any microversion bump isn\u0027t a big bang change. We should"},{"line_number":236,"context_line":"keep the changes in the same microversion bump relate to same API or same API"},{"line_number":237,"context_line":"about same resource."},{"line_number":238,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_f62d77a8","line":235,"in_reply_to":"7a016987_f3efc9e6","updated":"2015-06-01 12:55:13.000000000","message":"Let me fixed it, there is one suggestion From Eli: \"We should make sure that there are no any big bang changes when microversion bump\"","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9ede31d3a59a682d0b0b0a175a4477f99948a047","unresolved":false,"context_lines":[{"line_number":239,"context_line":"The change need bump version"},{"line_number":240,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Almost any API change need microversion bump, so we won\u0027t list them all at"},{"line_number":243,"context_line":"here. So we list the change need bump version as below and we will discuss case"},{"line_number":244,"context_line":"by case in the nova-specs."},{"line_number":245,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_73b2b907","line":242,"updated":"2015-06-01 12:14:26.000000000","message":"My understanidng is that every API change requires a bump in the version","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"97c824a56ce747734e66f2842c6cc7227c45e72e","unresolved":false,"context_lines":[{"line_number":239,"context_line":"The change need bump version"},{"line_number":240,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Almost any API change need microversion bump, so we won\u0027t list them all at"},{"line_number":243,"context_line":"here. So we list the change need bump version as below and we will discuss case"},{"line_number":244,"context_line":"by case in the nova-specs."},{"line_number":245,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_d6ff1b00","line":242,"in_reply_to":"7a016987_73b2b907","updated":"2015-06-01 12:55:13.000000000","message":"The line 249 is a case we needn\u0027t version bump. Or you mean something else?","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"9ede31d3a59a682d0b0b0a175a4477f99948a047","unresolved":false,"context_lines":[{"line_number":247,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"* For changing **500 Internal Server Error** to concrete status code, it"},{"line_number":250,"context_line":"  needn\u0027t microversion bump. Because 500 is an internal error and only be"},{"line_number":251,"context_line":"  returned when the server has some unrecoverable failure. Therefore changing"},{"line_number":252,"context_line":"  500 to concrete code isn\u0027t \"changing\" the API, but rather fixing a bug. For"},{"line_number":253,"context_line":"  example, a change like this: `https://review.openstack.org/#/c/177018/`"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_13cca587","line":250,"updated":"2015-06-01 12:14:26.000000000","message":"does not need a version bump","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"97c824a56ce747734e66f2842c6cc7227c45e72e","unresolved":false,"context_lines":[{"line_number":247,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"* For changing **500 Internal Server Error** to concrete status code, it"},{"line_number":250,"context_line":"  needn\u0027t microversion bump. Because 500 is an internal error and only be"},{"line_number":251,"context_line":"  returned when the server has some unrecoverable failure. Therefore changing"},{"line_number":252,"context_line":"  500 to concrete code isn\u0027t \"changing\" the API, but rather fixing a bug. For"},{"line_number":253,"context_line":"  example, a change like this: `https://review.openstack.org/#/c/177018/`"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a016987_2916104c","line":250,"in_reply_to":"7a016987_13cca587","updated":"2015-06-01 12:55:13.000000000","message":"Done","commit_id":"8515a6d8b22976d4b01c6400ee169a12d6a3b19e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e083738e4a152c8e8bffe382c34c3d2f3fa2b6c3","unresolved":false,"context_lines":[{"line_number":222,"context_line":"Any API change should be **feature implement or bug fix**, but we should"},{"line_number":223,"context_line":"preferentially consider backward compatible way. If we have to do backward"},{"line_number":224,"context_line":"incompatible change, this change must provide valuable improvement or"},{"line_number":225,"context_line":"significant feature for the API."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"**Any API change need nova-spec**, to avoid adding more bad things to the API."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a016987_2cb3be99","line":225,"updated":"2015-06-01 13:44:17.000000000","message":"I do not think that we should ever break the API. I understand that a new version adds an improves things. But we should never break the API","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a36d511f96755bf3de5a715f510eaa2b2ab0c33b","unresolved":false,"context_lines":[{"line_number":222,"context_line":"Any API change should be **feature implement or bug fix**, but we should"},{"line_number":223,"context_line":"preferentially consider backward compatible way. If we have to do backward"},{"line_number":224,"context_line":"incompatible change, this change must provide valuable improvement or"},{"line_number":225,"context_line":"significant feature for the API."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"**Any API change need nova-spec**, to avoid adding more bad things to the API."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"5afe65bd_ea96364b","line":225,"in_reply_to":"7a016987_2cb3be99","updated":"2015-06-03 07:51:42.000000000","message":"Actually the goal of microversion is enable us change api with back-incompatible. It break the API in the new version. The old version still keep  as the same. So the old client still can work the old version, it won\u0027t break anything.","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e083738e4a152c8e8bffe382c34c3d2f3fa2b6c3","unresolved":false,"context_lines":[{"line_number":224,"context_line":"incompatible change, this change must provide valuable improvement or"},{"line_number":225,"context_line":"significant feature for the API."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"**Any API change need nova-spec**, to avoid adding more bad things to the API."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Group the change"},{"line_number":230,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a016987_ec56c628","line":227,"updated":"2015-06-01 13:44:17.000000000","message":"need nova-spec \u003d\u003e needs a nova-spec","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a36d511f96755bf3de5a715f510eaa2b2ab0c33b","unresolved":false,"context_lines":[{"line_number":224,"context_line":"incompatible change, this change must provide valuable improvement or"},{"line_number":225,"context_line":"significant feature for the API."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"**Any API change need nova-spec**, to avoid adding more bad things to the API."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Group the change"},{"line_number":230,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5afe65bd_80c4435f","line":227,"in_reply_to":"7a016987_ec56c628","updated":"2015-06-03 07:51:42.000000000","message":"Done","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e083738e4a152c8e8bffe382c34c3d2f3fa2b6c3","unresolved":false,"context_lines":[{"line_number":229,"context_line":"Group the change"},{"line_number":230,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"We can group some of changes into same microversion bump. There is example:"},{"line_number":233,"context_line":"`http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/rest_api_version_history.rst?id\u003d2015.1.0#n24`"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should make sure that there are no any big bang changes when"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a016987_6c39b6f1","line":232,"updated":"2015-06-01 13:44:17.000000000","message":"There is example \u003d\u003e For example:","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a36d511f96755bf3de5a715f510eaa2b2ab0c33b","unresolved":false,"context_lines":[{"line_number":229,"context_line":"Group the change"},{"line_number":230,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"We can group some of changes into same microversion bump. There is example:"},{"line_number":233,"context_line":"`http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/rest_api_version_history.rst?id\u003d2015.1.0#n24`"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should make sure that there are no any big bang changes when"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5afe65bd_e096574b","line":232,"in_reply_to":"7a016987_6c39b6f1","updated":"2015-06-03 07:51:42.000000000","message":"Done","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e083738e4a152c8e8bffe382c34c3d2f3fa2b6c3","unresolved":false,"context_lines":[{"line_number":232,"context_line":"We can group some of changes into same microversion bump. There is example:"},{"line_number":233,"context_line":"`http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/rest_api_version_history.rst?id\u003d2015.1.0#n24`"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should make sure that there are no any big bang changes when"},{"line_number":236,"context_line":"microversion bump. We should keep the changes in the same microversion bump"},{"line_number":237,"context_line":"relate to one API or APIs about same resource."},{"line_number":238,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a016987_671e6f60","line":235,"updated":"2015-06-01 13:44:17.000000000","message":"no any \u003d\u003e not any\n\n[Not sure if you are familiar with the big bang theory - https://www.youtube.com/watch?v\u003dE0qyKAIKVMc - maybe Sheldon needs to come and work with us on OpenStack]","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a36d511f96755bf3de5a715f510eaa2b2ab0c33b","unresolved":false,"context_lines":[{"line_number":232,"context_line":"We can group some of changes into same microversion bump. There is example:"},{"line_number":233,"context_line":"`http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/rest_api_version_history.rst?id\u003d2015.1.0#n24`"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should make sure that there are no any big bang changes when"},{"line_number":236,"context_line":"microversion bump. We should keep the changes in the same microversion bump"},{"line_number":237,"context_line":"relate to one API or APIs about same resource."},{"line_number":238,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"5afe65bd_c0ca3b6e","line":235,"in_reply_to":"7a016987_671e6f60","updated":"2015-06-03 07:51:42.000000000","message":"yea...I like the show :)","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e083738e4a152c8e8bffe382c34c3d2f3fa2b6c3","unresolved":false,"context_lines":[{"line_number":233,"context_line":"`http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/rest_api_version_history.rst?id\u003d2015.1.0#n24`"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should make sure that there are no any big bang changes when"},{"line_number":236,"context_line":"microversion bump. We should keep the changes in the same microversion bump"},{"line_number":237,"context_line":"relate to one API or APIs about same resource."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"The change need bump version"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a016987_2c285e99","line":236,"updated":"2015-06-01 13:44:17.000000000","message":"microversion bump \u003d\u003e bumping the microversion","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a36d511f96755bf3de5a715f510eaa2b2ab0c33b","unresolved":false,"context_lines":[{"line_number":233,"context_line":"`http://git.openstack.org/cgit/openstack/nova/tree/nova/api/openstack/rest_api_version_history.rst?id\u003d2015.1.0#n24`"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should make sure that there are no any big bang changes when"},{"line_number":236,"context_line":"microversion bump. We should keep the changes in the same microversion bump"},{"line_number":237,"context_line":"relate to one API or APIs about same resource."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"The change need bump version"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5afe65bd_00d5f3b7","line":236,"in_reply_to":"7a016987_2c285e99","updated":"2015-06-03 07:51:42.000000000","message":"Done","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e083738e4a152c8e8bffe382c34c3d2f3fa2b6c3","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should make sure that there are no any big bang changes when"},{"line_number":236,"context_line":"microversion bump. We should keep the changes in the same microversion bump"},{"line_number":237,"context_line":"relate to one API or APIs about same resource."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"The change need bump version"},{"line_number":240,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a016987_cc28aa99","line":237,"updated":"2015-06-01 13:44:17.000000000","message":"sorry I do not understand","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a36d511f96755bf3de5a715f510eaa2b2ab0c33b","unresolved":false,"context_lines":[{"line_number":234,"context_line":""},{"line_number":235,"context_line":"But we should make sure that there are no any big bang changes when"},{"line_number":236,"context_line":"microversion bump. We should keep the changes in the same microversion bump"},{"line_number":237,"context_line":"relate to one API or APIs about same resource."},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"The change need bump version"},{"line_number":240,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5afe65bd_607a67f3","line":237,"in_reply_to":"7a016987_cc28aa99","updated":"2015-06-03 07:51:42.000000000","message":"Emm...feel hopeless for my english... But I found another word similar to me, then I copy it!\n\nNote that groups of similar changes across the API will not be made\nunder a single version bump. This will minimise the impact on users as\nthey can control changes that they want to be exposed to.","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"e083738e4a152c8e8bffe382c34c3d2f3fa2b6c3","unresolved":false,"context_lines":[{"line_number":240,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Almost every API change requires microversion bump, so we won\u0027t list them all"},{"line_number":243,"context_line":"at here. We only list the change needn\u0027t bump version in next section."},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"The change needn\u0027t bump version"},{"line_number":246,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a016987_a7010707","line":243,"updated":"2015-06-01 13:44:17.000000000","message":"we do not need the \"at\"","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a36d511f96755bf3de5a715f510eaa2b2ab0c33b","unresolved":false,"context_lines":[{"line_number":240,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Almost every API change requires microversion bump, so we won\u0027t list them all"},{"line_number":243,"context_line":"at here. We only list the change needn\u0027t bump version in next section."},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"The change needn\u0027t bump version"},{"line_number":246,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5afe65bd_a0785ff3","line":243,"in_reply_to":"7a016987_a7010707","updated":"2015-06-03 07:51:42.000000000","message":"Done","commit_id":"ed09147b62d1ae7752529822f981be3b62482eed"}]}
