)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Update contributing doc"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Rehoming code into neutron-lib isn\u0027t always a straight"},{"line_number":10,"context_line":"forward process for newbies. This patch updates our"},{"line_number":11,"context_line":"contributing doc source to include a high-level workflow"},{"line_number":12,"context_line":"for such situations."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ba5da102_d93fd684","line":10,"updated":"2016-11-04 01:45:47.000000000","message":"IMO neutron-lib is not for newbies, but for seasoned neutron developers, though I guess what you mean.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Update contributing doc"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Rehoming code into neutron-lib isn\u0027t always a straight"},{"line_number":10,"context_line":"forward process for newbies. This patch updates our"},{"line_number":11,"context_line":"contributing doc source to include a high-level workflow"},{"line_number":12,"context_line":"for such situations."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"9a629dbe_35943936","line":10,"in_reply_to":"ba5da102_d93fd684","updated":"2016-11-07 17:00:56.000000000","message":"Done","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"}],"doc/source/contributing.rst":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"42d12044865c3e5ec2e6c865f9d590f84f289c11","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Rehoming Existing Code"},{"line_number":11,"context_line":"--------"},{"line_number":12,"context_line":"If the code you are rehoming (moving) into neutron-lib already exists in a neutron"},{"line_number":13,"context_line":"related repo, some additional considerations are necessary in order to ensure the"},{"line_number":14,"context_line":"code rehoming is accurate and has minimal disruption to existing consumers. The"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a9d85d2_9c86f163","line":11,"updated":"2016-06-19 08:52:08.000000000","message":"if you respin can you make the underline here the length of the section. That is:\n\nRehoming Existing Code\n------------------------","commit_id":"f897b03af980891141e916fe47d70e4288f3b58e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"42d12044865c3e5ec2e6c865f9d590f84f289c11","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    6. Prepare the unit test code for neutron-lib. As indicated in the"},{"line_number":37,"context_line":"       `review guidelines \u003c./review-guidelines.html\u003e`_ we are looking for 100% coverage."},{"line_number":38,"context_line":"    7. Submit and shepherd your patch through it\u0027s neutron-lib review."},{"line_number":39,"context_line":"    8. Once your neutron-lib patch has landed; prepare your patch to remove and update the"},{"line_number":40,"context_line":"       rehomed code from its source. This will may require a shim and deprecation notice"},{"line_number":41,"context_line":"       as outlined in the `review guidelines \u003c./review-guidelines.html\u003e`_. It\u0027s critical"},{"line_number":42,"context_line":"       that before you submit your patch to remove the rehomed code from its source"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a9d85d2_3c96dd94","line":39,"updated":"2016-06-19 08:52:08.000000000","message":"the catch here is that a neutron lib version will need to be posted that will include the methods. maybe that is worth mentioning","commit_id":"f897b03af980891141e916fe47d70e4288f3b58e"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"ecc9699264b048de073491e7ec6d36536a3f47f3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    8. If the rehomed code now residing in neutron-lib needs enhancements, develop"},{"line_number":40,"context_line":"       and shepherd those at this time. Once a neutron-lib release is pushed to PyPI"},{"line_number":41,"context_line":"       neutron-lib interfaces are subject to our `conventions \u003c./conventions.html\u003e`_."},{"line_number":42,"context_line":"    9. Before updating the rehomed code from its source, a new release of neutron-lib"},{"line_number":43,"context_line":"       must be published. This will create a new version on PyPI so the consuming project(s)"},{"line_number":44,"context_line":"       can access the latest neutron-lib changes. Neutron-lib follows the standard release"},{"line_number":45,"context_line":"       process (for example see this `release request patch \u003chttps://review.openstack.org/#/c/306575/\u003e`_)."},{"line_number":46,"context_line":"    10. Once your neutron-lib patch has landed; prepare your patch to remove and update the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3aaa91ec_76194b79","line":43,"range":{"start_line":42,"start_character":57,"end_line":43,"end_character":25},"updated":"2016-06-23 00:24:01.000000000","message":"Not only that, but OpenStack global requirements must be updated to specify the new neutron-lib version as the minimum version. Once that has merged, a bot proposes patches for that minimum requirement to Neutron and any other repo that requires neutron-lib.\n\nOnly once all that has merged can you proceed with 10.","commit_id":"59313980e1eb7d1f7bd6a661870557bd2aec95f9"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"50e38180d13b86567e784dcde15e066ed5bd4b2b","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    8. If the rehomed code now residing in neutron-lib needs enhancements, develop"},{"line_number":40,"context_line":"       and shepherd those at this time. Once a neutron-lib release is pushed to PyPI"},{"line_number":41,"context_line":"       neutron-lib interfaces are subject to our `conventions \u003c./conventions.html\u003e`_."},{"line_number":42,"context_line":"    9. Before updating the rehomed code from its source, a new release of neutron-lib"},{"line_number":43,"context_line":"       must be published. This will create a new version on PyPI so the consuming project(s)"},{"line_number":44,"context_line":"       can access the latest neutron-lib changes. Neutron-lib follows the standard release"},{"line_number":45,"context_line":"       process (for example see this `release request patch \u003chttps://review.openstack.org/#/c/306575/\u003e`_)."},{"line_number":46,"context_line":"    10. Once your neutron-lib patch has landed; prepare your patch to remove and update the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_4c6fd7fb","line":43,"range":{"start_line":42,"start_character":57,"end_line":43,"end_character":25},"in_reply_to":"1aa78d24_8bcc098a","updated":"2016-07-07 14:13:05.000000000","message":"I believe it\u0027s like this: The moment that one project needs something from a new release of neutron-lib, that release must become the minimum version in global requirements. The bot ensures that every requirements-compliant project in OpenStack gets updated if it has it in its requirements.txt.\n\nI am not sure if that helps answer your question.","commit_id":"59313980e1eb7d1f7bd6a661870557bd2aec95f9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"8f31c14e35aa19262a9bde1d4dccd6928d9b76fc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    8. If the rehomed code now residing in neutron-lib needs enhancements, develop"},{"line_number":40,"context_line":"       and shepherd those at this time. Once a neutron-lib release is pushed to PyPI"},{"line_number":41,"context_line":"       neutron-lib interfaces are subject to our `conventions \u003c./conventions.html\u003e`_."},{"line_number":42,"context_line":"    9. Before updating the rehomed code from its source, a new release of neutron-lib"},{"line_number":43,"context_line":"       must be published. This will create a new version on PyPI so the consuming project(s)"},{"line_number":44,"context_line":"       can access the latest neutron-lib changes. Neutron-lib follows the standard release"},{"line_number":45,"context_line":"       process (for example see this `release request patch \u003chttps://review.openstack.org/#/c/306575/\u003e`_)."},{"line_number":46,"context_line":"    10. Once your neutron-lib patch has landed; prepare your patch to remove and update the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_8bcc098a","line":43,"range":{"start_line":42,"start_character":57,"end_line":43,"end_character":25},"in_reply_to":"3aaa91ec_76194b79","updated":"2016-07-07 13:32:56.000000000","message":"@Henry: is it required that the new release version be the minimum version now? e.g. do consumers HAVE to use the new version?\n\n\nJust trying to make sure I understand this process.","commit_id":"59313980e1eb7d1f7bd6a661870557bd2aec95f9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"3e8d6fe30cb23e27ee41181e6c38e9120b2723f4","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    8. If the rehomed code now residing in neutron-lib needs enhancements, develop"},{"line_number":40,"context_line":"       and shepherd those at this time. Once a neutron-lib release is pushed to PyPI"},{"line_number":41,"context_line":"       neutron-lib interfaces are subject to our `conventions \u003c./conventions.html\u003e`_."},{"line_number":42,"context_line":"    9. Before updating the rehomed code from its source, a new release of neutron-lib"},{"line_number":43,"context_line":"       must be published. This will create a new version on PyPI so the consuming project(s)"},{"line_number":44,"context_line":"       can access the latest neutron-lib changes. Neutron-lib follows the standard release"},{"line_number":45,"context_line":"       process (for example see this `release request patch \u003chttps://review.openstack.org/#/c/306575/\u003e`_)."},{"line_number":46,"context_line":"    10. Once your neutron-lib patch has landed; prepare your patch to remove and update the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_67968df1","line":43,"range":{"start_line":42,"start_character":57,"end_line":43,"end_character":25},"in_reply_to":"3aaa91ec_76194b79","updated":"2016-07-12 12:53:52.000000000","message":"Done","commit_id":"59313980e1eb7d1f7bd6a661870557bd2aec95f9"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"2c086ea781a44676bbfa90f197d955caa27afcef","unresolved":false,"context_lines":[{"line_number":14,"context_line":"code rehoming is accurate and has minimal disruption to existing consumers. The"},{"line_number":15,"context_line":"outline below offers guidance on the rehoming workflow procedure:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    1. Identify the chunk of code for rehoming. Applicable code includes common"},{"line_number":18,"context_line":"       classes/functions/modules/etc. that are consumed by networking project(s)"},{"line_number":19,"context_line":"       outside of neutron. It\u0027s imperative that you understand the imports"},{"line_number":20,"context_line":"       used by the rehomed code to ensure they are already in neutron-lib; as"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dada55a8_4c8098f7","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":6},"updated":"2016-07-21 00:14:02.000000000","message":"It\u0027s better to use \"#.\" for numbered list.","commit_id":"936159225dd9bbf468c66ce744a9f5c398b90e0c"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"e46b6a17d5263c31429543bd42629dca89d44774","unresolved":false,"context_lines":[{"line_number":14,"context_line":"code rehoming is accurate and has minimal disruption to existing consumers. The"},{"line_number":15,"context_line":"outline below offers guidance on the rehoming workflow procedure:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    1. Identify the chunk of code for rehoming. Applicable code includes common"},{"line_number":18,"context_line":"       classes/functions/modules/etc. that are consumed by networking project(s)"},{"line_number":19,"context_line":"       outside of neutron. It\u0027s imperative that you understand the imports"},{"line_number":20,"context_line":"       used by the rehomed code to ensure they are already in neutron-lib; as"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dada55a8_d528769c","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":6},"in_reply_to":"dada55a8_4c8098f7","updated":"2016-07-21 12:13:51.000000000","message":"Done; thanks.","commit_id":"936159225dd9bbf468c66ce744a9f5c398b90e0c"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"60981db26920d236b675cecfca6f54f0f062633c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"       `release \u003chttps://github.com/openstack/releases\u003e`_. Once the release process has"},{"line_number":44,"context_line":"       merged the updated requirement version for neutron-lib into the consuming project"},{"line_number":45,"context_line":"       the source can be updated with its neutron-lib counterpart/call."},{"line_number":46,"context_line":"    10. Once your neutron-lib patch has landed; prepare your patch to remove and update the"},{"line_number":47,"context_line":"        rehomed code from its source. This may require a shim and deprecation notice"},{"line_number":48,"context_line":"        as outlined in the `review guidelines \u003c./review-guidelines.html\u003e`_. It\u0027s critical"},{"line_number":49,"context_line":"        that before you submit your patch to remove the rehomed code from its source"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aa78d24_1257e15a","line":46,"updated":"2016-07-13 11:37:47.000000000","message":"Should there be mention of dealing with code that is shared by multiple projects. IOW, step 9a: Once patch has landed, update clients of the original code, to make use of the neutron-lib version. Remove any duplicated tests, if any.\n\nI don\u0027t know if there are cases of cut and paste copying of code into other clients. But if so, we should consider mentioning dealing with that (ensuring the code is the same, replacing with neutron-lib).","commit_id":"936159225dd9bbf468c66ce744a9f5c398b90e0c"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"153e7e1f9f7a8a722649c93f81b47050fdb8f0a3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"       `release \u003chttps://github.com/openstack/releases\u003e`_. Once the release process has"},{"line_number":44,"context_line":"       merged the updated requirement version for neutron-lib into the consuming project"},{"line_number":45,"context_line":"       the source can be updated with its neutron-lib counterpart/call."},{"line_number":46,"context_line":"    10. Once your neutron-lib patch has landed; prepare your patch to remove and update the"},{"line_number":47,"context_line":"        rehomed code from its source. This may require a shim and deprecation notice"},{"line_number":48,"context_line":"        as outlined in the `review guidelines \u003c./review-guidelines.html\u003e`_. It\u0027s critical"},{"line_number":49,"context_line":"        that before you submit your patch to remove the rehomed code from its source"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aa78d24_e363dfdb","line":46,"in_reply_to":"1aa78d24_1257e15a","updated":"2016-07-14 17:03:12.000000000","message":"As per [1], step 5 indicates it\u0027s only necessary to update one affected client/consumer. However I don\u0027t see that in our doc/source so I\u0027m not sure if/how valid it is.\n\n\nMaybe @Henry or @Doug can comment??\n\n\n[1] https://wiki.openstack.org/wiki/Neutron/Lib#Submission_Procedures","commit_id":"936159225dd9bbf468c66ce744a9f5c398b90e0c"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"9df069d893db34e1fe3adda74b41bdaf214b19ec","unresolved":false,"context_lines":[{"line_number":11,"context_line":"----------------------"},{"line_number":12,"context_line":"If the code you are rehoming (moving) into neutron-lib already exists in a neutron"},{"line_number":13,"context_line":"related repo, some additional considerations are necessary in order to ensure the"},{"line_number":14,"context_line":"code rehoming is accurate and has minimal disruption to existing consumers. The"},{"line_number":15,"context_line":"outline below offers guidance on the rehoming workflow procedure:"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    #. Identify the chunk of code for rehoming. Applicable code includes common"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6895a0_a71ae815","line":14,"range":{"start_line":14,"start_character":34,"end_line":14,"end_character":52},"updated":"2016-10-21 05:13:52.000000000","message":"Can you elaborate on what type of disruptions you are referring to?","commit_id":"5277e7064c2ecbced082379620414e1817a03711"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"bdbaf0075cdf2d2ba5947a84e51bcd86f4f1d276","unresolved":false,"context_lines":[{"line_number":43,"context_line":"       `release \u003chttps://github.com/openstack/releases\u003e`_. Once the release process has"},{"line_number":44,"context_line":"       merged the updated requirement version for neutron-lib into the consuming project"},{"line_number":45,"context_line":"       the source can be updated with its neutron-lib counterpart/call."},{"line_number":46,"context_line":"    #. Once your neutron-lib patch has landed; prepare your patch to remove and update the"},{"line_number":47,"context_line":"       rehomed code from its source. This may require a shim and deprecation notice"},{"line_number":48,"context_line":"       as outlined in the `review guidelines \u003c./review-guidelines.html\u003e`_. It\u0027s critical"},{"line_number":49,"context_line":"       that before you submit your patch to remove the rehomed code from its source"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dada55a8_fdc2b451","line":46,"range":{"start_line":46,"start_character":7,"end_line":46,"end_character":75},"updated":"2016-07-21 15:22:23.000000000","message":"This may be a little confusing. How about \"Once the neutron-lib release containing your rehomed code lands in neutron\u0027s requirements, prepare a neutron patch to remove ...\"","commit_id":"5277e7064c2ecbced082379620414e1817a03711"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"9df069d893db34e1fe3adda74b41bdaf214b19ec","unresolved":false,"context_lines":[{"line_number":43,"context_line":"       `release \u003chttps://github.com/openstack/releases\u003e`_. Once the release process has"},{"line_number":44,"context_line":"       merged the updated requirement version for neutron-lib into the consuming project"},{"line_number":45,"context_line":"       the source can be updated with its neutron-lib counterpart/call."},{"line_number":46,"context_line":"    #. Once your neutron-lib patch has landed; prepare your patch to remove and update the"},{"line_number":47,"context_line":"       rehomed code from its source. This may require a shim and deprecation notice"},{"line_number":48,"context_line":"       as outlined in the `review guidelines \u003c./review-guidelines.html\u003e`_. It\u0027s critical"},{"line_number":49,"context_line":"       that before you submit your patch to remove the rehomed code from its source"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6895a0_a703c8b7","line":46,"range":{"start_line":46,"start_character":7,"end_line":46,"end_character":75},"in_reply_to":"dada55a8_fdc2b451","updated":"2016-10-21 05:13:52.000000000","message":"We might require patches for the related networking/neutron-foo projects as well..","commit_id":"5277e7064c2ecbced082379620414e1817a03711"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"7196e72181e30d24e1586471f9104d02967adc9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"dada55a8_7d2244a4","line":56,"updated":"2016-07-21 15:18:41.000000000","message":"I think this blob of steps is too big. Can you split it into phases (with sub-steps in each phase)?\n\n- Rehome (L17-38)\n\n- Enhance (L39-41)\n\n- Release (L42-45)\n\n- Consume (L46-54)","commit_id":"5277e7064c2ecbced082379620414e1817a03711"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"9df069d893db34e1fe3adda74b41bdaf214b19ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"da6895a0_0731d4a2","line":56,"in_reply_to":"dada55a8_7d2244a4","updated":"2016-10-21 05:13:52.000000000","message":"+1","commit_id":"5277e7064c2ecbced082379620414e1817a03711"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"083dc74f28e2fcce3f7a1dd3935949dd59d730a2","unresolved":false,"context_lines":[{"line_number":18,"context_line":"more than changing the imports. This is not always possible but it should be the rule rather"},{"line_number":19,"context_line":"than the exception."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The rehoming workflow procedure has four main phases:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Rehome"},{"line_number":24,"context_line":"~~~~~~"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5da102_f97a1323","line":21,"updated":"2016-11-02 20:40:14.000000000","message":"Please make it explicit whether these phases - specifically Rehome and Enhance - are separate gerrit changes or not.  The current text makes it sound like they are separate changes.  But according to the review guidelines, \"If refactoring is required it must be done before the public interface is released\".  That means that if Rehome and Enhance are separate changes then we need to have some kind of informal global lock to make sure that if we have any changes in migration that we don\u0027t catch one in between Rehome and Advance, or something.\n\nHere\u0027s a concrete example.  I am rehoming the agent extensions functionality in https://review.openstack.org/#/c/385045/ but boden left feedback (Nov 2 2:13 PM) that suggested a number of changes compared to the original neutron code.  Should I push back on him because this is the Rehome phase, and if so who do I notify to make sure a new neutron-lib doesn\u0027t get rolled in the meantime?  Or is it correct to put Rehome and Enhance in the same change?   If that is the case then they really shouldn\u0027t be separate phases in this document.  Either way, it would be great if this was totally explicit.\n\nP.S. That is not to pick on boden, it\u0027s just a pertinent example.","commit_id":"63d99c28e975e5266c1628f377900b745113e7f7"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"2e85b3d2c9036f796341b896817d123ffbf7dd06","unresolved":false,"context_lines":[{"line_number":18,"context_line":"more than changing the imports. This is not always possible but it should be the rule rather"},{"line_number":19,"context_line":"than the exception."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The rehoming workflow procedure has four main phases:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Rehome"},{"line_number":24,"context_line":"~~~~~~"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5da102_ffccb38a","line":21,"in_reply_to":"ba5da102_c4f566ed","updated":"2016-11-02 21:37:50.000000000","message":"Yes we want neutron-lib to be continuously releaseable.\nYes we want the rehome patch to be as-is code copy.\n\nSo the rehome patch must make the to-be-enhanced code private.\n\nThe enhancement must be a separate patch, making it public.","commit_id":"63d99c28e975e5266c1628f377900b745113e7f7"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"01293547405e3d8a1d32fd457dc7a2b71108f5be","unresolved":false,"context_lines":[{"line_number":18,"context_line":"more than changing the imports. This is not always possible but it should be the rule rather"},{"line_number":19,"context_line":"than the exception."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The rehoming workflow procedure has four main phases:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Rehome"},{"line_number":24,"context_line":"~~~~~~"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5da102_c4f566ed","line":21,"in_reply_to":"ba5da102_f97a1323","updated":"2016-11-02 20:56:11.000000000","message":"This is definitely something we\u0027ve struggled with in the past. At the end of the day (as I understand) neutron-lib should be \"releasable\" all the time; we shouldn\u0027t have anything ever that\u0027s \"in limbo\" so to speak.\n\n\nHere\u0027s what this means to me in this regard:\n- Re-home patches that do not change the public API (e.g. change a public signature) are game for the initial patch. IMO that\u0027s the case in my comments of [1] as I was asking for a change in the package structure and module name, not changes to any public APIs.\n- If the re-home patch warrants public API changes/enhancements, there are 2 routes; (a) the initial rehomed code modules are made private (e.g. _my_module.py) until the updates are made, (b) the updates are made longer term by changing the public API with formal deprecation.\n- There may be special cases where re-home patches need public API changes to live in lib; IMO we can deal with these on a case by case basis.\n\n\nI\u0027ll let others comment here and once it seems like we are all on the same page I\u0027ll make this more explicit in an updated patch set.\n\n\n[1] https://review.openstack.org/#/c/385045/","commit_id":"63d99c28e975e5266c1628f377900b745113e7f7"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"fc80a858fc814c4b69b558f439c07037c4d6aa3c","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The rehoming workflow procedure has four main phases:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Rehome"},{"line_number":24,"context_line":"~~~~~~"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    #. Identify the chunk of code for rehoming. Applicable code includes common"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5da102_d94e2f3a","line":23,"updated":"2016-11-02 20:23:07.000000000","message":"Looking at the rendering[1] makes me think we should number these phases for clarity.\n\n[1] http://docs-draft.openstack.org/38/331338/8/check/gate-neutron-lib-docs-ubuntu-xenial/8698f70//doc/build/html/contributing.html","commit_id":"63d99c28e975e5266c1628f377900b745113e7f7"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"01293547405e3d8a1d32fd457dc7a2b71108f5be","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The rehoming workflow procedure has four main phases:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Rehome"},{"line_number":24,"context_line":"~~~~~~"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    #. Identify the chunk of code for rehoming. Applicable code includes common"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5da102_44e23630","line":23,"in_reply_to":"ba5da102_d94e2f3a","updated":"2016-11-02 20:56:11.000000000","message":"Will do once I push a new patch (see my comments above in response to Nate).","commit_id":"63d99c28e975e5266c1628f377900b745113e7f7"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":".. include:: ../../CONTRIBUTING.rst"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"As your code is subject to the `review guidelines \u003c./review-guidelines.html\u003e`_,"},{"line_number":7,"context_line":"please take the time to familiarize yourself with those standards."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_992e3e41","line":6,"updated":"2016-11-04 01:45:47.000000000","message":"shall we formalize what are the objective of this repo to start with? I am not sure we have these somewhere, but I can think of the following:\n\n1) decoupling subprojects from neutron. In other words, the goal is to prevent subprojects from importing neutron directly.\n\n2) refactoring/re-architecture of bad patterns that have accrued over the years. In other words, killing technical debt.\n\nAddressing both leads to some pain we have to endure throughout the process, and that is not for the faint of heart. Hence I believe that neutron-lib is not for everybody, it\u0027s not *fun*, though it can be rewarding still.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":".. include:: ../../CONTRIBUTING.rst"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"As your code is subject to the `review guidelines \u003c./review-guidelines.html\u003e`_,"},{"line_number":7,"context_line":"please take the time to familiarize yourself with those standards."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a629dbe_ac064d1e","line":6,"in_reply_to":"ba5da102_992e3e41","updated":"2016-11-07 17:00:56.000000000","message":"I\u0027ll add some language to index.rst in the next patch to address this. I can split into a separate patch if you all prefer.\n\n\nAnd don\u0027t mislead; neutron-lib IS FUN!!","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"70b63f9b0b023e45fc6ae695c0b1366e19488c95","unresolved":false,"context_lines":[{"line_number":7,"context_line":"please take the time to familiarize yourself with those standards."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Rehoming Existing Code"},{"line_number":11,"context_line":"----------------------"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"If the code you are rehoming (moving) into neutron-lib already exists in a neutron related repo,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_7357cc25","line":10,"updated":"2016-11-03 21:55:16.000000000","message":"We also need to allow for other ways to \"rehome + enhance\", like was done with https://review.openstack.org/389863 (the plugin directory).","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"By \"minimal disruption\" we mean that, ideally, adopting the neutron-lib version involves little"},{"line_number":18,"context_line":"more than changing the imports. This is not always possible but it should be the rule rather"},{"line_number":19,"context_line":"than the exception."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The rehoming workflow procedure has four main phases:"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_f9273a60","line":19,"updated":"2016-11-04 01:45:47.000000000","message":"I disagree somewhat: that defeats objective #2. I personally believe that developing something \u0027natively\u0027, like for instance the plugin directory, is the sanest approach towards killing the coupling with subprojects. Embracing the good pattern may still lead to a pretty mechanical translation, and we don\u0027t have to jump to lots of hoops. That would kill our productivity otherwise.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"By \"minimal disruption\" we mean that, ideally, adopting the neutron-lib version involves little"},{"line_number":18,"context_line":"more than changing the imports. This is not always possible but it should be the rule rather"},{"line_number":19,"context_line":"than the exception."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The rehoming workflow procedure has four main phases:"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a629dbe_f21ad76d","line":19,"in_reply_to":"ba5da102_f9273a60","updated":"2016-11-07 17:00:56.000000000","message":"Done","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"       classes/functions/modules/etc. that are consumed by networking project(s) outside of"},{"line_number":28,"context_line":"       neutron. It\u0027s imperative that you understand the imports used by the rehomed code to"},{"line_number":29,"context_line":"       ensure they are already in neutron-lib; as we can\u0027t have neutron-lib code importing"},{"line_number":30,"context_line":"       anything from a neutron networking python project."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    #. Find and identify any unit tests for the code being rehomed. These unit tests"},{"line_number":33,"context_line":"       can often be moved into neutron-lib with minimal effort."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_f9b57aec","line":30,"updated":"2016-11-04 01:45:47.000000000","message":"I\u0027d add: understand the impact of this code: if it\u0027s use 1% across the board, go look at something juicier and leave this for later. Don\u0027t tackle the low-hanging fruit first. That\u0027s not where the coupling really lies.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":27,"context_line":"       classes/functions/modules/etc. that are consumed by networking project(s) outside of"},{"line_number":28,"context_line":"       neutron. It\u0027s imperative that you understand the imports used by the rehomed code to"},{"line_number":29,"context_line":"       ensure they are already in neutron-lib; as we can\u0027t have neutron-lib code importing"},{"line_number":30,"context_line":"       anything from a neutron networking python project."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    #. Find and identify any unit tests for the code being rehomed. These unit tests"},{"line_number":33,"context_line":"       can often be moved into neutron-lib with minimal effort."}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a629dbe_12266bba","line":30,"in_reply_to":"ba5da102_f9b57aec","updated":"2016-11-07 17:00:56.000000000","message":"Done","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"       anything from a neutron networking python project."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    #. Find and identify any unit tests for the code being rehomed. These unit tests"},{"line_number":33,"context_line":"       can often be moved into neutron-lib with minimal effort."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    #. Search and understand the consumers of the code being rehomed. This may include other"},{"line_number":36,"context_line":"       networking projects in addition to neutron itself. At this point it may be determined"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_998abe19","line":33,"updated":"2016-11-04 01:45:47.000000000","message":"personally I\u0027d advice to rewrite tests, as neutron unit tests are simply awful.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":30,"context_line":"       anything from a neutron networking python project."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    #. Find and identify any unit tests for the code being rehomed. These unit tests"},{"line_number":33,"context_line":"       can often be moved into neutron-lib with minimal effort."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    #. Search and understand the consumers of the code being rehomed. This may include other"},{"line_number":36,"context_line":"       networking projects in addition to neutron itself. At this point it may be determined"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a629dbe_124d8b72","line":33,"in_reply_to":"ba5da102_998abe19","updated":"2016-11-07 17:00:56.000000000","message":"Added some language to this point.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"       networking projects in addition to neutron itself. At this point it may be determined"},{"line_number":37,"context_line":"       that the code should be refactored before it is consumed, but note:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"       #. Leave the refactoring to the next (Enhance) phase. In this Rehome phase, copy the code"},{"line_number":40,"context_line":"          as-is into private module according to our `conventions \u003c./conventions.html\u003e`_."},{"line_number":41,"context_line":"       #. Adopting refactored code will be disruptive, so have a good reason for refactoring."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_b98dc232","line":39,"updated":"2016-11-04 01:45:47.000000000","message":"this may not be feasible in all cases as the code can be so tentacular that the copy cannot happen.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":36,"context_line":"       networking projects in addition to neutron itself. At this point it may be determined"},{"line_number":37,"context_line":"       that the code should be refactored before it is consumed, but note:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"       #. Leave the refactoring to the next (Enhance) phase. In this Rehome phase, copy the code"},{"line_number":40,"context_line":"          as-is into private module according to our `conventions \u003c./conventions.html\u003e`_."},{"line_number":41,"context_line":"       #. Adopting refactored code will be disruptive, so have a good reason for refactoring."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a629dbe_f2c5775b","line":39,"in_reply_to":"ba5da102_b98dc232","updated":"2016-11-07 17:00:56.000000000","message":"Done","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"       #. Leave the refactoring to the next (Enhance) phase. In this Rehome phase, copy the code"},{"line_number":40,"context_line":"          as-is into private module according to our `conventions \u003c./conventions.html\u003e`_."},{"line_number":41,"context_line":"       #. Adopting refactored code will be disruptive, so have a good reason for refactoring."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    #. Understand existing work underway which may impact the rehomed code. For example"},{"line_number":44,"context_line":"       in-flight patch sets that update the code being rehomed in which case it may make sense"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_79996a78","line":41,"updated":"2016-11-04 01:45:47.000000000","message":"as I said, I am not sure I agree with this strategy in all cases. It creates friction and slow us down or it even prevents us from doing the rehoming altogether.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"       #. Leave the refactoring to the next (Enhance) phase. In this Rehome phase, copy the code"},{"line_number":40,"context_line":"          as-is into private module according to our `conventions \u003c./conventions.html\u003e`_."},{"line_number":41,"context_line":"       #. Adopting refactored code will be disruptive, so have a good reason for refactoring."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    #. Understand existing work underway which may impact the rehomed code. For example"},{"line_number":44,"context_line":"       in-flight patch sets that update the code being rehomed in which case it may make sense"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a629dbe_12a10baa","line":41,"in_reply_to":"ba5da102_79996a78","updated":"2016-11-07 17:00:56.000000000","message":"Done","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    #. Prepare the code for neutron-lib. This may require replacing existing imports"},{"line_number":48,"context_line":"       with those provided by neutron-lib. The initial rehoming patch should seek"},{"line_number":49,"context_line":"       to leave the code as-is rather than trying to make improvements on the initial patch."},{"line_number":50,"context_line":"       If additional clean-up/enhancements are needed, they can come after the fact with"},{"line_number":51,"context_line":"       additional patch(es). If the enhancements/improvements require changes to public API(s),"},{"line_number":52,"context_line":"       the initial rehome patch should make the respective APIs private until a subsequent"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_f983ba00","line":49,"updated":"2016-11-04 01:45:47.000000000","message":"I am still unclear why you insist on this point","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    #. Prepare the code for neutron-lib. This may require replacing existing imports"},{"line_number":48,"context_line":"       with those provided by neutron-lib. The initial rehoming patch should seek"},{"line_number":49,"context_line":"       to leave the code as-is rather than trying to make improvements on the initial patch."},{"line_number":50,"context_line":"       If additional clean-up/enhancements are needed, they can come after the fact with"},{"line_number":51,"context_line":"       additional patch(es). If the enhancements/improvements require changes to public API(s),"},{"line_number":52,"context_line":"       the initial rehome patch should make the respective APIs private until a subsequent"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a629dbe_b5cbe971","line":49,"in_reply_to":"ba5da102_8a0b222b","updated":"2016-11-07 17:00:56.000000000","message":"I loosened up the language here.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d7a261719e29e30fea86d99dbb40c0f95e8c5598","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    #. Prepare the code for neutron-lib. This may require replacing existing imports"},{"line_number":48,"context_line":"       with those provided by neutron-lib. The initial rehoming patch should seek"},{"line_number":49,"context_line":"       to leave the code as-is rather than trying to make improvements on the initial patch."},{"line_number":50,"context_line":"       If additional clean-up/enhancements are needed, they can come after the fact with"},{"line_number":51,"context_line":"       additional patch(es). If the enhancements/improvements require changes to public API(s),"},{"line_number":52,"context_line":"       the initial rehome patch should make the respective APIs private until a subsequent"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_8a0b222b","line":49,"in_reply_to":"ba5da102_efcbeca1","updated":"2016-11-04 18:18:36.000000000","message":"understood, but the copy-first approach may be impractical in the majority of the cases IMO as the code may as well be tentantucal. I am not saying we should not consider it, but I\u0027d argue that choosing to copy-first over redesign-first is something that should be judged at the time you look at what you need to decouple.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c18b3c4cda9e91d046b5369fcb008bb5108260cf","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    #. Prepare the code for neutron-lib. This may require replacing existing imports"},{"line_number":48,"context_line":"       with those provided by neutron-lib. The initial rehoming patch should seek"},{"line_number":49,"context_line":"       to leave the code as-is rather than trying to make improvements on the initial patch."},{"line_number":50,"context_line":"       If additional clean-up/enhancements are needed, they can come after the fact with"},{"line_number":51,"context_line":"       additional patch(es). If the enhancements/improvements require changes to public API(s),"},{"line_number":52,"context_line":"       the initial rehome patch should make the respective APIs private until a subsequent"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_efcbeca1","line":49,"in_reply_to":"ba5da102_f983ba00","updated":"2016-11-04 03:04:26.000000000","message":"I find this a little hard to put in a textual explanation, but let me try:\n\nAfter submitting and reviewing a number of early patches to neutron-lib, I discovered that it was very hard to spot changes that were done together with copying the code over. The patch in gerrit just shows added code, not what differs from the neutron-core version of the code.\n\nAt some point I decided that we should first copy as-is, which can be checked easily with diff in bash. Then in a follow-up patch we could enhance/refactor, which now shows up as the usual reviewable changes in gerrit.\n\nMy hope was that the first patch (copy as-is) should merge very quickly, since it is a no-brainer to check.\n\nI do agree that if the code is to be completely re-written, like the plugin directory, then the copy as-is patch is not needed.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":56,"context_line":"       \u003c./review-guidelines.html\u003e`_ we are looking for a high code coverage by tests. This may"},{"line_number":57,"context_line":"       require adding additional tests if neutron was lacking in coverage."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    #. Submit and shepherd your patch through it\u0027s neutron-lib review. Include a release note"},{"line_number":60,"context_line":"       that describes the code\u0027s old neutron location and new neutron-lib location."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The interfaces in the rehomed code are subject to our `conventions \u003c./conventions.html\u003e`_. If"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_397a9224","line":59,"updated":"2016-11-04 01:45:47.000000000","message":"its","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":56,"context_line":"       \u003c./review-guidelines.html\u003e`_ we are looking for a high code coverage by tests. This may"},{"line_number":57,"context_line":"       require adding additional tests if neutron was lacking in coverage."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    #. Submit and shepherd your patch through it\u0027s neutron-lib review. Include a release note"},{"line_number":60,"context_line":"       that describes the code\u0027s old neutron location and new neutron-lib location."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The interfaces in the rehomed code are subject to our `conventions \u003c./conventions.html\u003e`_. If"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a629dbe_f2a7374d","line":59,"in_reply_to":"ba5da102_397a9224","updated":"2016-11-07 17:00:56.000000000","message":"Done","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d4a65301ae04716c5c6b46e14f97d64b429b0dd4","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Phase 4: Consume"},{"line_number":87,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Prepare a neutron core patch to remove and update the rehomed code from its source. This may"},{"line_number":90,"context_line":"require a deprecation notice as outlined in the `review guidelines \u003c./review-guidelines.html\u003e`_."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"It\u0027s critical that before you submit your patch to remove the rehomed code from its source that"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5da102_d9aef67f","line":89,"updated":"2016-11-04 01:45:47.000000000","message":"sometime this can be done at the same time as phase 1 so that you can proof the work. See [1] for an example.\n\n[1] https://review.openstack.org/#/c/386846/","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"2c24706cc4b460448c22edc36eace522589d2254","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Phase 4: Consume"},{"line_number":87,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Prepare a neutron core patch to remove and update the rehomed code from its source. This may"},{"line_number":90,"context_line":"require a deprecation notice as outlined in the `review guidelines \u003c./review-guidelines.html\u003e`_."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"It\u0027s critical that before you submit your patch to remove the rehomed code from its source that"}],"source_content_type":"text/x-rst","patch_set":9,"id":"9a629dbe_352b5984","line":89,"in_reply_to":"ba5da102_d9aef67f","updated":"2016-11-07 17:00:56.000000000","message":"Added a note about this.","commit_id":"2d53f9064ea6338776eaa64a76e5945179661dfa"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5d7280f987dc7aae17ac9573a6093a4ef9b28101","unresolved":false,"context_lines":[{"line_number":80,"context_line":"the README instructions in the `openstack/releases \u003chttps://github.com/openstack/releases\u003e`_"},{"line_number":81,"context_line":"project."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Once a release is cut, an openstack infra proposal bot will submit patches to the master branch"},{"line_number":84,"context_line":"of all projects that consume neutron-lib to set the new release as the minimum requirement."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"When the bot-proposed requirement patches have merged, your rehomed code can be consumed..."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a629dbe_49440db6","line":83,"updated":"2016-11-10 21:49:15.000000000","message":"I don\u0027t think that\u0027s what is happening. Bumping the minimal version would require another patch that would update global-requirements.txt in requirements repo accordingly.","commit_id":"3e079116f4dae00750bf7833408e7472994e2ec8"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"cda50fc06ae38397d0196888303862ecbfe790c5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"the README instructions in the `openstack/releases \u003chttps://github.com/openstack/releases\u003e`_"},{"line_number":81,"context_line":"project."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Once a release is cut, an openstack infra proposal bot will submit patches to the master branch"},{"line_number":84,"context_line":"of all projects that consume neutron-lib to set the new release as the minimum requirement."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"When the bot-proposed requirement patches have merged, your rehomed code can be consumed..."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a629dbe_0ce13e2d","line":83,"in_reply_to":"9a629dbe_49440db6","updated":"2016-11-11 01:42:29.000000000","message":"the bot propose an upper-constraints bump. Someone from the neutron release team can edit to bump g-r. See [1] for an example.\n\n[1] https://review.openstack.org/#/c/393600/","commit_id":"3e079116f4dae00750bf7833408e7472994e2ec8"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"875d0a3d6aa8d19c7ae6431969470851a1165790","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Phase 4: Consume"},{"line_number":91,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Prepare a neutron core patch to remove and update the rehomed code from its source. This may"},{"line_number":94,"context_line":"require a deprecation notice as outlined in the `review guidelines \u003c./review-guidelines.html\u003e`_."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"It\u0027s critical that before you submit your patch to remove the rehomed code from its source that"},{"line_number":97,"context_line":"you perform a diff between it and the rehomed version in neutron-lib to ensure nothing has"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_fd0fc2de","line":94,"range":{"start_line":93,"start_character":83,"end_line":94,"end_character":96},"updated":"2016-11-16 13:21:38.000000000","message":"This is misleading since the review-guidelines talk about deprecation notices in *lib* code for *lib* refactoring.\n\nThe PTL and I propose that we should not need deprecation notices in the core code. See my comment below for my thoughts on managing breaking changes.","commit_id":"b1d3ebef44cdefdafe182eb09c75f21c93b539d8"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"679d042b1b6b2e12d539e49feff10d3054b2e123","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Phase 4: Consume"},{"line_number":91,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Prepare a neutron core patch to remove and update the rehomed code from its source. This may"},{"line_number":94,"context_line":"require a deprecation notice as outlined in the `review guidelines \u003c./review-guidelines.html\u003e`_."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"It\u0027s critical that before you submit your patch to remove the rehomed code from its source that"},{"line_number":97,"context_line":"you perform a diff between it and the rehomed version in neutron-lib to ensure nothing has"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_05a500a1","line":94,"range":{"start_line":93,"start_character":83,"end_line":94,"end_character":96},"in_reply_to":"7a77a97e_fd0fc2de","updated":"2016-11-16 13:59:54.000000000","message":"Good point; done.","commit_id":"b1d3ebef44cdefdafe182eb09c75f21c93b539d8"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"875d0a3d6aa8d19c7ae6431969470851a1165790","unresolved":false,"context_lines":[{"line_number":98,"context_line":"changed in the source. If something has changed in the source, you need push and shepherd a"},{"line_number":99,"context_line":"patch to neutron-lib with the difference(s) before updating the rehomed code\u0027s source."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Also consider helping stadium sub-projects to consume the rehomed code."}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_5dac3635","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":71},"updated":"2016-11-16 13:21:38.000000000","message":"More should be done in this phase. Something like:\n\n- Prefix the core removal patch commit msg with \"BreakingChange:\".\n- Mark the core removal patch as WIP.\n- For some/many/all subprojects, submit a patch that fixes the breakage, with Depends-On: core removal patch.\n- Create a bug and use it as the topic for all the patches.\n- Announce the breaking change in the team meeting and on the ML.\n\nNow when the core removal patch merges, some/many/all subprojects will be a +W away from unbreaking. Other subprojects (which should be paying attention) will have plenty of example code on how to unbreak themselves.","commit_id":"b1d3ebef44cdefdafe182eb09c75f21c93b539d8"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"679d042b1b6b2e12d539e49feff10d3054b2e123","unresolved":false,"context_lines":[{"line_number":98,"context_line":"changed in the source. If something has changed in the source, you need push and shepherd a"},{"line_number":99,"context_line":"patch to neutron-lib with the difference(s) before updating the rehomed code\u0027s source."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Also consider helping stadium sub-projects to consume the rehomed code."}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a77a97e_a5f28c6d","line":101,"range":{"start_line":101,"start_character":0,"end_line":101,"end_character":71},"in_reply_to":"7a77a97e_5dac3635","updated":"2016-11-16 13:59:54.000000000","message":"Neutron-libbers are going to be busy!","commit_id":"b1d3ebef44cdefdafe182eb09c75f21c93b539d8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b8117d5e8c7209be981cd48de4440e17bfd38fbf","unresolved":false,"context_lines":[{"line_number":106,"context_line":"- Create a bug, and use it as the topic for all changes suggested below."},{"line_number":107,"context_line":"- Prefixing the patch that removes the rehomed code in its source with a commit message that"},{"line_number":108,"context_line":"  includes ``BreakingChange`` and mark the patch as a ``WIP`` with a -1 workflow vote."},{"line_number":109,"context_line":"- For subjects that will break from the removal, submit a patch for the subprojects that fixes"},{"line_number":110,"context_line":"  the breakage and use ``Depends-On:`` referencing the patch removing the rehomed code."},{"line_number":111,"context_line":"- Announce the breaking change in the team meeting or via mailing list."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a77a97e_02232b06","line":110,"range":{"start_line":109,"start_character":2,"end_line":110,"end_character":87},"updated":"2016-11-16 16:34:38.000000000","message":"I don\u0027t get why it\u0027s needed. Shouldn\u0027t neutron-lib feature be used independent of neutron? In this case, subprojects should be able to land needed changes without waiting for their gates broken.","commit_id":"f07924507769662b041af194c4892307468507e6"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"9ba773238b53a44ca5258c0b1b1ad8fcca603149","unresolved":false,"context_lines":[{"line_number":106,"context_line":"- Create a bug, and use it as the topic for all changes suggested below."},{"line_number":107,"context_line":"- Prefixing the patch that removes the rehomed code in its source with a commit message that"},{"line_number":108,"context_line":"  includes ``BreakingChange`` and mark the patch as a ``WIP`` with a -1 workflow vote."},{"line_number":109,"context_line":"- For subjects that will break from the removal, submit a patch for the subprojects that fixes"},{"line_number":110,"context_line":"  the breakage and use ``Depends-On:`` referencing the patch removing the rehomed code."},{"line_number":111,"context_line":"- Announce the breaking change in the team meeting or via mailing list."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a77a97e_d8b846e8","line":110,"range":{"start_line":109,"start_character":2,"end_line":110,"end_character":87},"in_reply_to":"7a77a97e_02232b06","updated":"2016-11-16 16:54:25.000000000","message":"IIUC; you\u0027re saying Depends-On is not needed b/c the subproject patch can just use the rehomed code in lib?? I agree; updated in next patch.","commit_id":"f07924507769662b041af194c4892307468507e6"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a5ac64455dedc1de921af0640154d87a6b58178f","unresolved":false,"context_lines":[{"line_number":106,"context_line":"- Create a bug, and use it as the topic for all changes suggested below."},{"line_number":107,"context_line":"- Prefixing the patch that removes the rehomed code in its source with a commit message that"},{"line_number":108,"context_line":"  includes ``BreakingChange`` and mark the patch as a ``WIP`` with a -1 workflow vote."},{"line_number":109,"context_line":"- For subjects that will break from the removal, submit a patch for the subprojects that fixes"},{"line_number":110,"context_line":"  the breakage and use ``Depends-On:`` referencing the patch removing the rehomed code."},{"line_number":111,"context_line":"- Announce the breaking change in the team meeting or via mailing list."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a77a97e_ce0ddc38","line":110,"range":{"start_line":109,"start_character":2,"end_line":110,"end_character":87},"in_reply_to":"7a77a97e_3336bbe6","updated":"2016-11-16 17:26:13.000000000","message":"In which case, I believe it\u0027s worth having a redirection layer.\n\nI don\u0027t want us to adopt as a process something that would IMPLY gate breakages. We should be able to land things step by step without too much synchronization.","commit_id":"f07924507769662b041af194c4892307468507e6"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a46e4d26ec8258e468a0a8528970fc53d487a9a0","unresolved":false,"context_lines":[{"line_number":106,"context_line":"- Create a bug, and use it as the topic for all changes suggested below."},{"line_number":107,"context_line":"- Prefixing the patch that removes the rehomed code in its source with a commit message that"},{"line_number":108,"context_line":"  includes ``BreakingChange`` and mark the patch as a ``WIP`` with a -1 workflow vote."},{"line_number":109,"context_line":"- For subjects that will break from the removal, submit a patch for the subprojects that fixes"},{"line_number":110,"context_line":"  the breakage and use ``Depends-On:`` referencing the patch removing the rehomed code."},{"line_number":111,"context_line":"- Announce the breaking change in the team meeting or via mailing list."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a77a97e_936eacff","line":110,"range":{"start_line":109,"start_character":2,"end_line":110,"end_character":87},"in_reply_to":"7a77a97e_ce0ddc38","updated":"2016-11-16 18:24:56.000000000","message":"I agree though some cases may require breaking gates for a short time.","commit_id":"f07924507769662b041af194c4892307468507e6"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"cdbeb01933bdce1e4d75a22b69362061b2239164","unresolved":false,"context_lines":[{"line_number":106,"context_line":"- Create a bug, and use it as the topic for all changes suggested below."},{"line_number":107,"context_line":"- Prefixing the patch that removes the rehomed code in its source with a commit message that"},{"line_number":108,"context_line":"  includes ``BreakingChange`` and mark the patch as a ``WIP`` with a -1 workflow vote."},{"line_number":109,"context_line":"- For subjects that will break from the removal, submit a patch for the subprojects that fixes"},{"line_number":110,"context_line":"  the breakage and use ``Depends-On:`` referencing the patch removing the rehomed code."},{"line_number":111,"context_line":"- Announce the breaking change in the team meeting or via mailing list."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a77a97e_d621f24e","line":110,"range":{"start_line":109,"start_character":2,"end_line":110,"end_character":87},"in_reply_to":"7a77a97e_ce0ddc38","updated":"2016-11-16 18:36:26.000000000","message":"Please have a look at the latest patch set and see if it clarifies.","commit_id":"f07924507769662b041af194c4892307468507e6"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"b9ddf6b4f15552b1a99247070df9a1f8b1e955db","unresolved":false,"context_lines":[{"line_number":106,"context_line":"- Create a bug, and use it as the topic for all changes suggested below."},{"line_number":107,"context_line":"- Prefixing the patch that removes the rehomed code in its source with a commit message that"},{"line_number":108,"context_line":"  includes ``BreakingChange`` and mark the patch as a ``WIP`` with a -1 workflow vote."},{"line_number":109,"context_line":"- For subjects that will break from the removal, submit a patch for the subprojects that fixes"},{"line_number":110,"context_line":"  the breakage and use ``Depends-On:`` referencing the patch removing the rehomed code."},{"line_number":111,"context_line":"- Announce the breaking change in the team meeting or via mailing list."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a77a97e_3336bbe6","line":110,"range":{"start_line":109,"start_character":2,"end_line":110,"end_character":87},"in_reply_to":"7a77a97e_d8b846e8","updated":"2016-11-16 17:05:36.000000000","message":"This doesn\u0027t work without depending on the core patch:\nhttps://review.openstack.org/392939\n\nWithout the core patch, some extensions use the lib ExtensionDescriptor class and some use the one from core, and there is confusion about which extensions are registered.","commit_id":"f07924507769662b041af194c4892307468507e6"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b8117d5e8c7209be981cd48de4440e17bfd38fbf","unresolved":false,"context_lines":[{"line_number":108,"context_line":"  includes ``BreakingChange`` and mark the patch as a ``WIP`` with a -1 workflow vote."},{"line_number":109,"context_line":"- For subjects that will break from the removal, submit a patch for the subprojects that fixes"},{"line_number":110,"context_line":"  the breakage and use ``Depends-On:`` referencing the patch removing the rehomed code."},{"line_number":111,"context_line":"- Announce the breaking change in the team meeting or via mailing list."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a77a97e_a28437d4","line":111,"range":{"start_line":111,"start_character":51,"end_line":111,"end_character":53},"updated":"2016-11-16 16:34:38.000000000","message":"I think we should at least do meeting notes, so \"or\" -\u003e \", and maybe also\".","commit_id":"f07924507769662b041af194c4892307468507e6"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"9ba773238b53a44ca5258c0b1b1ad8fcca603149","unresolved":false,"context_lines":[{"line_number":108,"context_line":"  includes ``BreakingChange`` and mark the patch as a ``WIP`` with a -1 workflow vote."},{"line_number":109,"context_line":"- For subjects that will break from the removal, submit a patch for the subprojects that fixes"},{"line_number":110,"context_line":"  the breakage and use ``Depends-On:`` referencing the patch removing the rehomed code."},{"line_number":111,"context_line":"- Announce the breaking change in the team meeting or via mailing list."}],"source_content_type":"text/x-rst","patch_set":13,"id":"7a77a97e_18371ee4","line":111,"range":{"start_line":111,"start_character":51,"end_line":111,"end_character":53},"in_reply_to":"7a77a97e_a28437d4","updated":"2016-11-16 16:54:25.000000000","message":"Done","commit_id":"f07924507769662b041af194c4892307468507e6"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"02ef2a4a8234ea1e00790cc1f22897532d6e47cc","unresolved":false,"context_lines":[{"line_number":99,"context_line":"changed in the source. If something has changed in the source, you need push and shepherd a"},{"line_number":100,"context_line":"patch to neutron-lib with the difference(s) before updating the rehomed code\u0027s source."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Also consider helping stadium sub-projects to consume the rehomed code. Ideally consumers of"},{"line_number":103,"context_line":"code that was rehomed should be a +W away from being \"unbroken\". The following steps achieve"},{"line_number":104,"context_line":"this result:"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"- Create a bug, and use it as the topic for all changes suggested below."}],"source_content_type":"text/x-rst","patch_set":14,"id":"7a77a97e_ae58a033","line":103,"range":{"start_line":102,"start_character":72,"end_line":103,"end_character":64},"updated":"2016-11-16 17:26:02.000000000","message":"I can\u0027t describe a situation where we routinely break others\u0027 gates as \u0027ideal\u0027.","commit_id":"a659083fe3a2eb76972645d483b03534e355ce5e"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":4,"context_line":".. include:: ../../CONTRIBUTING.rst"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"As your code is subject to the `review guidelines \u003c./review-guidelines.html\u003e`_,"},{"line_number":7,"context_line":"please take the time to familiarize yourself with those standards."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Rehoming Existing Code"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_a96c0936","line":7,"range":{"start_line":7,"start_character":56,"end_line":7,"end_character":65},"updated":"2016-11-17 02:09:23.000000000","message":"guidelines","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":4,"context_line":".. include:: ../../CONTRIBUTING.rst"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"As your code is subject to the `review guidelines \u003c./review-guidelines.html\u003e`_,"},{"line_number":7,"context_line":"please take the time to familiarize yourself with those standards."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Rehoming Existing Code"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_2807b682","line":7,"range":{"start_line":7,"start_character":56,"end_line":7,"end_character":65},"in_reply_to":"7a77a97e_a96c0936","updated":"2016-11-18 22:08:58.000000000","message":"Done","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":14,"context_line":"neutron-lib. Rehoming approaches that fall outside the scope herein will need to be"},{"line_number":15,"context_line":"considered on a case by case basis."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The rehoming workflow procedure has four main phases:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Phase 1: Rehome"},{"line_number":20,"context_line":"~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_2951d936","line":17,"updated":"2016-11-17 02:09:23.000000000","message":"it would be great if for any of these phases you could provide actual example patches.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"neutron-lib. Rehoming approaches that fall outside the scope herein will need to be"},{"line_number":15,"context_line":"considered on a case by case basis."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The rehoming workflow procedure has four main phases:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Phase 1: Rehome"},{"line_number":20,"context_line":"~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_81d420ec","line":17,"in_reply_to":"7a77a97e_2951d936","updated":"2016-11-18 22:08:58.000000000","message":"Good idea. Done.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    #. Identify the chunk of code for rehoming. Applicable code includes common"},{"line_number":23,"context_line":"       classes/functions/modules/etc. that are consumed by networking project(s) outside of"},{"line_number":24,"context_line":"       neutron. It\u0027s imperative that you understand the imports used by the rehomed code to"},{"line_number":25,"context_line":"       ensure they are already in neutron-lib. Optimal consumption patterns of the"},{"line_number":26,"context_line":"       code at hand must also be considered to ensure the rehomed code addresses any"},{"line_number":27,"context_line":"       technical debt. Finally, leave low-hanging fruit for last and tackle the"},{"line_number":28,"context_line":"       most commonly used code first."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_c94ce5ca","line":25,"range":{"start_line":24,"start_character":16,"end_line":25,"end_character":46},"updated":"2016-11-17 02:09:23.000000000","message":"actually, I don\u0027t understand what you want to say here.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    #. Identify the chunk of code for rehoming. Applicable code includes common"},{"line_number":23,"context_line":"       classes/functions/modules/etc. that are consumed by networking project(s) outside of"},{"line_number":24,"context_line":"       neutron. It\u0027s imperative that you understand the imports used by the rehomed code to"},{"line_number":25,"context_line":"       ensure they are already in neutron-lib. Optimal consumption patterns of the"},{"line_number":26,"context_line":"       code at hand must also be considered to ensure the rehomed code addresses any"},{"line_number":27,"context_line":"       technical debt. Finally, leave low-hanging fruit for last and tackle the"},{"line_number":28,"context_line":"       most commonly used code first."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_c1f1b896","line":25,"range":{"start_line":24,"start_character":16,"end_line":25,"end_character":46},"in_reply_to":"7a77a97e_1576eea3","updated":"2016-11-18 22:08:58.000000000","message":"I cleaned this up and agree it\u0027s basically noise.\n\n\nArmando: ATM we can\u0027t safely roll out hacking checks. See [1]. I\u0027ll probably bring this up in the neutron meeting as IMO we need to get this hacking check thing solidified.\n\n\n[1] https://review.openstack.org/#/c/350723/","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"43a66cc65b3cc69cf810fadf924eac10f468ae0d","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    #. Identify the chunk of code for rehoming. Applicable code includes common"},{"line_number":23,"context_line":"       classes/functions/modules/etc. that are consumed by networking project(s) outside of"},{"line_number":24,"context_line":"       neutron. It\u0027s imperative that you understand the imports used by the rehomed code to"},{"line_number":25,"context_line":"       ensure they are already in neutron-lib. Optimal consumption patterns of the"},{"line_number":26,"context_line":"       code at hand must also be considered to ensure the rehomed code addresses any"},{"line_number":27,"context_line":"       technical debt. Finally, leave low-hanging fruit for last and tackle the"},{"line_number":28,"context_line":"       most commonly used code first."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_1576eea3","line":25,"range":{"start_line":24,"start_character":16,"end_line":25,"end_character":46},"in_reply_to":"7a77a97e_1a01bd05","updated":"2016-11-17 03:34:28.000000000","message":"don\u0027t we have a hacking rule that prevents us this?","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"84108f2a46a2bd4ec37d25787be675b39fc09c14","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    #. Identify the chunk of code for rehoming. Applicable code includes common"},{"line_number":23,"context_line":"       classes/functions/modules/etc. that are consumed by networking project(s) outside of"},{"line_number":24,"context_line":"       neutron. It\u0027s imperative that you understand the imports used by the rehomed code to"},{"line_number":25,"context_line":"       ensure they are already in neutron-lib. Optimal consumption patterns of the"},{"line_number":26,"context_line":"       code at hand must also be considered to ensure the rehomed code addresses any"},{"line_number":27,"context_line":"       technical debt. Finally, leave low-hanging fruit for last and tackle the"},{"line_number":28,"context_line":"       most commonly used code first."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_1a01bd05","line":25,"range":{"start_line":24,"start_character":16,"end_line":25,"end_character":46},"in_reply_to":"7a77a97e_c94ce5ca","updated":"2016-11-17 02:57:41.000000000","message":"I think it means that you cannot rehome code that imports neutron. That\u0027s obvious enough that we can just drop the sentence, IMO.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"       - Refactor/enhance the code as part of the initial neutron-lib patch. If this change"},{"line_number":40,"context_line":"         will be disruptive to consumers, clearly communicate the change via email list or"},{"line_number":41,"context_line":"         meeting topic."},{"line_number":42,"context_line":"       - Leave the refactoring to the next (Enhance) phase. In this Rehome phase, copy the code"},{"line_number":43,"context_line":"         as-is into private module according to our `conventions \u003c./conventions.html\u003e`_. This"},{"line_number":44,"context_line":"         approach is slower, but may be necessary in some cases."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_499d3509","line":41,"updated":"2016-11-17 02:09:23.000000000","message":"provide link here? https://wiki.openstack.org/wiki/Network/Meetings#Neutron-lib_and_planned_neutron_refactoring","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"       - Refactor/enhance the code as part of the initial neutron-lib patch. If this change"},{"line_number":40,"context_line":"         will be disruptive to consumers, clearly communicate the change via email list or"},{"line_number":41,"context_line":"         meeting topic."},{"line_number":42,"context_line":"       - Leave the refactoring to the next (Enhance) phase. In this Rehome phase, copy the code"},{"line_number":43,"context_line":"         as-is into private module according to our `conventions \u003c./conventions.html\u003e`_. This"},{"line_number":44,"context_line":"         approach is slower, but may be necessary in some cases."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_4134c848","line":41,"in_reply_to":"7a77a97e_499d3509","updated":"2016-11-18 22:08:58.000000000","message":"Ack.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"       `review 386846 \u003chttps://review.openstack.org/#/c/386846/\u003e`_)."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"The interfaces in the rehomed code are subject to our `conventions \u003c./conventions.html\u003e`_. If"},{"line_number":65,"context_line":"the rehomed code does not have private code that needs enhancements you can skip the next phase."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Phase 2: Enhance"},{"line_number":68,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_29c399ee","line":65,"updated":"2016-11-17 02:09:23.000000000","message":"I\u0027d add here, if you have any doubt on any of these phases, reach out to a core neutron developer for clarification and feedback. Pinpointing the wrong chunk of code to be rehomed only to find that out at step N, is likely going to cause frustration and waste of energy.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"       `review 386846 \u003chttps://review.openstack.org/#/c/386846/\u003e`_)."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"The interfaces in the rehomed code are subject to our `conventions \u003c./conventions.html\u003e`_. If"},{"line_number":65,"context_line":"the rehomed code does not have private code that needs enhancements you can skip the next phase."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Phase 2: Enhance"},{"line_number":68,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_c148d8ce","line":65,"in_reply_to":"7a77a97e_29c399ee","updated":"2016-11-18 22:08:58.000000000","message":"Included in updated version, but moved these notes up into the context they belong rather than as notes at the end here..","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":71,"context_line":"shepherd those at this time. Include a release note describing the usage of the refactored or"},{"line_number":72,"context_line":"enhanced code. Additionally, if the initial rehomed code is applicable for enhancement (and"},{"line_number":73,"context_line":"was made private in the initial patch), the final enhancement patch should now make the API"},{"line_number":74,"context_line":"public for release consumption."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Phase 3: Release"},{"line_number":77,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_693e71db","line":74,"updated":"2016-11-17 02:09:23.000000000","message":"I\u0027d personally see phase 2 after 3. Smaller and more frequent iterations make us more agile. But I might be misreading what you\u0027re saying.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"84108f2a46a2bd4ec37d25787be675b39fc09c14","unresolved":false,"context_lines":[{"line_number":71,"context_line":"shepherd those at this time. Include a release note describing the usage of the refactored or"},{"line_number":72,"context_line":"enhanced code. Additionally, if the initial rehomed code is applicable for enhancement (and"},{"line_number":73,"context_line":"was made private in the initial patch), the final enhancement patch should now make the API"},{"line_number":74,"context_line":"public for release consumption."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Phase 3: Release"},{"line_number":77,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_eff7e156","line":74,"in_reply_to":"7a77a97e_693e71db","updated":"2016-11-17 02:57:41.000000000","message":"This is based on if you followed lines 42-44 option. If you made the cloned code private with the intent to enhance/refactor it before going public, then this is the phase where you do that work. (The callbacks code is currently in this phase, I would say.)\n\nNote that the release note and consumer prototype should be done in this phase.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"shepherd those at this time. Include a release note describing the usage of the refactored or"},{"line_number":72,"context_line":"enhanced code. Additionally, if the initial rehomed code is applicable for enhancement (and"},{"line_number":73,"context_line":"was made private in the initial patch), the final enhancement patch should now make the API"},{"line_number":74,"context_line":"public for release consumption."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Phase 3: Release"},{"line_number":77,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_2118acd2","line":74,"in_reply_to":"7a77a97e_eff7e156","updated":"2016-11-18 22:08:58.000000000","message":"See if the updated patch helps clarify.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"43a66cc65b3cc69cf810fadf924eac10f468ae0d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"shepherd those at this time. Include a release note describing the usage of the refactored or"},{"line_number":72,"context_line":"enhanced code. Additionally, if the initial rehomed code is applicable for enhancement (and"},{"line_number":73,"context_line":"was made private in the initial patch), the final enhancement patch should now make the API"},{"line_number":74,"context_line":"public for release consumption."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Phase 3: Release"},{"line_number":77,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_55a30600","line":74,"in_reply_to":"7a77a97e_eff7e156","updated":"2016-11-17 03:34:28.000000000","message":"ok","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"The following guidelines are intended to provide a smooth transition to the rehomed code"},{"line_number":99,"context_line":"in neutron-lib and minimize any impact to subprojects consuming the rehomed code from its"},{"line_number":100,"context_line":"source."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"- Create a bug, and use it as the topic for all changes suggested below. Indicate that"},{"line_number":103,"context_line":"  in 1 month\u0027s time the switch over to the rehomed code will occur."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_ac125755","line":100,"range":{"start_line":100,"start_character":6,"end_line":100,"end_character":7},"updated":"2016-11-17 02:09:23.000000000","message":"I wouldn\u0027t be so prescriptive and I would like to cut some red tape.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"The following guidelines are intended to provide a smooth transition to the rehomed code"},{"line_number":99,"context_line":"in neutron-lib and minimize any impact to subprojects consuming the rehomed code from its"},{"line_number":100,"context_line":"source."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"- Create a bug, and use it as the topic for all changes suggested below. Indicate that"},{"line_number":103,"context_line":"  in 1 month\u0027s time the switch over to the rehomed code will occur."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_410be87c","line":100,"range":{"start_line":100,"start_character":6,"end_line":100,"end_character":7},"in_reply_to":"7a77a97e_ac125755","updated":"2016-11-18 22:08:58.000000000","message":"Chop-chop!","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"b88b2a44a00acf0a59418cf2b9a3245219b807f6","unresolved":false,"context_lines":[{"line_number":100,"context_line":"source."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"- Create a bug, and use it as the topic for all changes suggested below. Indicate that"},{"line_number":103,"context_line":"  in 1 month\u0027s time the switch over to the rehomed code will occur."},{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_d6273210","line":103,"range":{"start_line":103,"start_character":5,"end_line":103,"end_character":19},"updated":"2016-11-16 18:43:25.000000000","message":"This one month, aren\u0027t we overreacting? Maybe something shorter? I feel eg. 2weeks would be enough for everyone who cares about their gate.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":100,"context_line":"source."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"- Create a bug, and use it as the topic for all changes suggested below. Indicate that"},{"line_number":103,"context_line":"  in 1 month\u0027s time the switch over to the rehomed code will occur."},{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_0cd26b5c","line":103,"range":{"start_line":103,"start_character":5,"end_line":103,"end_character":19},"updated":"2016-11-17 02:09:23.000000000","message":"we can\u0027t come up with an actual time, it depends on the code being rehomed, how difficult it is to clean up the neutron code and how much bandwidth the person has to see things through. I think we need to go by \u0027milestones\u0027.  But first things first: I don\u0027t think that a bug report is necessary. perhaps having our own \u0027NeutronLibImpact\u0027 tag on the commit message might be more effective. People can watch for it, it\u0027s more lightweight and it doesn\u0027t involve Launchpad, which is a bonus! We have a lib bug for Launchpad, but it\u0027s usually forgotten. Gerrit search queries are easier to craft than awful LP URLs.\n\nAs for the timeframe, I think the first step is to declare the intention of proposing a neutron core patch at the team meeting during the reserved slot. Following up with a ML with subject [neutron] neutron-lib impact providing more details is customary. The patch can bake and needs time to be reviewed and ack-ed on. This can take as long as it takes. The patch is being advertised at the meetings until the owner declares he/she is happy to see it go in as is and there\u0027s enough understanding of its impact (e.g. has he/she proposed subprojects fixes?)\n\nOnce the team is happy to pull the trigger, the decision is a go. This can take 1 week or 10 weeks. It depends on a variety of factors.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":100,"context_line":"source."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"- Create a bug, and use it as the topic for all changes suggested below. Indicate that"},{"line_number":103,"context_line":"  in 1 month\u0027s time the switch over to the rehomed code will occur."},{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_812980e8","line":103,"range":{"start_line":103,"start_character":5,"end_line":103,"end_character":19},"in_reply_to":"7a77a97e_0cd26b5c","updated":"2016-11-18 22:08:58.000000000","message":"See if you like the updated version.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"245daecfd0cb66437fc103330e798143b4a1d407","unresolved":false,"context_lines":[{"line_number":100,"context_line":"source."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"- Create a bug, and use it as the topic for all changes suggested below. Indicate that"},{"line_number":103,"context_line":"  in 1 month\u0027s time the switch over to the rehomed code will occur."},{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_d6b1f290","line":103,"range":{"start_line":103,"start_character":5,"end_line":103,"end_character":19},"in_reply_to":"7a77a97e_d6273210","updated":"2016-11-16 18:46:43.000000000","message":"I wasn\u0027t there, but is my understanding that\u0027s what was agreed upon at the summit: http://lists.openstack.org/pipermail/openstack-dev/2016-November/106719.html","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"5c83c12c94b6e545767f708c5292a509d684c6eb","unresolved":false,"context_lines":[{"line_number":100,"context_line":"source."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"- Create a bug, and use it as the topic for all changes suggested below. Indicate that"},{"line_number":103,"context_line":"  in 1 month\u0027s time the switch over to the rehomed code will occur."},{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_d96925c0","line":103,"range":{"start_line":103,"start_character":5,"end_line":103,"end_character":19},"in_reply_to":"7a77a97e_d6b1f290","updated":"2016-11-16 18:52:27.000000000","message":"Yeah but I pulled that number out of my a^H^H^H^H thin air. I meant anything that could be tolerated.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"a28291e64fd51676894aaded8eccd62c334c3907","unresolved":false,"context_lines":[{"line_number":100,"context_line":"source."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"- Create a bug, and use it as the topic for all changes suggested below. Indicate that"},{"line_number":103,"context_line":"  in 1 month\u0027s time the switch over to the rehomed code will occur."},{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_99596d01","line":103,"range":{"start_line":103,"start_character":5,"end_line":103,"end_character":19},"in_reply_to":"7a77a97e_d96925c0","updated":"2016-11-16 18:55:43.000000000","message":"I don\u0027t have the experience you guys do, but IMHO it seems like 2 weeks is a pretty tight time-frame (in some cases) to make all the changes and get them through review. A month seems more realistic to me. Just my $0.02.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"},{"line_number":107,"context_line":"  includes `BreakingChange` and mark the patch as a `WIP` with a -1 workflow vote."},{"line_number":108,"context_line":"- Identify all subprojects that are impacted by the rehomed code from the previous step"},{"line_number":109,"context_line":"  and add them as `affected projects \u003chttps://help.launchpad.net/Bugs/MultiProjectBugs\u003e`_"},{"line_number":110,"context_line":"  to the bug. Note: A good tool for finding affected subprojects is"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_6ccd9fb6","line":107,"updated":"2016-11-17 02:09:23.000000000","message":"BreakingChange is equivalent to NeutronLibImpact I was thinking of. I prefer the latter as it has a less negative connotation. Overall we\u0027re making a positive effort in the right direction, we\u0027re fixing things rather than breaking them!","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"},{"line_number":107,"context_line":"  includes `BreakingChange` and mark the patch as a `WIP` with a -1 workflow vote."},{"line_number":108,"context_line":"- Identify all subprojects that are impacted by the rehomed code from the previous step"},{"line_number":109,"context_line":"  and add them as `affected projects \u003chttps://help.launchpad.net/Bugs/MultiProjectBugs\u003e`_"},{"line_number":110,"context_line":"  to the bug. Note: A good tool for finding affected subprojects is"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_8170a00c","line":107,"in_reply_to":"7a77a97e_35892a76","updated":"2016-11-18 22:08:58.000000000","message":"I was actually thinking we should use something like \u0027ACTION_REQUESTED_OR_BREAK\u0027... Doesn\u0027t fear ensue action?!?","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"84108f2a46a2bd4ec37d25787be675b39fc09c14","unresolved":false,"context_lines":[{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"},{"line_number":107,"context_line":"  includes `BreakingChange` and mark the patch as a `WIP` with a -1 workflow vote."},{"line_number":108,"context_line":"- Identify all subprojects that are impacted by the rehomed code from the previous step"},{"line_number":109,"context_line":"  and add them as `affected projects \u003chttps://help.launchpad.net/Bugs/MultiProjectBugs\u003e`_"},{"line_number":110,"context_line":"  to the bug. Note: A good tool for finding affected subprojects is"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_8f410dac","line":107,"in_reply_to":"7a77a97e_6ccd9fb6","updated":"2016-11-17 02:57:41.000000000","message":"Great idea. I came up with \u0027BreakingChange\u0027 but this is much better. You are such a positive person. I apologize for my doomsday negativity.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"43a66cc65b3cc69cf810fadf924eac10f468ae0d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"},{"line_number":107,"context_line":"  includes `BreakingChange` and mark the patch as a `WIP` with a -1 workflow vote."},{"line_number":108,"context_line":"- Identify all subprojects that are impacted by the rehomed code from the previous step"},{"line_number":109,"context_line":"  and add them as `affected projects \u003chttps://help.launchpad.net/Bugs/MultiProjectBugs\u003e`_"},{"line_number":110,"context_line":"  to the bug. Note: A good tool for finding affected subprojects is"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_35892a76","line":107,"in_reply_to":"7a77a97e_8f410dac","updated":"2016-11-17 03:34:28.000000000","message":"Nah, I am just a master in deception :)","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"},{"line_number":107,"context_line":"  includes `BreakingChange` and mark the patch as a `WIP` with a -1 workflow vote."},{"line_number":108,"context_line":"- Identify all subprojects that are impacted by the rehomed code from the previous step"},{"line_number":109,"context_line":"  and add them as `affected projects \u003chttps://help.launchpad.net/Bugs/MultiProjectBugs\u003e`_"},{"line_number":110,"context_line":"  to the bug. Note: A good tool for finding affected subprojects is"},{"line_number":111,"context_line":"  `OpenStack code search \u003chttp://codesearch.openstack.org/\u003e`_."},{"line_number":112,"context_line":"- Choose at least 1 affected subproject for a \"reference implementation\" for the changes:"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_0c398ba4","line":110,"range":{"start_line":108,"start_character":2,"end_line":110,"end_character":12},"updated":"2016-11-17 02:09:23.000000000","message":"this is a bad idea, it\u0027ll leave the bug lingering in LP for ever. Please scrap this. As I said, I\u0027d rather do with fewer tools involved.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"84108f2a46a2bd4ec37d25787be675b39fc09c14","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"},{"line_number":107,"context_line":"  includes `BreakingChange` and mark the patch as a `WIP` with a -1 workflow vote."},{"line_number":108,"context_line":"- Identify all subprojects that are impacted by the rehomed code from the previous step"},{"line_number":109,"context_line":"  and add them as `affected projects \u003chttps://help.launchpad.net/Bugs/MultiProjectBugs\u003e`_"},{"line_number":110,"context_line":"  to the bug. Note: A good tool for finding affected subprojects is"},{"line_number":111,"context_line":"  `OpenStack code search \u003chttp://codesearch.openstack.org/\u003e`_."},{"line_number":112,"context_line":"- Choose at least 1 affected subproject for a \"reference implementation\" for the changes:"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_cf4785ba","line":110,"range":{"start_line":108,"start_character":2,"end_line":110,"end_character":12},"in_reply_to":"7a77a97e_0c398ba4","updated":"2016-11-17 02:57:41.000000000","message":"+1","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":106,"context_line":"  notice by following the steps here. Prefix the patch with a commit message that"},{"line_number":107,"context_line":"  includes `BreakingChange` and mark the patch as a `WIP` with a -1 workflow vote."},{"line_number":108,"context_line":"- Identify all subprojects that are impacted by the rehomed code from the previous step"},{"line_number":109,"context_line":"  and add them as `affected projects \u003chttps://help.launchpad.net/Bugs/MultiProjectBugs\u003e`_"},{"line_number":110,"context_line":"  to the bug. Note: A good tool for finding affected subprojects is"},{"line_number":111,"context_line":"  `OpenStack code search \u003chttp://codesearch.openstack.org/\u003e`_."},{"line_number":112,"context_line":"- Choose at least 1 affected subproject for a \"reference implementation\" for the changes:"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_0163b042","line":110,"range":{"start_line":108,"start_character":2,"end_line":110,"end_character":12},"in_reply_to":"7a77a97e_0c398ba4","updated":"2016-11-18 22:08:58.000000000","message":"Got it.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"ef5a06d3627ab763e82e16aec1a485abe32d3fb1","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Examples:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"- `319769 \u003chttps://review.openstack.org/#/c/319769/\u003e`_ brought over a number of common"},{"line_number":76,"context_line":"  utility functions as-is from neutron into a new package structure within neutron-lib."},{"line_number":77,"context_line":"- `253661 \u003chttps://review.openstack.org/#/c/253661/\u003e`_ rehomed neutron callbacks into a"},{"line_number":78,"context_line":"  private package that\u0027s enhanced via `346554 \u003chttps://review.openstack.org/#/c/346554/\u003e`_."}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_2cf42359","line":75,"updated":"2016-11-18 22:48:59.000000000","message":"Nit: You can leave out the \u0027/#/c\u0027 and trailing slash from these gerrit links.","commit_id":"e58852ebd10115d6d6b126470e8a61cc7e1241c6"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"49a55dbf8d3926be99c35821b81aeb4921007247","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Examples:"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"- `319769 \u003chttps://review.openstack.org/#/c/319769/\u003e`_ brought over a number of common"},{"line_number":76,"context_line":"  utility functions as-is from neutron into a new package structure within neutron-lib."},{"line_number":77,"context_line":"- `253661 \u003chttps://review.openstack.org/#/c/253661/\u003e`_ rehomed neutron callbacks into a"},{"line_number":78,"context_line":"  private package that\u0027s enhanced via `346554 \u003chttps://review.openstack.org/#/c/346554/\u003e`_."}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_addac315","line":75,"in_reply_to":"7a77a97e_2cf42359","updated":"2016-11-21 14:15:28.000000000","message":"Done","commit_id":"e58852ebd10115d6d6b126470e8a61cc7e1241c6"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"ef5a06d3627ab763e82e16aec1a485abe32d3fb1","unresolved":false,"context_lines":[{"line_number":115,"context_line":"It\u0027s critical that before you submit your patch to remove the rehomed code from its source that"},{"line_number":116,"context_line":"you perform a diff between it and the rehomed version in neutron-lib to ensure nothing has"},{"line_number":117,"context_line":"changed in the source. If something has changed in the source, you need push and shepherd a"},{"line_number":118,"context_line":"patch to neutron-lib with the difference(s) before updating the rehomed code\u0027s source."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The following guidelines are intended to provide a smooth transition to the rehomed code"},{"line_number":121,"context_line":"in neutron-lib and minimize impacts to subprojects consuming the rehomed code from its"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_6c5c5b7d","line":118,"range":{"start_line":118,"start_character":44,"end_line":118,"end_character":86},"updated":"2016-11-18 22:48:59.000000000","message":"I found this a little confusing. How about \"before proceeding with this consumption phase.\"?","commit_id":"e58852ebd10115d6d6b126470e8a61cc7e1241c6"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"49a55dbf8d3926be99c35821b81aeb4921007247","unresolved":false,"context_lines":[{"line_number":115,"context_line":"It\u0027s critical that before you submit your patch to remove the rehomed code from its source that"},{"line_number":116,"context_line":"you perform a diff between it and the rehomed version in neutron-lib to ensure nothing has"},{"line_number":117,"context_line":"changed in the source. If something has changed in the source, you need push and shepherd a"},{"line_number":118,"context_line":"patch to neutron-lib with the difference(s) before updating the rehomed code\u0027s source."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The following guidelines are intended to provide a smooth transition to the rehomed code"},{"line_number":121,"context_line":"in neutron-lib and minimize impacts to subprojects consuming the rehomed code from its"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_4d876fd7","line":118,"range":{"start_line":118,"start_character":44,"end_line":118,"end_character":86},"in_reply_to":"7a77a97e_6c5c5b7d","updated":"2016-11-21 14:15:28.000000000","message":"English was never my strong suit! Done.","commit_id":"e58852ebd10115d6d6b126470e8a61cc7e1241c6"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"ef5a06d3627ab763e82e16aec1a485abe32d3fb1","unresolved":false,"context_lines":[{"line_number":130,"context_line":"  `grepping the OpenStack code \u003chttp://codesearch.openstack.org/\u003e`_."},{"line_number":131,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":132,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":133,"context_line":"  notice by following the steps here. In the patch\u0027s commit message use the ``NeutronLibImpact``"},{"line_number":134,"context_line":"  so that we can easily query such changes. Mark the patch as a work in progress with a"},{"line_number":135,"context_line":"  -1 workflow vote."},{"line_number":136,"context_line":"- If the change is significant enough, it may warrant a \"reference implementation\" in an"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_8c8c57db","line":133,"range":{"start_line":133,"start_character":68,"end_line":133,"end_character":75},"updated":"2016-11-18 22:48:59.000000000","message":"use the -\u003e include the keyword","commit_id":"e58852ebd10115d6d6b126470e8a61cc7e1241c6"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"49a55dbf8d3926be99c35821b81aeb4921007247","unresolved":false,"context_lines":[{"line_number":130,"context_line":"  `grepping the OpenStack code \u003chttp://codesearch.openstack.org/\u003e`_."},{"line_number":131,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":132,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":133,"context_line":"  notice by following the steps here. In the patch\u0027s commit message use the ``NeutronLibImpact``"},{"line_number":134,"context_line":"  so that we can easily query such changes. Mark the patch as a work in progress with a"},{"line_number":135,"context_line":"  -1 workflow vote."},{"line_number":136,"context_line":"- If the change is significant enough, it may warrant a \"reference implementation\" in an"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_6d6c2b37","line":133,"range":{"start_line":133,"start_character":68,"end_line":133,"end_character":75},"in_reply_to":"7a77a97e_8c8c57db","updated":"2016-11-21 14:15:28.000000000","message":"Done","commit_id":"e58852ebd10115d6d6b126470e8a61cc7e1241c6"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"ef5a06d3627ab763e82e16aec1a485abe32d3fb1","unresolved":false,"context_lines":[{"line_number":131,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":132,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":133,"context_line":"  notice by following the steps here. In the patch\u0027s commit message use the ``NeutronLibImpact``"},{"line_number":134,"context_line":"  so that we can easily query such changes. Mark the patch as a work in progress with a"},{"line_number":135,"context_line":"  -1 workflow vote."},{"line_number":136,"context_line":"- If the change is significant enough, it may warrant a \"reference implementation\" in an"},{"line_number":137,"context_line":"  impacted sub-project to ensure the impacts are fully understood. Testing this"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_cca9ef25","line":134,"range":{"start_line":134,"start_character":24,"end_line":134,"end_character":29},"updated":"2016-11-18 22:48:59.000000000","message":"The query is in the meeting wiki, but you could include it here too.\nhttps://review.openstack.org/#/q/status:open+message:%22NeutronLibImpact%22","commit_id":"e58852ebd10115d6d6b126470e8a61cc7e1241c6"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"49a55dbf8d3926be99c35821b81aeb4921007247","unresolved":false,"context_lines":[{"line_number":131,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":132,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":133,"context_line":"  notice by following the steps here. In the patch\u0027s commit message use the ``NeutronLibImpact``"},{"line_number":134,"context_line":"  so that we can easily query such changes. Mark the patch as a work in progress with a"},{"line_number":135,"context_line":"  -1 workflow vote."},{"line_number":136,"context_line":"- If the change is significant enough, it may warrant a \"reference implementation\" in an"},{"line_number":137,"context_line":"  impacted sub-project to ensure the impacts are fully understood. Testing this"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_ad764304","line":134,"range":{"start_line":134,"start_character":24,"end_line":134,"end_character":29},"in_reply_to":"7a77a97e_cca9ef25","updated":"2016-11-21 14:15:28.000000000","message":"Done","commit_id":"e58852ebd10115d6d6b126470e8a61cc7e1241c6"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"500e120866289e0797532f48949ddbe4121c6f16","unresolved":false,"context_lines":[{"line_number":67,"context_line":"       `release note \u003chttp://docs.openstack.org/developer/reno/\u003e`_ that describes the code\u0027s"},{"line_number":68,"context_line":"       old neutron location and new neutron-lib location. Also note that in some cases it makes"},{"line_number":69,"context_line":"       sense to prototype a change in a consumer project to better understand the impacts of"},{"line_number":70,"context_line":"       the change which can be done using the ``Depends-On:`` appraoch described in the"},{"line_number":71,"context_line":"       `review guidelines \u003c./review-guidelines.html\u003e`_"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Examples:"}],"source_content_type":"text/x-rst","patch_set":18,"id":"7a77a97e_d4583159","line":70,"range":{"start_line":70,"start_character":62,"end_line":70,"end_character":70},"updated":"2016-11-22 14:33:35.000000000","message":"approach","commit_id":"8de0bca00c583eda9d14786ea1d328ed2a064f77"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"89d048cb012c6affb3200d80efa39920421bcd84","unresolved":false,"context_lines":[{"line_number":67,"context_line":"       `release note \u003chttp://docs.openstack.org/developer/reno/\u003e`_ that describes the code\u0027s"},{"line_number":68,"context_line":"       old neutron location and new neutron-lib location. Also note that in some cases it makes"},{"line_number":69,"context_line":"       sense to prototype a change in a consumer project to better understand the impacts of"},{"line_number":70,"context_line":"       the change which can be done using the ``Depends-On:`` appraoch described in the"},{"line_number":71,"context_line":"       `review guidelines \u003c./review-guidelines.html\u003e`_"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Examples:"}],"source_content_type":"text/x-rst","patch_set":18,"id":"7a77a97e_12a2b64b","line":70,"range":{"start_line":70,"start_character":62,"end_line":70,"end_character":70},"in_reply_to":"7a77a97e_d4583159","updated":"2016-11-22 15:42:42.000000000","message":"Done. Also fixed a few other inconsistencies in spelling.","commit_id":"8de0bca00c583eda9d14786ea1d328ed2a064f77"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b132f00beb61d2eb4253efdc9a524469446ba0d3","unresolved":false,"context_lines":[{"line_number":19,"context_line":"#. `Phase 1: Rehome`_ the code from neutron into neutron-lib."},{"line_number":20,"context_line":"#. `Phase 2: Enhance`_ the code in neutron-lib if necessary."},{"line_number":21,"context_line":"#. `Phase 3: Release`_ neutron-lib with the code so consumers can use it."},{"line_number":22,"context_line":"#. `Phase 4: Consume`_ by remove the rehomed code from its source and changing references"},{"line_number":23,"context_line":"   to use neutron-lib."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Phase 1: Rehome"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_3596bc94","line":22,"range":{"start_line":22,"start_character":26,"end_line":22,"end_character":32},"updated":"2016-11-22 16:01:26.000000000","message":"removing","commit_id":"dcc3aaf8836034459f1972a95f7170aac9884e08"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"060b6de458e6a6a061cc932bfb8bdb1b82ab9b43","unresolved":false,"context_lines":[{"line_number":19,"context_line":"#. `Phase 1: Rehome`_ the code from neutron into neutron-lib."},{"line_number":20,"context_line":"#. `Phase 2: Enhance`_ the code in neutron-lib if necessary."},{"line_number":21,"context_line":"#. `Phase 3: Release`_ neutron-lib with the code so consumers can use it."},{"line_number":22,"context_line":"#. `Phase 4: Consume`_ by remove the rehomed code from its source and changing references"},{"line_number":23,"context_line":"   to use neutron-lib."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Phase 1: Rehome"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_80490cba","line":22,"range":{"start_line":22,"start_character":26,"end_line":22,"end_character":32},"in_reply_to":"7a77a97e_3596bc94","updated":"2016-11-22 16:19:10.000000000","message":"Done","commit_id":"dcc3aaf8836034459f1972a95f7170aac9884e08"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b132f00beb61d2eb4253efdc9a524469446ba0d3","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"It\u0027s critical that before you submit your patch to remove the rehomed code from its source that"},{"line_number":116,"context_line":"you perform a diff between it and the rehomed version in neutron-lib to ensure nothing has"},{"line_number":117,"context_line":"changed in the source. If something has changed in the source, you need push and shepherd a"},{"line_number":118,"context_line":"patch to neutron-lib with the difference(s) before proceeding with this consumption phase."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The following guidelines are intended to provide a smooth transition to the rehomed code"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_f5afe47a","line":117,"range":{"start_line":117,"start_character":72,"end_line":117,"end_character":76},"updated":"2016-11-22 16:01:26.000000000","message":"to push","commit_id":"dcc3aaf8836034459f1972a95f7170aac9884e08"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"060b6de458e6a6a061cc932bfb8bdb1b82ab9b43","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"It\u0027s critical that before you submit your patch to remove the rehomed code from its source that"},{"line_number":116,"context_line":"you perform a diff between it and the rehomed version in neutron-lib to ensure nothing has"},{"line_number":117,"context_line":"changed in the source. If something has changed in the source, you need push and shepherd a"},{"line_number":118,"context_line":"patch to neutron-lib with the difference(s) before proceeding with this consumption phase."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"The following guidelines are intended to provide a smooth transition to the rehomed code"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_20dbd8ee","line":117,"range":{"start_line":117,"start_character":72,"end_line":117,"end_character":76},"in_reply_to":"7a77a97e_f5afe47a","updated":"2016-11-22 16:19:10.000000000","message":"Done","commit_id":"dcc3aaf8836034459f1972a95f7170aac9884e08"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"b132f00beb61d2eb4253efdc9a524469446ba0d3","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  `meeting slot \u003chttps://wiki.openstack.org/wiki/Network/Meetings#Neutron-lib_and_planned_neutron_refactoring\u003e`_"},{"line_number":127,"context_line":"  for neutron-lib. Subsequently follow-up with an email to openstack-dev list using a"},{"line_number":128,"context_line":"  subject with ``[neutron] neutron-lib impact`` providing additional details as necessary."},{"line_number":129,"context_line":"  Ideally we can identify the main impacted subpojects by"},{"line_number":130,"context_line":"  `grepping the OpenStack code \u003chttp://codesearch.openstack.org/\u003e`_."},{"line_number":131,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":132,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_f5fd246f","line":129,"range":{"start_line":129,"start_character":44,"end_line":129,"end_character":54},"updated":"2016-11-22 16:01:26.000000000","message":"subprojects","commit_id":"dcc3aaf8836034459f1972a95f7170aac9884e08"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"060b6de458e6a6a061cc932bfb8bdb1b82ab9b43","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  `meeting slot \u003chttps://wiki.openstack.org/wiki/Network/Meetings#Neutron-lib_and_planned_neutron_refactoring\u003e`_"},{"line_number":127,"context_line":"  for neutron-lib. Subsequently follow-up with an email to openstack-dev list using a"},{"line_number":128,"context_line":"  subject with ``[neutron] neutron-lib impact`` providing additional details as necessary."},{"line_number":129,"context_line":"  Ideally we can identify the main impacted subpojects by"},{"line_number":130,"context_line":"  `grepping the OpenStack code \u003chttp://codesearch.openstack.org/\u003e`_."},{"line_number":131,"context_line":"- Prepare a neutron core patch to remove and update the rehomed code from its source."},{"line_number":132,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a77a97e_a0ed2890","line":129,"range":{"start_line":129,"start_character":44,"end_line":129,"end_character":54},"in_reply_to":"7a77a97e_f5fd246f","updated":"2016-11-22 16:19:10.000000000","message":"Done","commit_id":"dcc3aaf8836034459f1972a95f7170aac9884e08"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ccd41377fe32bd9281de71d6520b1b59a28a8a62","unresolved":false,"context_lines":[{"line_number":47,"context_line":"         will be disruptive to consumers, clearly communicate the change via email list or"},{"line_number":48,"context_line":"         `meeting topic \u003chttps://wiki.openstack.org/wiki/Network/Meetings#Neutron-lib_and_planned_neutron_refactoring\u003e`_."},{"line_number":49,"context_line":"       - Leave the refactoring to the next (Enhance) phase. In this rehome phase, copy the code"},{"line_number":50,"context_line":"         as-is into private module according to our `conventions \u003c./conventions.html\u003e`_. This"},{"line_number":51,"context_line":"         approach is slower, but may be necessary in some cases."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    #. Understand existing work underway which may impact the rehomed code. For example"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_9bb981ef","line":50,"range":{"start_line":50,"start_character":15,"end_line":50,"end_character":19},"updated":"2016-11-22 16:46:33.000000000","message":"s/into/into a","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"3a3d4273e6770e1b6bc67ec7b24d3a41ad84b13d","unresolved":false,"context_lines":[{"line_number":47,"context_line":"         will be disruptive to consumers, clearly communicate the change via email list or"},{"line_number":48,"context_line":"         `meeting topic \u003chttps://wiki.openstack.org/wiki/Network/Meetings#Neutron-lib_and_planned_neutron_refactoring\u003e`_."},{"line_number":49,"context_line":"       - Leave the refactoring to the next (Enhance) phase. In this rehome phase, copy the code"},{"line_number":50,"context_line":"         as-is into private module according to our `conventions \u003c./conventions.html\u003e`_. This"},{"line_number":51,"context_line":"         approach is slower, but may be necessary in some cases."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    #. Understand existing work underway which may impact the rehomed code. For example"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_0cb452f0","line":50,"range":{"start_line":50,"start_character":15,"end_line":50,"end_character":19},"in_reply_to":"7a77a97e_9bb981ef","updated":"2016-11-22 18:32:44.000000000","message":"Done","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ccd41377fe32bd9281de71d6520b1b59a28a8a62","unresolved":false,"context_lines":[{"line_number":50,"context_line":"         as-is into private module according to our `conventions \u003c./conventions.html\u003e`_. This"},{"line_number":51,"context_line":"         approach is slower, but may be necessary in some cases."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    #. Understand existing work underway which may impact the rehomed code. For example"},{"line_number":54,"context_line":"       in-flight patch sets that update the code being rehomed in which case it may make sense"},{"line_number":55,"context_line":"       to let the in-flight patch merge and solidify a bit before rehoming."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    #. Prepare the code for neutron-lib. This may require replacing existing imports"},{"line_number":58,"context_line":"       with those provided by neutron-lib and/or rewriting/rearchitecting non-optimal"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_bb147d9f","line":55,"range":{"start_line":53,"start_character":7,"end_line":55,"end_character":75},"updated":"2016-11-22 16:46:33.000000000","message":"The second sentence here seems to run-together in the middle, possible re-write:\n\n\"Understand existing work underway which may impact the rehomed code, for example, in-flight patch sets that update the code being rehomed. In some cases it may make sense...\"","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"3a3d4273e6770e1b6bc67ec7b24d3a41ad84b13d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"         as-is into private module according to our `conventions \u003c./conventions.html\u003e`_. This"},{"line_number":51,"context_line":"         approach is slower, but may be necessary in some cases."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    #. Understand existing work underway which may impact the rehomed code. For example"},{"line_number":54,"context_line":"       in-flight patch sets that update the code being rehomed in which case it may make sense"},{"line_number":55,"context_line":"       to let the in-flight patch merge and solidify a bit before rehoming."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    #. Prepare the code for neutron-lib. This may require replacing existing imports"},{"line_number":58,"context_line":"       with those provided by neutron-lib and/or rewriting/rearchitecting non-optimal"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_ec91d647","line":55,"range":{"start_line":53,"start_character":7,"end_line":55,"end_character":75},"in_reply_to":"7a77a97e_bb147d9f","updated":"2016-11-22 18:32:44.000000000","message":"Done","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ccd41377fe32bd9281de71d6520b1b59a28a8a62","unresolved":false,"context_lines":[{"line_number":67,"context_line":"       `release note \u003chttp://docs.openstack.org/developer/reno/\u003e`_ that describes the code\u0027s"},{"line_number":68,"context_line":"       old neutron location and new neutron-lib location. Also note that in some cases it makes"},{"line_number":69,"context_line":"       sense to prototype a change in a consumer project to better understand the impacts of"},{"line_number":70,"context_line":"       the change which can be done using the ``Depends-On:`` approach described in the"},{"line_number":71,"context_line":"       `review guidelines \u003c./review-guidelines.html\u003e`_"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Examples:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_fbea7573","line":70,"range":{"start_line":70,"start_character":11,"end_line":70,"end_character":17},"updated":"2016-11-22 16:46:33.000000000","message":"change,","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"3a3d4273e6770e1b6bc67ec7b24d3a41ad84b13d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"       `release note \u003chttp://docs.openstack.org/developer/reno/\u003e`_ that describes the code\u0027s"},{"line_number":68,"context_line":"       old neutron location and new neutron-lib location. Also note that in some cases it makes"},{"line_number":69,"context_line":"       sense to prototype a change in a consumer project to better understand the impacts of"},{"line_number":70,"context_line":"       the change which can be done using the ``Depends-On:`` approach described in the"},{"line_number":71,"context_line":"       `review guidelines \u003c./review-guidelines.html\u003e`_"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Examples:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_0c99b26e","line":70,"range":{"start_line":70,"start_character":11,"end_line":70,"end_character":17},"in_reply_to":"7a77a97e_fbea7573","updated":"2016-11-22 18:32:44.000000000","message":"Done","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ccd41377fe32bd9281de71d6520b1b59a28a8a62","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Once a release is cut, an openstack infra proposal bot will submit patches to the master branch"},{"line_number":106,"context_line":"of all projects that consume neutron-lib to set the new release as the minimum requirement."},{"line_number":107,"context_line":"Someone from the neutron release team can bump to `g-r`; for example"},{"line_number":108,"context_line":"`review 393600 \u003chttps://review.openstack.org/393600/\u003e`_."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"When the bot-proposed requirement patches have merged, your rehomed code can be consumed."}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_664b285a","line":107,"range":{"start_line":107,"start_character":47,"end_line":107,"end_character":55},"updated":"2016-11-22 16:46:33.000000000","message":"s/to `g-r`/ `global requirements` (g-r)\n\nOr something like that, since g-r might not be known to the reader","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"3a3d4273e6770e1b6bc67ec7b24d3a41ad84b13d","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Once a release is cut, an openstack infra proposal bot will submit patches to the master branch"},{"line_number":106,"context_line":"of all projects that consume neutron-lib to set the new release as the minimum requirement."},{"line_number":107,"context_line":"Someone from the neutron release team can bump to `g-r`; for example"},{"line_number":108,"context_line":"`review 393600 \u003chttps://review.openstack.org/393600/\u003e`_."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"When the bot-proposed requirement patches have merged, your rehomed code can be consumed."}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_4ccaca50","line":107,"range":{"start_line":107,"start_character":47,"end_line":107,"end_character":55},"in_reply_to":"7a77a97e_664b285a","updated":"2016-11-22 18:32:44.000000000","message":"Done","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ccd41377fe32bd9281de71d6520b1b59a28a8a62","unresolved":false,"context_lines":[{"line_number":132,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":133,"context_line":"  notice by following the steps here. In the patch\u0027s commit message include the ``NeutronLibImpact``"},{"line_number":134,"context_line":"  so that we can easily `query \u003chttps://review.openstack.org/#/q/status:open+message:%22NeutronLibImpact%22\u003e`_"},{"line_number":135,"context_line":"  such changes. Mark the patch as a work in progress with a -1 workflow vote."},{"line_number":136,"context_line":"- If the change is significant enough, it may warrant a \"reference implementation\" in an"},{"line_number":137,"context_line":"  impacted subproject to ensure the impacts are fully understood. Testing this"},{"line_number":138,"context_line":"  change can be done using the ``Depends-On:`` approach described in the"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_66e7a840","line":135,"range":{"start_line":135,"start_character":2,"end_line":135,"end_character":6},"updated":"2016-11-22 16:46:33.000000000","message":"for such","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"3a3d4273e6770e1b6bc67ec7b24d3a41ad84b13d","unresolved":false,"context_lines":[{"line_number":132,"context_line":"  This can be done without a `debtcollector \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_"},{"line_number":133,"context_line":"  notice by following the steps here. In the patch\u0027s commit message include the ``NeutronLibImpact``"},{"line_number":134,"context_line":"  so that we can easily `query \u003chttps://review.openstack.org/#/q/status:open+message:%22NeutronLibImpact%22\u003e`_"},{"line_number":135,"context_line":"  such changes. Mark the patch as a work in progress with a -1 workflow vote."},{"line_number":136,"context_line":"- If the change is significant enough, it may warrant a \"reference implementation\" in an"},{"line_number":137,"context_line":"  impacted subproject to ensure the impacts are fully understood. Testing this"},{"line_number":138,"context_line":"  change can be done using the ``Depends-On:`` approach described in the"}],"source_content_type":"text/x-rst","patch_set":20,"id":"7a77a97e_8cc4e240","line":135,"range":{"start_line":135,"start_character":2,"end_line":135,"end_character":6},"in_reply_to":"7a77a97e_66e7a840","updated":"2016-11-22 18:32:44.000000000","message":"Done","commit_id":"753f394612ccedeca3d5a42cc42d14319db21126"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"582bd85401d28b9211bb6f52f1194f5773c5f20c","unresolved":false,"context_lines":[{"line_number":37,"context_line":"       can often be moved into neutron-lib with minimal effort. After inspecting the"},{"line_number":38,"context_line":"       applicable unit tests, rewrite any that are non-optimal."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    #. Search and understand the consumers of the code being rehomed. This may include other"},{"line_number":41,"context_line":"       networking projects in addition to neutron itself. At this point it may be determined"},{"line_number":42,"context_line":"       that the code should be refactored before it is consumed. There are a few common"},{"line_number":43,"context_line":"       strategies for refactoring, and the one chosen will depend on the nature of the code"}],"source_content_type":"text/x-rst","patch_set":21,"id":"7a77a97e_220cb53a","line":40,"range":{"start_line":40,"start_character":75,"end_line":40,"end_character":78},"updated":"2016-11-22 19:15:13.000000000","message":"s/may/must\n\nUse must instead of may in order to be consistent with the first point stating \"Applicable code includes common classes/functions/modules/etc. that are consumed by networking project(s) outside of neutron\"","commit_id":"eecffd0e21c07913bc4c2225aac2ac9f8b7f3579"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"936e114f04884c8ceea2cf9c590d5d1c8fc54ec1","unresolved":false,"context_lines":[{"line_number":37,"context_line":"       can often be moved into neutron-lib with minimal effort. After inspecting the"},{"line_number":38,"context_line":"       applicable unit tests, rewrite any that are non-optimal."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    #. Search and understand the consumers of the code being rehomed. This may include other"},{"line_number":41,"context_line":"       networking projects in addition to neutron itself. At this point it may be determined"},{"line_number":42,"context_line":"       that the code should be refactored before it is consumed. There are a few common"},{"line_number":43,"context_line":"       strategies for refactoring, and the one chosen will depend on the nature of the code"}],"source_content_type":"text/x-rst","patch_set":21,"id":"5a74a57a_78c15d2e","line":40,"range":{"start_line":40,"start_character":75,"end_line":40,"end_character":78},"in_reply_to":"7a77a97e_220cb53a","updated":"2016-11-22 22:15:04.000000000","message":"Done","commit_id":"eecffd0e21c07913bc4c2225aac2ac9f8b7f3579"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"40a0b4d12d0e8d33b201b255446482d3b7bca655","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Rehoming Existing Code"},{"line_number":11,"context_line":"----------------------"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The checklist below aims to provide guidance for developers rehoming (moving) code into"},{"line_number":14,"context_line":"neutron-lib. Rehoming approaches that fall outside the scope herein will need to be"}],"source_content_type":"text/x-rst","patch_set":22,"id":"5a74a57a_2f41553a","line":11,"updated":"2016-11-23 01:29:09.000000000","message":"Reading through [1] it came to me that we should probably instruct contributors that the approach to moving utility functions out of neutron and related projects is to think about oslo.* first, and neutron-lib second.\n\n[1] https://review.openstack.org/#/c/398405/","commit_id":"8b017d1e156393b44bd55008c61f91b81be346e4"}],"doc/source/index.rst":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"425689914854f014edf40d0baae8cdc7b627fbc4","unresolved":false,"context_lines":[{"line_number":18,"context_line":"and third-party projects that aims to provide common functionality across all"},{"line_number":19,"context_line":"such consumers. The library is developed with the following goals in mind:"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- Decouple sub-projects from Neutron (e.g. no direct neutron imports in"},{"line_number":22,"context_line":"  sub-projects)."},{"line_number":23,"context_line":"- Pay down Neutron technical debt via refactoring/re-architecting of"},{"line_number":24,"context_line":"  sub-optimal patterns in their respective neutron-lib implementation."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_2c6567b4","line":21,"updated":"2016-11-17 02:09:23.000000000","message":"e.g. -\u003e i.e.","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"ceba1e825ce0005a61c3fa9a57c28d21059932a6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"and third-party projects that aims to provide common functionality across all"},{"line_number":19,"context_line":"such consumers. The library is developed with the following goals in mind:"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"- Decouple sub-projects from Neutron (e.g. no direct neutron imports in"},{"line_number":22,"context_line":"  sub-projects)."},{"line_number":23,"context_line":"- Pay down Neutron technical debt via refactoring/re-architecting of"},{"line_number":24,"context_line":"  sub-optimal patterns in their respective neutron-lib implementation."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7a77a97e_8157c056","line":21,"in_reply_to":"7a77a97e_2c6567b4","updated":"2016-11-18 22:08:58.000000000","message":"Done","commit_id":"372a377a9484459a31a6c963fd4966c0ab3d849a"}],"doc/source/review-guidelines.rst":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"a905bb7babfdb2891c8a844603a32acee72f7099","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    a test, it needs to be added. Note that tests on things like constants"},{"line_number":17,"context_line":"    are uninteresting, but any code or interface should have a unit test."},{"line_number":18,"context_line":"    You can check coverage by running ``tox -e cover`` and then viewing"},{"line_number":19,"context_line":"    the generated reports."},{"line_number":20,"context_line":"  - Is there a corresponding Depends-On review in neutron removing"},{"line_number":21,"context_line":"    this code, and adding backwards compatibility shims for Mitaka?"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_40567b06","line":19,"updated":"2016-07-07 14:16:10.000000000","message":"I have run into many people who did not know that the reports are in cover/index.html - perhaps point this out?","commit_id":"59313980e1eb7d1f7bd6a661870557bd2aec95f9"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"3e8d6fe30cb23e27ee41181e6c38e9120b2723f4","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    a test, it needs to be added. Note that tests on things like constants"},{"line_number":17,"context_line":"    are uninteresting, but any code or interface should have a unit test."},{"line_number":18,"context_line":"    You can check coverage by running ``tox -e cover`` and then viewing"},{"line_number":19,"context_line":"    the generated reports."},{"line_number":20,"context_line":"  - Is there a corresponding Depends-On review in neutron removing"},{"line_number":21,"context_line":"    this code, and adding backwards compatibility shims for Mitaka?"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1aa78d24_479b9118","line":19,"in_reply_to":"1aa78d24_40567b06","updated":"2016-07-12 12:53:52.000000000","message":"Done","commit_id":"59313980e1eb7d1f7bd6a661870557bd2aec95f9"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"083dc74f28e2fcce3f7a1dd3935949dd59d730a2","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_ deprecation notice for the"},{"line_number":50,"context_line":"  sake of subprojects. This notice shall be removed one month after the neutron-lib"},{"line_number":51,"context_line":"  release that provided the rehomed code, since we expect subprojects to adopt"},{"line_number":52,"context_line":"  rehomed code in that time.  "},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* Any code that imports/uses the following python modules should not be"},{"line_number":55,"context_line":"  moved into neutron-lib:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5da102_d9d46fed","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":30},"updated":"2016-11-02 20:40:14.000000000","message":"nit: trailing space","commit_id":"63d99c28e975e5266c1628f377900b745113e7f7"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"c836a7977b9237bb4c03d3f7431ca1b41e62762f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_ deprecation notice for the"},{"line_number":50,"context_line":"  sake of subprojects. This notice shall be removed one month after the neutron-lib"},{"line_number":51,"context_line":"  release that provided the rehomed code, since we expect subprojects to adopt"},{"line_number":52,"context_line":"  rehomed code in that time.  "},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* Any code that imports/uses the following python modules should not be"},{"line_number":55,"context_line":"  moved into neutron-lib:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5da102_8e437212","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":30},"in_reply_to":"ba5da102_d9d46fed","updated":"2016-11-03 12:40:03.000000000","message":"Done","commit_id":"63d99c28e975e5266c1628f377900b745113e7f7"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5d7280f987dc7aae17ac9573a6093a4ef9b28101","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    but any code or interface should have a unit test, if you cannot"},{"line_number":19,"context_line":"    tell for sure that it is not going to be traversed in some alternative"},{"line_number":20,"context_line":"    way (e.g. tempest/functional coverage)."},{"line_number":21,"context_line":"  - Is there a corresponding Depends-On review in neutron removing code?"},{"line_number":22,"context_line":"  - Do the public APIs have their parameters and return values documented"},{"line_number":23,"context_line":"    using reStructuredText docstring format (see below)?"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a629dbe_89cd4533","line":21,"updated":"2016-11-10 21:49:15.000000000","message":"Since we don\u0027t gate neutron repo against neutron-lib master, does this even make sense? Depends-On will NOT utilize the neutron-lib patch under supposed testing, but the released library.","commit_id":"3e079116f4dae00750bf7833408e7472994e2ec8"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"48b306f50458b22f4ede2c7c7e3032cd79f3b1fe","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    but any code or interface should have a unit test, if you cannot"},{"line_number":19,"context_line":"    tell for sure that it is not going to be traversed in some alternative"},{"line_number":20,"context_line":"    way (e.g. tempest/functional coverage)."},{"line_number":21,"context_line":"  - Is there a corresponding Depends-On review in neutron removing code?"},{"line_number":22,"context_line":"  - Do the public APIs have their parameters and return values documented"},{"line_number":23,"context_line":"    using reStructuredText docstring format (see below)?"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"7a77a97e_06745b33","line":21,"in_reply_to":"9a629dbe_5416414c","updated":"2016-11-15 15:45:39.000000000","message":"My plan is to remove this bullet here and more fully doc the \u0027dummy change\u0027 technique Armando described above unless others have additional comments.","commit_id":"3e079116f4dae00750bf7833408e7472994e2ec8"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"d331cf296f3730d18629206e5f0f7fd4c6eb8921","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    but any code or interface should have a unit test, if you cannot"},{"line_number":19,"context_line":"    tell for sure that it is not going to be traversed in some alternative"},{"line_number":20,"context_line":"    way (e.g. tempest/functional coverage)."},{"line_number":21,"context_line":"  - Is there a corresponding Depends-On review in neutron removing code?"},{"line_number":22,"context_line":"  - Do the public APIs have their parameters and return values documented"},{"line_number":23,"context_line":"    using reStructuredText docstring format (see below)?"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a629dbe_5416414c","line":21,"in_reply_to":"9a629dbe_6ce2ba30","updated":"2016-11-11 16:52:34.000000000","message":"I\u0027d opt just to remove this bullet as I don\u0027t see what it adds. We already discuss \"Understand existing work underway ...\" and the dummy change technique in the contributing doc (as part of this patch).","commit_id":"3e079116f4dae00750bf7833408e7472994e2ec8"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"cda50fc06ae38397d0196888303862ecbfe790c5","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    but any code or interface should have a unit test, if you cannot"},{"line_number":19,"context_line":"    tell for sure that it is not going to be traversed in some alternative"},{"line_number":20,"context_line":"    way (e.g. tempest/functional coverage)."},{"line_number":21,"context_line":"  - Is there a corresponding Depends-On review in neutron removing code?"},{"line_number":22,"context_line":"  - Do the public APIs have their parameters and return values documented"},{"line_number":23,"context_line":"    using reStructuredText docstring format (see below)?"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a629dbe_6ce2ba30","line":21,"in_reply_to":"9a629dbe_89cd4533","updated":"2016-11-11 01:42:29.000000000","message":"You can actually do the reverse. Take a dummy neutron change and use it as depends-on for neutron-lib changes. See [1] for an example:\n\n[1] https://review.openstack.org/#/c/386846/","commit_id":"3e079116f4dae00750bf7833408e7472994e2ec8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5d7280f987dc7aae17ac9573a6093a4ef9b28101","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  The above implies that if you add something, we are stuck with that interface"},{"line_number":46,"context_line":"  for a long time, so be careful."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Removing the code from neutron may include a temporary `debtcollector"},{"line_number":49,"context_line":"  \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_ deprecation notice for the"},{"line_number":50,"context_line":"  sake of subprojects. This notice shall be removed one month after the neutron-lib"},{"line_number":51,"context_line":"  release that provided the rehomed code, since we expect subprojects to adopt"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a629dbe_29aa7919","line":48,"updated":"2016-11-10 21:49:15.000000000","message":"I was under impression that we try to skip that in most cases, except the most intrusive. Isn\u0027t that the case?\n\nI am not too happy about the prospect of adding debtcollector bits, then cleaning them up in a month with another set of patches. Couldn\u0027t we set the process in a way that would not require debtcollector bits and that would reduce the number of patches to land to remove duplicate code in neutron repo?","commit_id":"3e079116f4dae00750bf7833408e7472994e2ec8"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"d331cf296f3730d18629206e5f0f7fd4c6eb8921","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  The above implies that if you add something, we are stuck with that interface"},{"line_number":46,"context_line":"  for a long time, so be careful."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Removing the code from neutron may include a temporary `debtcollector"},{"line_number":49,"context_line":"  \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_ deprecation notice for the"},{"line_number":50,"context_line":"  sake of subprojects. This notice shall be removed one month after the neutron-lib"},{"line_number":51,"context_line":"  release that provided the rehomed code, since we expect subprojects to adopt"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a629dbe_20698cf9","line":48,"in_reply_to":"9a629dbe_29aa7919","updated":"2016-11-11 16:52:34.000000000","message":"I agree it would be nice to remove this step.\n\n\nAnother option that comes to mind is to identify and warn the impacted projects by creating a bug per impacted project in this scenario. The bug could include details and a +1 month warning for removal. After 1 month, we just remove it in neutron and let consumers deal with the fallout.\nNot sure if this would work; just off the top of my head.","commit_id":"3e079116f4dae00750bf7833408e7472994e2ec8"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"8e8808d466d87784fb7fae6aad53b4026d08724a","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  The above implies that if you add something, we are stuck with that interface"},{"line_number":59,"context_line":"  for a long time, so be careful."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Removing the code from neutron can be done without a temporary `debtcollector"},{"line_number":62,"context_line":"  \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_ notice as follows:"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  - Create a bug for neutron that identifies all the impacted code in neutron."},{"line_number":65,"context_line":"    In the bug indicate +1 month for the change to happen."}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a77a97e_317510cb","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":74},"updated":"2016-11-15 17:05:08.000000000","message":"Reviewers: please note this subsection is an attempt to streamline the process as a result of previous comments [1]. The idea is not need additional patch sets/code to add/remove deprecation notices in neutron. Given there\u0027s only a 1 month deprecation; this additional work seems like overhead.\n\n\n\n[1] https://review.openstack.org/#/c/331338/10/doc/source/review-guidelines.rst@48","commit_id":"21056765d5b637516163bca132702f3d7b9debf6"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"d64306a0f5bc42f158ceede802d300d8ee889d1a","unresolved":false,"context_lines":[{"line_number":61,"context_line":"* Removing the code from neutron can be done without a temporary `debtcollector"},{"line_number":62,"context_line":"  \u003chttp://docs.openstack.org/developer/debtcollector\u003e`_ notice by following"},{"line_number":63,"context_line":"  the steps described in the \u0027Consume\u0027 phase of the"},{"line_number":64,"context_line":"  ` contributing doc \u003c./contributing.html\u003e`_."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Any code that imports/uses the following python modules should not be"},{"line_number":67,"context_line":"  moved into neutron-lib:"}],"source_content_type":"text/x-rst","patch_set":15,"id":"7a77a97e_56908243","line":64,"range":{"start_line":64,"start_character":3,"end_line":64,"end_character":4},"updated":"2016-11-16 18:39:34.000000000","message":"Darn; this space impacts the link; I\u0027ll have to repush.","commit_id":"43541dc673b55e7f2845af10812774d5b78b0533"}]}
