)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10558,"name":"Dustin Lundquist","email":"dustin@null-ptr.net","username":"dlundquist"},"change_message_id":"2731f508b1f56b07f7369eb9ceac6a2448ca8a03","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Neutron Feature Classification"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The ouline for what the feature classification matrix will provide."},{"line_number":10,"context_line":"Acts as a launching point for users to ready about the intent"},{"line_number":11,"context_line":"of the matrix before reviewing the matrix to find features and plugins"},{"line_number":12,"context_line":"that meet their needs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bab6814e_4a6797ea","line":9,"updated":"2016-05-23 21:19:23.000000000","message":"outline?","commit_id":"3cbf0b33e348d1011c186662b1b0116ab056ec20"},{"author":{"_account_id":10558,"name":"Dustin Lundquist","email":"dustin@null-ptr.net","username":"dlundquist"},"change_message_id":"2731f508b1f56b07f7369eb9ceac6a2448ca8a03","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The ouline for what the feature classification matrix will provide."},{"line_number":10,"context_line":"Acts as a launching point for users to ready about the intent"},{"line_number":11,"context_line":"of the matrix before reviewing the matrix to find features and plugins"},{"line_number":12,"context_line":"that meet their needs."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Will implement a page where users can view Neutron features and plugins and their status."},{"line_number":15,"context_line":"Similar to Nova\u0027s implementation here:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bab6814e_2ad97384","line":12,"updated":"2016-05-23 21:19:23.000000000","message":"This needs some editing it difficult to discern meaning.\n* What acts? This outline?\n* Did you mean \u0027... for users to read about ...\u0027?","commit_id":"3cbf0b33e348d1011c186662b1b0116ab056ec20"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"4b8e138671924e365383a887af45496b30f546ac","unresolved":false,"context_lines":[{"line_number":12,"context_line":"of the matrix before reviewing the matrix to find features and plugins"},{"line_number":13,"context_line":"that meet their needs."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Will implement a page where users can view Neutron features and plugins and their status."},{"line_number":16,"context_line":"Similar to Nova\u0027s implementation here:"},{"line_number":17,"context_line":"http://docs.openstack.org/developer/nova/feature_classification.html"},{"line_number":18,"context_line":"http://docs.openstack.org/developer/nova/support-matrix.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7aa08908_8fe1559d","line":15,"range":{"start_line":15,"start_character":60,"end_line":15,"end_character":64},"updated":"2016-06-06 18:24:26.000000000","message":"s/ and/ ,/","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"4b8e138671924e365383a887af45496b30f546ac","unresolved":false,"context_lines":[{"line_number":12,"context_line":"of the matrix before reviewing the matrix to find features and plugins"},{"line_number":13,"context_line":"that meet their needs."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Will implement a page where users can view Neutron features and plugins and their status."},{"line_number":16,"context_line":"Similar to Nova\u0027s implementation here:"},{"line_number":17,"context_line":"http://docs.openstack.org/developer/nova/feature_classification.html"},{"line_number":18,"context_line":"http://docs.openstack.org/developer/nova/support-matrix.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7aa08908_ec63c718","line":15,"range":{"start_line":15,"start_character":64,"end_line":15,"end_character":75},"updated":"2016-06-06 18:24:26.000000000","message":"should be break into two lines.","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8aa634ad392a7557d573f994aee4aa1e3f5ba4dc","unresolved":false,"context_lines":[{"line_number":12,"context_line":"of the matrix before reviewing the matrix to find features and plugins"},{"line_number":13,"context_line":"that meet their needs."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Will implement a page where users can view Neutron features and plugins and their status."},{"line_number":16,"context_line":"Similar to Nova\u0027s implementation here:"},{"line_number":17,"context_line":"http://docs.openstack.org/developer/nova/feature_classification.html"},{"line_number":18,"context_line":"http://docs.openstack.org/developer/nova/support-matrix.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"bacf61ea_da585859","line":15,"range":{"start_line":15,"start_character":72,"end_line":15,"end_character":89},"updated":"2016-07-28 00:13:56.000000000","message":"nit: this exceeds the limit of characters for the title","commit_id":"a4dabe3c2a8396889625306b394f4030db777d6c"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"a766d593fe1d57130b59dd21ec1a177964622106","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The feature classification matrix will provide information about"},{"line_number":10,"context_line":"plugins and the features they support."},{"line_number":11,"context_line":"Acts as a launching point for users to ready about the intent"},{"line_number":12,"context_line":"of the matrix before reviewing the matrix to find features and plugins"},{"line_number":13,"context_line":"that meet their needs."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"bacf61ea_f244a34a","line":11,"range":{"start_line":11,"start_character":39,"end_line":11,"end_character":44},"updated":"2016-08-01 20:26:45.000000000","message":"typo: read","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"a766d593fe1d57130b59dd21ec1a177964622106","unresolved":false,"context_lines":[{"line_number":12,"context_line":"of the matrix before reviewing the matrix to find features and plugins"},{"line_number":13,"context_line":"that meet their needs."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Will implement a page where users can view Neutron features and plugins and their status."},{"line_number":16,"context_line":"Similar to Nova\u0027s implementation here:"},{"line_number":17,"context_line":"http://docs.openstack.org/developer/nova/feature_classification.html"},{"line_number":18,"context_line":"http://docs.openstack.org/developer/nova/support-matrix.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"bacf61ea_b21fcb59","line":15,"range":{"start_line":15,"start_character":71,"end_line":15,"end_character":72},"updated":"2016-08-01 20:26:45.000000000","message":"nit: too long line.","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"85c8d1306bf3db396e3a6931cb3d14368ad4bad8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Neutron Feature Classification"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The feature classification matrix will provide information about"},{"line_number":10,"context_line":"plugins and the features they support."},{"line_number":11,"context_line":"Acts as a launching point for users to read about the intent"},{"line_number":12,"context_line":"of the matrix before reviewing the matrix to find features and plugins"},{"line_number":13,"context_line":"that meet their needs."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":27,"id":"9ad45d7e_ca25b609","line":10,"range":{"start_line":10,"start_character":12,"end_line":10,"end_character":15},"updated":"2016-08-10 13:58:45.000000000","message":"nit: s/the//","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"change_message_id":"8cb0529cf86c47c6a120662a1ad5bb17d8702a03","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Co-Authored-By: Darek Smigiel \u003cdariusz.smigiel@intel.com\u003e"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Partially Closes-Bug: #1580327"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I67f4dc67883623decdbf136c598eb9e2d0bc24c4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":36,"id":"9a89bdaa_7f0f19e1","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":30},"updated":"2016-09-12 12:20:09.000000000","message":"You might be looking for the \"Partial-Bug\" tag to indicate that this fix doesn\u0027t close the bug completely","commit_id":"7162af3c69cb3aed690491248c2b6f99c10a4ef9"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1b5842b263b222bbed7cf4e80b8facf07c437ad8","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Neutron Feature Classification"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The feature classification matrix will provide information about"},{"line_number":10,"context_line":"features that Neutron offers and the voting CI systems ensuring"},{"line_number":11,"context_line":"feature completeness."},{"line_number":12,"context_line":"Acts as a launching point for users to read about the intent"},{"line_number":13,"context_line":"of the matrix before reviewing the matrix to find features and plugins"},{"line_number":14,"context_line":"that meet their needs."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Will implement a page where users can view Neutron features"},{"line_number":17,"context_line":"and their maturity."},{"line_number":18,"context_line":"Similar to Nova\u0027s implementation here:"},{"line_number":19,"context_line":"http://docs.openstack.org/developer/nova/feature_classification.html"},{"line_number":20,"context_line":"http://docs.openstack.org/developer/nova/support-matrix.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":49,"id":"9a629dbe_08cd8a30","line":17,"range":{"start_line":10,"start_character":37,"end_line":17,"end_character":19},"updated":"2016-11-11 19:33:32.000000000","message":"nova !\u003d neutron. We don\u0027t hold drivers in tree, I am not 100% in agreement with the way the matrixes have been worked out. More inline.","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"33845aae0b1917a809c1d1d2a0268f2b6a218b70","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Co-Authored-By: Darek Smigiel \u003cdariusz.smigiel@intel.com\u003e"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Partially Closes-Bug: #1580327"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I67f4dc67883623decdbf136c598eb9e2d0bc24c4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":51,"id":"3a71b18c_ea29088b","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":20},"updated":"2016-12-07 15:59:26.000000000","message":"There\u0027s Partial-Bug, Closes-Bug, and Related-Bug, I don\u0027t see \u0027Partially Closes-Bug\u0027, is this new?","commit_id":"9d3f1e0ce894dec1d17190851d25a2a2dfdfa800"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"a88f71c39a8c0c63122398f0a3d18a5fd8466f07","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Co-Authored-By: Darek Smigiel \u003cdariusz.smigiel@intel.com\u003e"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Partially Closes-Bug: #1580327"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I67f4dc67883623decdbf136c598eb9e2d0bc24c4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":51,"id":"3a71b18c_2a16a055","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":20},"in_reply_to":"3a71b18c_ea29088b","updated":"2016-12-07 16:07:02.000000000","message":"Done","commit_id":"9d3f1e0ce894dec1d17190851d25a2a2dfdfa800"}],"doc/source/_static/support_matrix.css":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"f32cdaef2ce7631d2fea21b711852bd61d72fac2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7aa08908_b339c9a6","updated":"2016-06-07 21:48:42.000000000","message":"Same comment as support_matrix.py; it would be nice if this file was in a common repo rather than duplicated among projects.","commit_id":"d2f8650dc2918e881978b9eafefe53f939d2d2ee"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8aa634ad392a7557d573f994aee4aa1e3f5ba4dc","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    font-weight: bold;"},{"line_number":17,"context_line":"}"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":".sp_impl_complete {"},{"line_number":21,"context_line":"    color: rgb(0, 120, 0);"},{"line_number":22,"context_line":"    font-weight: normal;"}],"source_content_type":"text/css","patch_set":16,"id":"bacf61ea_d534a9df","line":19,"updated":"2016-07-28 00:13:56.000000000","message":"nit: extra break line","commit_id":"a4dabe3c2a8396889625306b394f4030db777d6c"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":".sp_feature_mandatory {"},{"line_number":3,"context_line":"    font-weight: bold;"},{"line_number":4,"context_line":"}"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":".sp_feature_optional {"},{"line_number":7,"context_line":"}"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":".sp_feature_choice {"},{"line_number":10,"context_line":"    font-style: italic;"},{"line_number":11,"context_line":"    font-weight: bold;"},{"line_number":12,"context_line":"}"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":".sp_feature_condition {"},{"line_number":15,"context_line":"    font-style: italic;"},{"line_number":16,"context_line":"    font-weight: bold;"},{"line_number":17,"context_line":"}"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":".sp_impl_complete {"},{"line_number":20,"context_line":"    color: rgb(0, 120, 0);"},{"line_number":21,"context_line":"    font-weight: normal;"},{"line_number":22,"context_line":"}"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":".sp_impl_missing {"},{"line_number":25,"context_line":"    color: rgb(120, 0, 0);"},{"line_number":26,"context_line":"    font-weight: normal;"},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":".sp_impl_partial {"},{"line_number":30,"context_line":"    color: rgb(170, 170, 0);"},{"line_number":31,"context_line":"    font-weight: normal;"},{"line_number":32,"context_line":"}"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":".sp_impl_unknown {"},{"line_number":35,"context_line":"    color: rgb(170, 170, 170);"},{"line_number":36,"context_line":"    font-weight: normal;"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":".sp_impl_summary {"},{"line_number":40,"context_line":"    font-size: 2em;"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":".sp_cli {"},{"line_number":44,"context_line":"    font-family: monospace;"}],"source_content_type":"text/css","patch_set":64,"id":"7a3c09a3_fb35f1d9","line":41,"range":{"start_line":2,"start_character":0,"end_line":41,"end_character":1},"updated":"2017-01-16 14:55:25.000000000","message":"A lot of these don\u0027t match with the status definitions in [1] anymore. This could be causing problems with formatting the table, since they\u0027re used on L318, L341, and L393 of [2].\n\n[1] https://review.openstack.org/#/c/318192/64/doc/source/devref/support_matrix.ini\n[2] https://review.openstack.org/#/c/318192/64/doc/source/ext/support_matrix.py","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":".sp_feature_mandatory {"},{"line_number":3,"context_line":"    font-weight: bold;"},{"line_number":4,"context_line":"}"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":".sp_feature_optional {"},{"line_number":7,"context_line":"}"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":".sp_feature_choice {"},{"line_number":10,"context_line":"    font-style: italic;"},{"line_number":11,"context_line":"    font-weight: bold;"},{"line_number":12,"context_line":"}"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":".sp_feature_condition {"},{"line_number":15,"context_line":"    font-style: italic;"},{"line_number":16,"context_line":"    font-weight: bold;"},{"line_number":17,"context_line":"}"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":".sp_impl_complete {"},{"line_number":20,"context_line":"    color: rgb(0, 120, 0);"},{"line_number":21,"context_line":"    font-weight: normal;"},{"line_number":22,"context_line":"}"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":".sp_impl_missing {"},{"line_number":25,"context_line":"    color: rgb(120, 0, 0);"},{"line_number":26,"context_line":"    font-weight: normal;"},{"line_number":27,"context_line":"}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":".sp_impl_partial {"},{"line_number":30,"context_line":"    color: rgb(170, 170, 0);"},{"line_number":31,"context_line":"    font-weight: normal;"},{"line_number":32,"context_line":"}"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":".sp_impl_unknown {"},{"line_number":35,"context_line":"    color: rgb(170, 170, 170);"},{"line_number":36,"context_line":"    font-weight: normal;"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":".sp_impl_summary {"},{"line_number":40,"context_line":"    font-size: 2em;"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":".sp_cli {"},{"line_number":44,"context_line":"    font-family: monospace;"}],"source_content_type":"text/css","patch_set":64,"id":"7a3c09a3_c2d5201c","line":41,"range":{"start_line":2,"start_character":0,"end_line":41,"end_character":1},"in_reply_to":"7a3c09a3_fb35f1d9","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"}],"doc/source/conf.py":[{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"c3c9e84b83b988a84de8a355570fa13a036a8fa8","unresolved":false,"context_lines":[{"line_number":50,"context_line":"              \u0027sphinx.ext.graphviz\u0027,"},{"line_number":51,"context_line":"              \u0027sphinx.ext.todo\u0027,"},{"line_number":52,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":53,"context_line":"              \u0027support_matrix\u0027, ]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"todo_include_todos \u003d True"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_477052a4","line":53,"range":{"start_line":53,"start_character":30,"end_line":53,"end_character":31},"updated":"2016-06-01 18:22:42.000000000","message":"nit: don\u0027t think this is required.","commit_id":"73535a4165bc37c0cdf837febe110b2c7ed3fb62"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"7ed8409294ddcb899a8cadda8dec544fddde2f11","unresolved":false,"context_lines":[{"line_number":50,"context_line":"              \u0027sphinx.ext.graphviz\u0027,"},{"line_number":51,"context_line":"              \u0027sphinx.ext.todo\u0027,"},{"line_number":52,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":53,"context_line":"              \u0027support_matrix\u0027, ]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"todo_include_todos \u003d True"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_440f9936","line":53,"range":{"start_line":53,"start_character":30,"end_line":53,"end_character":31},"in_reply_to":"9abb7d3a_477052a4","updated":"2016-06-02 05:09:54.000000000","message":"Done","commit_id":"73535a4165bc37c0cdf837febe110b2c7ed3fb62"}],"doc/source/devref/feature_classification.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5d1f22e7858193c6d6725e742f030f853f196d79","unresolved":false,"context_lines":[{"line_number":18,"context_line":"This document aims to define how we describe features listed in the"},{"line_number":19,"context_line":":doc:`support_matrix`."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Goals"},{"line_number":22,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Our users want the features they rely on to be reliable and always continue"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_e89ce56b","line":21,"updated":"2016-05-26 17:02:18.000000000","message":"I wonder if we want to move this boiler place looking stuff to a more central location some where.\n\nIf it helps you could just link to the Nova one:\nhttp://docs.openstack.org/developer/nova/feature_classification.html#concepts","commit_id":"3cbf0b33e348d1011c186662b1b0116ab056ec20"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"c3c9e84b83b988a84de8a355570fa13a036a8fa8","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"      not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"      a copy of the License at"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"          http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"      Unless required by applicable law or agreed to in writing, software"},{"line_number":9,"context_line":"      distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":10,"context_line":"      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":11,"context_line":"      License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"      under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":"Feature Classification"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_87707a73","line":12,"range":{"start_line":2,"start_character":2,"end_line":12,"end_character":24},"updated":"2016-06-01 18:22:42.000000000","message":"not sure if license is required in rst docs. I don\u0027t think it should be there but lets see what others say.","commit_id":"73535a4165bc37c0cdf837febe110b2c7ed3fb62"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"7ed8409294ddcb899a8cadda8dec544fddde2f11","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"      not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"      a copy of the License at"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"          http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"      Unless required by applicable law or agreed to in writing, software"},{"line_number":9,"context_line":"      distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":10,"context_line":"      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":11,"context_line":"      License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"      under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":"Feature Classification"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_47167b4c","line":12,"range":{"start_line":2,"start_character":2,"end_line":12,"end_character":24},"in_reply_to":"9abb7d3a_87707a73","updated":"2016-06-02 05:09:54.000000000","message":"Done","commit_id":"73535a4165bc37c0cdf837febe110b2c7ed3fb62"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"c3c9e84b83b988a84de8a355570fa13a036a8fa8","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  stable by good tests. They will get a good experience if they stick to"},{"line_number":33,"context_line":"  using those features."},{"line_number":34,"context_line":"  Please note that the tests are specific to particular combinations of"},{"line_number":35,"context_line":"  technologies. A deployment\u0027s choice of plugins make a big difference to "},{"line_number":36,"context_line":"  what features will work."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Get help for the features that are not in the above state, and warn our"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_fc4f598f","line":35,"range":{"start_line":35,"start_character":73,"end_line":35,"end_character":74},"updated":"2016-06-01 18:22:42.000000000","message":"nit remove extra space","commit_id":"73535a4165bc37c0cdf837febe110b2c7ed3fb62"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"7ed8409294ddcb899a8cadda8dec544fddde2f11","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  stable by good tests. They will get a good experience if they stick to"},{"line_number":33,"context_line":"  using those features."},{"line_number":34,"context_line":"  Please note that the tests are specific to particular combinations of"},{"line_number":35,"context_line":"  technologies. A deployment\u0027s choice of plugins make a big difference to "},{"line_number":36,"context_line":"  what features will work."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Get help for the features that are not in the above state, and warn our"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_2711b752","line":35,"range":{"start_line":35,"start_character":73,"end_line":35,"end_character":74},"in_reply_to":"9abb7d3a_fc4f598f","updated":"2016-06-02 05:09:54.000000000","message":"Done","commit_id":"73535a4165bc37c0cdf837febe110b2c7ed3fb62"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Our users want the features they rely on to be reliable and always continue"},{"line_number":12,"context_line":"to solve for their use case."},{"line_number":13,"context_line":"When things break, users request that we solve their issues quickly."},{"line_number":14,"context_line":"It would be better if we never had those regressions in the first place."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_d2df4467","line":12,"updated":"2016-06-07 15:43:31.000000000","message":"Change to:\nOur users want features to become and remain reliable, while solving for their use cases.","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Our users want the features they rely on to be reliable and always continue"},{"line_number":12,"context_line":"to solve for their use case."},{"line_number":13,"context_line":"When things break, users request that we solve their issues quickly."},{"line_number":14,"context_line":"It would be better if we never had those regressions in the first place."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_0f2b5a95","line":12,"in_reply_to":"7aa08908_d2df4467","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Our users want the features they rely on to be reliable and always continue"},{"line_number":12,"context_line":"to solve for their use case."},{"line_number":13,"context_line":"When things break, users request that we solve their issues quickly."},{"line_number":14,"context_line":"It would be better if we never had those regressions in the first place."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"We are taking a two-pronged approach:"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_d222a451","line":14,"updated":"2016-06-07 15:43:31.000000000","message":"Change to:\nWhen regressions occur, users request solutions almost immediately, signifying the importance of not having regressions in the first place.","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Our users want the features they rely on to be reliable and always continue"},{"line_number":12,"context_line":"to solve for their use case."},{"line_number":13,"context_line":"When things break, users request that we solve their issues quickly."},{"line_number":14,"context_line":"It would be better if we never had those regressions in the first place."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"We are taking a two-pronged approach:"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_4f1f226c","line":14,"in_reply_to":"7aa08908_d222a451","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* Get help for the features that are not in the above state, and warn our"},{"line_number":26,"context_line":"  users about the risks of using those features before they are ready."},{"line_number":27,"context_line":"  It should make it much clearer how to help improve the feature."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Concepts"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_921e5c5d","line":27,"updated":"2016-06-07 15:43:31.000000000","message":"Change to:\nusing those features before they are ready, making it much clearer how to help improve the feature.","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* Get help for the features that are not in the above state, and warn our"},{"line_number":26,"context_line":"  users about the risks of using those features before they are ready."},{"line_number":27,"context_line":"  It should make it much clearer how to help improve the feature."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Concepts"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_cf0b1229","line":27,"in_reply_to":"7aa08908_921e5c5d","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Users"},{"line_number":35,"context_line":"-----"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"These are the users we will talk about in this document:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_271f686d","line":37,"updated":"2016-06-07 15:43:31.000000000","message":"Change to:\nThe users discussed in this document will be:","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Users"},{"line_number":35,"context_line":"-----"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"These are the users we will talk about in this document:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_0f023a0b","line":37,"in_reply_to":"7aa08908_271f686d","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_a753586a","line":44,"updated":"2016-06-07 15:43:31.000000000","message":"Change to:\n\nNow,\n\nSpecifically, there is likely","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_2a33a4f7","line":44,"in_reply_to":"7aa08908_a753586a","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_27512837","line":45,"updated":"2016-06-07 15:43:31.000000000","message":"Change to:\n\nlikely to be different roles for observer and creator, as well as admin roles for the application developer.","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_6a4f6c6b","line":45,"in_reply_to":"7aa08908_27512837","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":58,"context_line":"----------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"A deployment maps to a specific test environment. A full description of the"},{"line_number":61,"context_line":"environment should be provided, so its possible to reproduce the test results"},{"line_number":62,"context_line":"that are reported for each of the Feature Groups."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Feature Group Maturity"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_271928d8","line":61,"updated":"2016-06-07 15:43:31.000000000","message":"Change its to it\u0027s","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":58,"context_line":"----------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"A deployment maps to a specific test environment. A full description of the"},{"line_number":61,"context_line":"environment should be provided, so its possible to reproduce the test results"},{"line_number":62,"context_line":"that are reported for each of the Feature Groups."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Feature Group Maturity"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_4a5430fe","line":61,"in_reply_to":"7aa08908_271928d8","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Experimental features should be used with extreme caution."},{"line_number":83,"context_line":"They are likely to have little or no upstream testing."},{"line_number":84,"context_line":"With little testing there are likely to be many unknown bugs."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_472d54fd","line":84,"updated":"2016-06-07 15:43:31.000000000","message":"Change to:\n\nIncomplete features are those that don\u0027t have enough functionality to satisfy real world use cases.  And, as such, should be regarded in this manner:\n\n* Experimental features should be used with extreme caution\n* They are likely to have little or no upstream testing\n* With little testing there are likely to be many unknown bugs","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Experimental features should be used with extreme caution."},{"line_number":83,"context_line":"They are likely to have little or no upstream testing."},{"line_number":84,"context_line":"With little testing there are likely to be many unknown bugs."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_eadfdc66","line":84,"in_reply_to":"7aa08908_472d54fd","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":96,"context_line":"currently its largely when a feature is supported by all drivers. Note that"},{"line_number":97,"context_line":"any new drivers need to prove they support all required features before it"},{"line_number":98,"context_line":"would be allowed in upstream Neutron."},{"line_number":99,"context_line":"Please note that this list is technically unrelated to the DefCore"},{"line_number":100,"context_line":"effort, despite there being obvious parallels that could be drawn."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Deployment Rating for a Feature Group"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_e79a806d","line":99,"updated":"2016-06-07 15:43:31.000000000","message":"Break here when it\u0027s a part of the paragraph, remove.","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":96,"context_line":"currently its largely when a feature is supported by all drivers. Note that"},{"line_number":97,"context_line":"any new drivers need to prove they support all required features before it"},{"line_number":98,"context_line":"would be allowed in upstream Neutron."},{"line_number":99,"context_line":"Please note that this list is technically unrelated to the DefCore"},{"line_number":100,"context_line":"effort, despite there being obvious parallels that could be drawn."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Deployment Rating for a Feature Group"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_eac6bc98","line":99,"in_reply_to":"7aa08908_e79a806d","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":105,"context_line":"The deployment rating is purely about the state of the tests for each"},{"line_number":106,"context_line":"Feature Group on a particular deployment."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"There will the following ratings:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* unknown"},{"line_number":111,"context_line":"* not implemented"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_2706481d","line":108,"updated":"2016-06-07 15:43:31.000000000","message":"Change to:\n\nThe ratings will be:","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":105,"context_line":"The deployment rating is purely about the state of the tests for each"},{"line_number":106,"context_line":"Feature Group on a particular deployment."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"There will the following ratings:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* unknown"},{"line_number":111,"context_line":"* not implemented"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_8a44581b","line":108,"in_reply_to":"7aa08908_2706481d","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":111,"context_line":"* not implemented"},{"line_number":112,"context_line":"* implemented: self declare the tempest tests pass"},{"line_number":113,"context_line":"* regularly tested: tested by third party CI"},{"line_number":114,"context_line":"* checked: Tested as part of the check or gate queue"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":117,"context_line":"system, but so we can make progress, this will be a manual inspection that is"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_e72f2086","line":114,"updated":"2016-06-07 15:43:31.000000000","message":"nit: Tested is capital, nothing else is though","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":19611,"name":"Brian Stajkowski","email":"brian.stajkowski@rackspace.com","username":"ski"},"change_message_id":"90d058d1647351295ce9156c7083b186cb6ec133","unresolved":false,"context_lines":[{"line_number":116,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":117,"context_line":"system, but so we can make progress, this will be a manual inspection that is"},{"line_number":118,"context_line":"documented by an hand written ini file. Ideally, this will be reviewed every"},{"line_number":119,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7aa08908_07022cb4","line":119,"updated":"2016-06-07 15:43:31.000000000","message":"The eventual goal is to automate this list from some third party CI reporting\nsystem.  In the interest of progress, it will be a manual inspection that is documented by an hand written ini file, and it will be reviewed every milestone, ideally.","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"561f5580d7b0c87fff1d1be5feaa0f74691a2687","unresolved":false,"context_lines":[{"line_number":68,"context_line":"specific to a particular deployment. That detail is covered in the deployment"},{"line_number":69,"context_line":"rating for each feature group."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"We are starting out these Feature Group ratings:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* Incomplete"},{"line_number":74,"context_line":"* Experimental"}],"source_content_type":"text/x-rst","patch_set":14,"id":"1aa78d24_f58a2863","line":71,"range":{"start_line":71,"start_character":19,"end_line":71,"end_character":20},"updated":"2016-07-11 19:15:01.000000000","message":"with","commit_id":"6867c6849b30ff5e2d41b3176239aaf7aff878c7"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8aa634ad392a7557d573f994aee4aa1e3f5ba4dc","unresolved":false,"context_lines":[{"line_number":68,"context_line":"specific to a particular deployment. That detail is covered in the deployment"},{"line_number":69,"context_line":"rating for each feature group."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"We are starting out with these Feature Group ratings:"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* Incomplete"},{"line_number":74,"context_line":"* Experimental"}],"source_content_type":"text/x-rst","patch_set":16,"id":"bacf61ea_75c7bd45","line":71,"updated":"2016-07-28 00:13:56.000000000","message":"I\u0027m not sure if using examples can be useful but maybe just make sense in certain point of the time","commit_id":"a4dabe3c2a8396889625306b394f4030db777d6c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"809312fdc5b8445792f6af681ed2107958fa9b9c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"* checked: Tested as part of the check or gate queue"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":117,"context_line":"system, but so we can make progress, this will be a manual inspection that is"},{"line_number":118,"context_line":"documented by an hand written ini file. Ideally, this will be reviewed every"},{"line_number":119,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":17,"id":"bacf61ea_0b78b68e","line":117,"range":{"start_line":117,"start_character":8,"end_line":117,"end_character":11},"updated":"2016-07-28 17:28:06.000000000","message":"nit: ??","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"9c117b1124d5dcd284e8de47aaa980f1c31beee5","unresolved":false,"context_lines":[{"line_number":114,"context_line":"* checked: Tested as part of the check or gate queue"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":117,"context_line":"system, but so we can make progress, this will be a manual inspection that is"},{"line_number":118,"context_line":"documented by an hand written ini file. Ideally, this will be reviewed every"},{"line_number":119,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":17,"id":"bacf61ea_f4473d75","line":117,"range":{"start_line":117,"start_character":8,"end_line":117,"end_character":11},"in_reply_to":"bacf61ea_0b78b68e","updated":"2016-08-02 16:50:30.000000000","message":"Done","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":22218,"name":"Sindhu Devale","email":"sindhu.devale@intel.com","username":"sindhudevale"},"change_message_id":"809312fdc5b8445792f6af681ed2107958fa9b9c","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":117,"context_line":"system, but so we can make progress, this will be a manual inspection that is"},{"line_number":118,"context_line":"documented by an hand written ini file. Ideally, this will be reviewed every"},{"line_number":119,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":17,"id":"bacf61ea_eb3562da","line":118,"range":{"start_line":118,"start_character":14,"end_line":118,"end_character":16},"updated":"2016-07-28 17:28:06.000000000","message":"nit: a or the?","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"9c117b1124d5dcd284e8de47aaa980f1c31beee5","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":117,"context_line":"system, but so we can make progress, this will be a manual inspection that is"},{"line_number":118,"context_line":"documented by an hand written ini file. Ideally, this will be reviewed every"},{"line_number":119,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":17,"id":"bacf61ea_345a7551","line":118,"range":{"start_line":118,"start_character":14,"end_line":118,"end_character":16},"in_reply_to":"bacf61ea_eb3562da","updated":"2016-08-02 16:50:30.000000000","message":"Done","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Feature Classification"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"This document aims to define how we describe features listed in the"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_d8e6d042","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":22},"updated":"2016-08-11 23:22:09.000000000","message":"Use sentence case: Feature classification\nSee: http://docs.openstack.org/contributor-guide/rst-conv/titles.html","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Feature Classification"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"This document aims to define how we describe features listed in the"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_6e2415c6","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":22},"in_reply_to":"9ad45d7e_d8e6d042","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Feature Classification"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"This document aims to define how we describe features listed in the"},{"line_number":6,"context_line":":doc:`support_matrix`."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Goals"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_24c4393e","line":6,"range":{"start_line":5,"start_character":0,"end_line":6,"end_character":22},"updated":"2016-08-11 23:22:09.000000000","message":"This document describes how features are listed in the\n:doc:`support_matrix`.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Feature Classification"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"This document aims to define how we describe features listed in the"},{"line_number":6,"context_line":":doc:`support_matrix`."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Goals"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_425be52e","line":6,"range":{"start_line":5,"start_character":0,"end_line":6,"end_character":22},"in_reply_to":"9ad45d7e_24c4393e","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":6,"context_line":":doc:`support_matrix`."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Goals"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Our users want the features they rely on to be reliable and always continue"},{"line_number":12,"context_line":"to solve for their use case."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_0a7f77e0","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":5},"updated":"2016-08-11 23:22:09.000000000","message":"Second level headings should use ~~~~~~~\nSee: http://docs.openstack.org/contributor-guide/rst-conv/titles.html","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":6,"context_line":":doc:`support_matrix`."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Goals"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Our users want the features they rely on to be reliable and always continue"},{"line_number":12,"context_line":"to solve for their use case."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_a26741e9","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":5},"in_reply_to":"9ad45d7e_0a7f77e0","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Goals"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Our users want the features they rely on to be reliable and always continue"},{"line_number":12,"context_line":"to solve for their use case."},{"line_number":13,"context_line":"When things break, users request that we solve their issues quickly."},{"line_number":14,"context_line":"It would be better if we never had those regressions in the first place."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"We are taking a two-pronged approach:"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_8af6c78c","line":14,"range":{"start_line":11,"start_character":0,"end_line":14,"end_character":72},"updated":"2016-08-11 23:22:09.000000000","message":"The most important features for users must be reliable and must continue to solve their use cases.\nOur users request that we solve their issues quickly and note that it would be better if regressions did not happen in the first place.\nDo not overuse \"we\". See the documentation writing style for guidance: http://docs.openstack.org/contributor-guide/writing-style/general-writing-guidelines.html#write-in-second-person","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Goals"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Our users want the features they rely on to be reliable and always continue"},{"line_number":12,"context_line":"to solve for their use case."},{"line_number":13,"context_line":"When things break, users request that we solve their issues quickly."},{"line_number":14,"context_line":"It would be better if we never had those regressions in the first place."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"We are taking a two-pronged approach:"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_42800547","line":14,"range":{"start_line":11,"start_character":0,"end_line":14,"end_character":72},"in_reply_to":"9ad45d7e_8af6c78c","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"When things break, users request that we solve their issues quickly."},{"line_number":14,"context_line":"It would be better if we never had those regressions in the first place."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"We are taking a two-pronged approach:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"* Tell our users what features are complete, well-documented, and are kept"},{"line_number":19,"context_line":"  stable by good tests. They will get a good experience if they stick to"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_6ab5537c","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":13},"updated":"2016-08-11 23:22:09.000000000","message":"The solution takes","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":13,"context_line":"When things break, users request that we solve their issues quickly."},{"line_number":14,"context_line":"It would be better if we never had those regressions in the first place."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"We are taking a two-pronged approach:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"* Tell our users what features are complete, well-documented, and are kept"},{"line_number":19,"context_line":"  stable by good tests. They will get a good experience if they stick to"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_22e87116","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":13},"in_reply_to":"9ad45d7e_6ab5537c","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"We are taking a two-pronged approach:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"* Tell our users what features are complete, well-documented, and are kept"},{"line_number":19,"context_line":"  stable by good tests. They will get a good experience if they stick to"},{"line_number":20,"context_line":"  using those features."},{"line_number":21,"context_line":"  Please note that the tests are specific to particular combinations of"},{"line_number":22,"context_line":"  technologies. A deployment\u0027s choice of plugins make a big difference to"},{"line_number":23,"context_line":"  what features will work."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_f54ac453","line":20,"range":{"start_line":18,"start_character":2,"end_line":20,"end_character":23},"updated":"2016-08-11 23:22:09.000000000","message":"Inform users whether or not features are complete, well-documented, stable, and tested. This approach ensures a good experience for users of those well-maintained features.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"We are taking a two-pronged approach:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"* Tell our users what features are complete, well-documented, and are kept"},{"line_number":19,"context_line":"  stable by good tests. They will get a good experience if they stick to"},{"line_number":20,"context_line":"  using those features."},{"line_number":21,"context_line":"  Please note that the tests are specific to particular combinations of"},{"line_number":22,"context_line":"  technologies. A deployment\u0027s choice of plugins make a big difference to"},{"line_number":23,"context_line":"  what features will work."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_c2ba350a","line":20,"range":{"start_line":18,"start_character":2,"end_line":20,"end_character":23},"in_reply_to":"9ad45d7e_f54ac453","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"* Tell our users what features are complete, well-documented, and are kept"},{"line_number":19,"context_line":"  stable by good tests. They will get a good experience if they stick to"},{"line_number":20,"context_line":"  using those features."},{"line_number":21,"context_line":"  Please note that the tests are specific to particular combinations of"},{"line_number":22,"context_line":"  technologies. A deployment\u0027s choice of plugins make a big difference to"},{"line_number":23,"context_line":"  what features will work."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* Get help for the features that are not in the above state, and warn our"},{"line_number":26,"context_line":"  users about the risks of using those features before they are ready."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_757b747b","line":23,"range":{"start_line":21,"start_character":0,"end_line":23,"end_character":26},"updated":"2016-08-11 23:22:09.000000000","message":".. note::\n[indented]Tests are specific to particular combinations of  technologies. The deployment\u0027s choice of plugins makes a big difference on whether or not features will work.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":18,"context_line":"* Tell our users what features are complete, well-documented, and are kept"},{"line_number":19,"context_line":"  stable by good tests. They will get a good experience if they stick to"},{"line_number":20,"context_line":"  using those features."},{"line_number":21,"context_line":"  Please note that the tests are specific to particular combinations of"},{"line_number":22,"context_line":"  technologies. A deployment\u0027s choice of plugins make a big difference to"},{"line_number":23,"context_line":"  what features will work."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* Get help for the features that are not in the above state, and warn our"},{"line_number":26,"context_line":"  users about the risks of using those features before they are ready."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_e26bf983","line":23,"range":{"start_line":21,"start_character":0,"end_line":23,"end_character":26},"in_reply_to":"9ad45d7e_757b747b","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"  technologies. A deployment\u0027s choice of plugins make a big difference to"},{"line_number":23,"context_line":"  what features will work."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* Get help for the features that are not in the above state, and warn our"},{"line_number":26,"context_line":"  users about the risks of using those features before they are ready."},{"line_number":27,"context_line":"  It should make it much clearer how to help improve the feature."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Concepts"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_559bd065","line":27,"range":{"start_line":25,"start_character":2,"end_line":27,"end_character":65},"updated":"2016-08-11 23:22:09.000000000","message":"Enable users to get help for the features not yet fully completed and maintained. This approach includes warning  users about the risks of using features before they are ready.The feature classification should also make  clearer how to help improve the feature.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":22,"context_line":"  technologies. A deployment\u0027s choice of plugins make a big difference to"},{"line_number":23,"context_line":"  what features will work."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* Get help for the features that are not in the above state, and warn our"},{"line_number":26,"context_line":"  users about the risks of using those features before they are ready."},{"line_number":27,"context_line":"  It should make it much clearer how to help improve the feature."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Concepts"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_222b5135","line":27,"range":{"start_line":25,"start_character":2,"end_line":27,"end_character":65},"in_reply_to":"9ad45d7e_559bd065","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Concepts"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Some definitions to help understand the later part of the document."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Users"},{"line_number":35,"context_line":"-----"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_07b92dcc","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":67},"updated":"2016-08-11 23:22:09.000000000","message":"These definitions clarify the terminology used throughout this document.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Concepts"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Some definitions to help understand the later part of the document."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Users"},{"line_number":35,"context_line":"-----"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_e2f019cc","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":67},"in_reply_to":"9ad45d7e_07b92dcc","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Users"},{"line_number":35,"context_line":"-----"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"These are the users we will talk about in this document:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_1ab220e5","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":55},"updated":"2016-08-11 23:22:09.000000000","message":"The follwing user types will be referenced in this document:","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Users"},{"line_number":35,"context_line":"-----"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"These are the users we will talk about in this document:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_a2cd8188","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":55},"in_reply_to":"9ad45d7e_1ab220e5","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"These are the users we will talk about in this document:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"},{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_da09a896","line":39,"range":{"start_line":39,"start_character":2,"end_line":39,"end_character":77},"updated":"2016-08-11 23:22:09.000000000","message":"Application deployer: creates and deletes servers both, directly or indirectly, via the APIs.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"6a6d2a59f1fda400dbd7603637cf8420b4f49086","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"These are the users we will talk about in this document:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"},{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"}],"source_content_type":"text/x-rst","patch_set":27,"id":"bacf61ea_31c40091","line":39,"range":{"start_line":39,"start_character":24,"end_line":39,"end_character":77},"updated":"2016-08-03 18:14:06.000000000","message":"nit: creates/deletes servers directly or indirectly via API","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"These are the users we will talk about in this document:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"},{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_42af6594","line":39,"range":{"start_line":39,"start_character":2,"end_line":39,"end_character":77},"in_reply_to":"9ad45d7e_da09a896","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"These are the users we will talk about in this document:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"},{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_dd6882f7","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":70},"updated":"2016-08-11 23:22:09.000000000","message":"Application developer: creates cloud applications. See :ref:`alan-app-developer` for more details about the application developer role in OpenStack.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":37,"context_line":"These are the users we will talk about in this document:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"},{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_228eb127","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":70},"in_reply_to":"9ad45d7e_dd6882f7","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"},{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_984e1839","line":41,"range":{"start_line":41,"start_character":2,"end_line":41,"end_character":39},"updated":"2016-08-11 23:22:09.000000000","message":"Cloud operator: manages the cloud. See :ref:`carlos-cloud-ops` for more details on the cloud operator role in OpenStack.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"},{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_62af097e","line":41,"range":{"start_line":41,"start_character":2,"end_line":41,"end_character":39},"in_reply_to":"9ad45d7e_984e1839","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"},{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_f80ab4d0","line":42,"range":{"start_line":42,"start_character":2,"end_line":42,"end_character":58},"updated":"2016-08-11 23:22:09.000000000","message":"Self-service administrator: both runs and uses the cloud. This user merges the roles of a cloud operator and application developer.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":39,"context_line":"* application deployer: creates/deletes servers, directly or indirect via API"},{"line_number":40,"context_line":"* application developer: creates images and apps that run on the cloud"},{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_c2d7d5eb","line":42,"range":{"start_line":42,"start_character":2,"end_line":42,"end_character":58},"in_reply_to":"9ad45d7e_f80ab4d0","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_d84890ce","line":46,"range":{"start_line":44,"start_character":0,"end_line":46,"end_character":27},"updated":"2016-08-11 23:22:09.000000000","message":"The actual roles of users are more complex than these definitions. Specifically, it is likely the application developer has different roles as an observer, a creator and administrator.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* cloud operator: administers the cloud"},{"line_number":42,"context_line":"* self service administrator: both runs and uses the cloud"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_e2dad916","line":46,"range":{"start_line":44,"start_character":0,"end_line":46,"end_character":27},"in_reply_to":"9ad45d7e_d84890ce","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"6a6d2a59f1fda400dbd7603637cf8420b4f49086","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Feature Group"},{"line_number":51,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"bacf61ea_71f158cd","line":48,"range":{"start_line":47,"start_character":37,"end_line":48,"end_character":13},"updated":"2016-08-03 18:14:06.000000000","message":"nit: can be written as a separate sentence like --\u003e Similarly, there are likely to be various\nlevels of cloud operator permissions. For example, cloud operator with read only permissions can see only a subset of tenants and so on.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Feature Group"},{"line_number":51,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_8222fdff","line":48,"range":{"start_line":47,"start_character":37,"end_line":48,"end_character":13},"in_reply_to":"9ad45d7e_18bd08d8","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Feature Group"},{"line_number":51,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_18bd08d8","line":48,"range":{"start_line":47,"start_character":37,"end_line":48,"end_character":13},"in_reply_to":"bacf61ea_71f158cd","updated":"2016-08-11 23:22:09.000000000","message":"+1","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Now in reality the picture is way more complex. Specifically, there are"},{"line_number":45,"context_line":"likely to be different roles for observer, creator and admin roles for"},{"line_number":46,"context_line":"the application developer. Similarly, there are likely to be various"},{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Feature Group"},{"line_number":51,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_a23e2127","line":48,"range":{"start_line":47,"start_character":37,"end_line":48,"end_character":13},"in_reply_to":"bacf61ea_71f158cd","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Feature Group"},{"line_number":51,"context_line":"-------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To reduce the size of the matrix, we organize the features into groups."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_580b007d","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":13},"updated":"2016-08-11 23:22:09.000000000","message":"Feature group","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":47,"context_line":"levels of cloud operator permissions, some read only, see a subset of"},{"line_number":48,"context_line":"tenants, etc."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Feature Group"},{"line_number":51,"context_line":"-------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To reduce the size of the matrix, we organize the features into groups."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_428765d7","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":13},"in_reply_to":"9ad45d7e_580b007d","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Feature Group"},{"line_number":51,"context_line":"-------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To reduce the size of the matrix, we organize the features into groups."},{"line_number":54,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":55,"context_line":"of scenarios, tests. Typically, this means a set of tempest tests."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_38856cce","line":53,"range":{"start_line":53,"start_character":34,"end_line":53,"end_character":70},"updated":"2016-08-11 23:22:09.000000000","message":"features are organized into groups","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Feature Group"},{"line_number":51,"context_line":"-------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To reduce the size of the matrix, we organize the features into groups."},{"line_number":54,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":55,"context_line":"of scenarios, tests. Typically, this means a set of tempest tests."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_225fd176","line":53,"range":{"start_line":53,"start_character":34,"end_line":53,"end_character":70},"in_reply_to":"9ad45d7e_38856cce","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"-------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To reduce the size of the matrix, we organize the features into groups."},{"line_number":54,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":55,"context_line":"of scenarios, tests. Typically, this means a set of tempest tests."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Deployment"},{"line_number":58,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_58e780ab","line":55,"range":{"start_line":54,"start_character":42,"end_line":55,"end_character":20},"updated":"2016-08-11 23:22:09.000000000","message":"A set of scenarios and tests validates the user stories.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To reduce the size of the matrix, we organize the features into groups."},{"line_number":54,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":55,"context_line":"of scenarios, tests. Typically, this means a set of tempest tests."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Deployment"},{"line_number":58,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_988c58db","line":55,"range":{"start_line":55,"start_character":37,"end_line":55,"end_character":44},"updated":"2016-08-11 23:22:09.000000000","message":"is achieved with a","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"6a6d2a59f1fda400dbd7603637cf8420b4f49086","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To reduce the size of the matrix, we organize the features into groups."},{"line_number":54,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":55,"context_line":"of scenarios, tests. Typically, this means a set of tempest tests."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Deployment"},{"line_number":58,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"bacf61ea_d1b644f8","line":55,"range":{"start_line":55,"start_character":12,"end_line":55,"end_character":13},"updated":"2016-08-03 18:14:06.000000000","message":"nit: and","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":51,"context_line":"-------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To reduce the size of the matrix, we organize the features into groups."},{"line_number":54,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":55,"context_line":"of scenarios, tests. Typically, this means a set of tempest tests."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Deployment"},{"line_number":58,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_a2af412a","line":55,"range":{"start_line":54,"start_character":42,"end_line":55,"end_character":20},"in_reply_to":"9ad45d7e_58e780ab","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To reduce the size of the matrix, we organize the features into groups."},{"line_number":54,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":55,"context_line":"of scenarios, tests. Typically, this means a set of tempest tests."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Deployment"},{"line_number":58,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_42bac56f","line":55,"range":{"start_line":55,"start_character":37,"end_line":55,"end_character":44},"in_reply_to":"9ad45d7e_988c58db","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Deployment"},{"line_number":58,"context_line":"----------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"A deployment maps to a specific test environment. A full description of the"},{"line_number":61,"context_line":"environment should be provided, so its possible to reproduce the test results"},{"line_number":62,"context_line":"that are reported for each of the Feature Groups."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Feature Group Maturity"},{"line_number":65,"context_line":"----------------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_d82ed0a3","line":62,"range":{"start_line":60,"start_character":50,"end_line":62,"end_character":49},"updated":"2016-08-11 23:22:09.000000000","message":"Please provide a full description of the test environment to be able to reproduce the test results reported for each feature group.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":57,"context_line":"Deployment"},{"line_number":58,"context_line":"----------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"A deployment maps to a specific test environment. A full description of the"},{"line_number":61,"context_line":"environment should be provided, so its possible to reproduce the test results"},{"line_number":62,"context_line":"that are reported for each of the Feature Groups."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Feature Group Maturity"},{"line_number":65,"context_line":"----------------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_a20bc12a","line":62,"range":{"start_line":60,"start_character":50,"end_line":62,"end_character":49},"in_reply_to":"9ad45d7e_d82ed0a3","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"environment should be provided, so its possible to reproduce the test results"},{"line_number":62,"context_line":"that are reported for each of the Feature Groups."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Feature Group Maturity"},{"line_number":65,"context_line":"----------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The Feature Group Maturity rating is specific to the API concepts, rather than"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_5811405c","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":22},"updated":"2016-08-11 23:22:09.000000000","message":"Feature group maturity","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":61,"context_line":"environment should be provided, so its possible to reproduce the test results"},{"line_number":62,"context_line":"that are reported for each of the Feature Groups."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Feature Group Maturity"},{"line_number":65,"context_line":"----------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The Feature Group Maturity rating is specific to the API concepts, rather than"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_450daf36","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":22},"in_reply_to":"9ad45d7e_5811405c","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"Feature Group Maturity"},{"line_number":65,"context_line":"----------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The Feature Group Maturity rating is specific to the API concepts, rather than"},{"line_number":68,"context_line":"specific to a particular deployment. That detail is covered in the deployment"},{"line_number":69,"context_line":"rating for each feature group."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The Feature Matrix will be using these Feature Group ratings:"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_b3b85f12","line":68,"range":{"start_line":67,"start_character":0,"end_line":68,"end_character":36},"updated":"2016-08-11 23:22:09.000000000","message":"The feature group maturity rating is API-specific and does not apply to a specific or particular deployment.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":64,"context_line":"Feature Group Maturity"},{"line_number":65,"context_line":"----------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The Feature Group Maturity rating is specific to the API concepts, rather than"},{"line_number":68,"context_line":"specific to a particular deployment. That detail is covered in the deployment"},{"line_number":69,"context_line":"rating for each feature group."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The Feature Matrix will be using these Feature Group ratings:"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_c5307feb","line":68,"range":{"start_line":67,"start_character":0,"end_line":68,"end_character":36},"in_reply_to":"9ad45d7e_b3b85f12","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"----------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The Feature Group Maturity rating is specific to the API concepts, rather than"},{"line_number":68,"context_line":"specific to a particular deployment. That detail is covered in the deployment"},{"line_number":69,"context_line":"rating for each feature group."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The Feature Matrix will be using these Feature Group ratings:"},{"line_number":72,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_3328ef32","line":69,"range":{"start_line":68,"start_character":37,"end_line":69,"end_character":30},"updated":"2016-08-11 23:22:09.000000000","message":"The deployment rating for each feature group covers the deployment-specific information.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":65,"context_line":"----------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The Feature Group Maturity rating is specific to the API concepts, rather than"},{"line_number":68,"context_line":"specific to a particular deployment. That detail is covered in the deployment"},{"line_number":69,"context_line":"rating for each feature group."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The Feature Matrix will be using these Feature Group ratings:"},{"line_number":72,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_a5674be9","line":69,"range":{"start_line":68,"start_character":37,"end_line":69,"end_character":30},"in_reply_to":"9ad45d7e_3328ef32","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"specific to a particular deployment. That detail is covered in the deployment"},{"line_number":69,"context_line":"rating for each feature group."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The Feature Matrix will be using these Feature Group ratings:"},{"line_number":72,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Incomplete"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_d3f073cb","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":61},"updated":"2016-08-11 23:22:09.000000000","message":"Feature group ratings","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":68,"context_line":"specific to a particular deployment. That detail is covered in the deployment"},{"line_number":69,"context_line":"rating for each feature group."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"The Feature Matrix will be using these Feature Group ratings:"},{"line_number":72,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Incomplete"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_8564c7e5","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":61},"in_reply_to":"9ad45d7e_d3f073cb","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"* Complete"},{"line_number":77,"context_line":"* Complete and Required"},{"line_number":78,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Incomplete features are those that don\u0027t have enough functionality to satisfy"},{"line_number":81,"context_line":"real world use cases."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Experimental features should be used with extreme caution."},{"line_number":84,"context_line":"They are likely to have little or no upstream testing."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_7393875b","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":21},"updated":"2016-08-11 23:22:09.000000000","message":"Incomplete features don\u0027t have enough functionality to satisfy real-world use cases.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":76,"context_line":"* Complete"},{"line_number":77,"context_line":"* Complete and Required"},{"line_number":78,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Incomplete features are those that don\u0027t have enough functionality to satisfy"},{"line_number":81,"context_line":"real world use cases."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Experimental features should be used with extreme caution."},{"line_number":84,"context_line":"They are likely to have little or no upstream testing."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_65f27308","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":21},"in_reply_to":"9ad45d7e_7393875b","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Incomplete features are those that don\u0027t have enough functionality to satisfy"},{"line_number":81,"context_line":"real world use cases."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Experimental features should be used with extreme caution."},{"line_number":84,"context_line":"They are likely to have little or no upstream testing."},{"line_number":85,"context_line":"With little testing there are likely to be many unknown bugs."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_d3c35336","line":85,"range":{"start_line":83,"start_character":0,"end_line":85,"end_character":61},"updated":"2016-08-11 23:22:09.000000000","message":"Experimental features probably have little or no upstream testing and they should be used with extreme caution.\nUsing experimental features will likely lead to many unknown bugs.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Incomplete features are those that don\u0027t have enough functionality to satisfy"},{"line_number":81,"context_line":"real world use cases."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Experimental features should be used with extreme caution."},{"line_number":84,"context_line":"They are likely to have little or no upstream testing."},{"line_number":85,"context_line":"With little testing there are likely to be many unknown bugs."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_45f76ff5","line":85,"range":{"start_line":83,"start_character":0,"end_line":85,"end_character":61},"in_reply_to":"9ad45d7e_d3c35336","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":84,"context_line":"They are likely to have little or no upstream testing."},{"line_number":85,"context_line":"With little testing there are likely to be many unknown bugs."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_d3da3316","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":54},"updated":"2016-08-11 23:22:09.000000000","message":"A feature is considered complete if it satisfies the following criteria:","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":84,"context_line":"They are likely to have little or no upstream testing."},{"line_number":85,"context_line":"With little testing there are likely to be many unknown bugs."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_a5dc6b75","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":54},"in_reply_to":"9ad45d7e_d3da3316","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_93fb9b78","line":89,"range":{"start_line":89,"start_character":15,"end_line":89,"end_character":54},"updated":"2016-08-11 23:22:09.000000000","message":"documentation including concept and REST call definition.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_05d45745","line":89,"range":{"start_line":89,"start_character":15,"end_line":89,"end_character":54},"in_reply_to":"9ad45d7e_93fb9b78","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_f3301758","line":90,"range":{"start_line":90,"start_character":25,"end_line":90,"end_character":29},"updated":"2016-08-11 23:22:09.000000000","message":"documentation.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":87,"context_line":"For a feature to be considered complete, we must have:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_e5bdc303","line":90,"range":{"start_line":90,"start_character":25,"end_line":90,"end_character":29},"in_reply_to":"9ad45d7e_f3301758","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_530be37c","line":91,"range":{"start_line":91,"start_character":28,"end_line":91,"end_character":58},"updated":"2016-08-11 23:22:09.000000000","message":"the correct functionality of the feature.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_6540b308","line":91,"range":{"start_line":91,"start_character":28,"end_line":91,"end_character":58},"in_reply_to":"9ad45d7e_530be37c","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"6a6d2a59f1fda400dbd7603637cf8420b4f49086","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"bacf61ea_1190dc4d","line":92,"range":{"start_line":92,"start_character":26,"end_line":92,"end_character":27},"updated":"2016-08-03 18:14:06.000000000","message":"nit: comma not needed here","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_455c8fed","line":92,"range":{"start_line":92,"start_character":26,"end_line":92,"end_character":27},"in_reply_to":"bacf61ea_1190dc4d","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"There are various reasons why a feature, once complete, becomes required, but"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_73526768","line":93,"range":{"start_line":92,"start_character":2,"end_line":93,"end_character":25},"updated":"2016-08-11 23:22:09.000000000","message":"Enough functionality and reliability to be useful in real-world scenarios.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* Complete API docs (concept and REST call definition)"},{"line_number":90,"context_line":"* Complete Administrator docs"},{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"There are various reasons why a feature, once complete, becomes required, but"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_4513ef0d","line":93,"range":{"start_line":92,"start_character":2,"end_line":93,"end_character":25},"in_reply_to":"9ad45d7e_73526768","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"There are various reasons why a feature, once complete, becomes required, but"},{"line_number":97,"context_line":"currently its largely when a feature is supported by all drivers. Note that"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_33d3cfd6","line":94,"range":{"start_line":94,"start_character":2,"end_line":94,"end_character":64},"updated":"2016-08-11 23:22:09.000000000","message":"Low probability of support for the feature being dropped.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":91,"context_line":"* Tempest tests that define if the feature works correctly"},{"line_number":92,"context_line":"* Has enough functionality, and works reliably enough to be useful"},{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"There are various reasons why a feature, once complete, becomes required, but"},{"line_number":97,"context_line":"currently its largely when a feature is supported by all drivers. Note that"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_e502e3b3","line":94,"range":{"start_line":94,"start_character":2,"end_line":94,"end_character":64},"in_reply_to":"9ad45d7e_33d3cfd6","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"There are various reasons why a feature, once complete, becomes required, but"},{"line_number":97,"context_line":"currently its largely when a feature is supported by all drivers. Note that"},{"line_number":98,"context_line":"any new drivers need to prove they support all required features before it"},{"line_number":99,"context_line":"would be allowed in upstream Neutron."},{"line_number":100,"context_line":"Please note that this list is technically unrelated to the DefCore"},{"line_number":101,"context_line":"effort, despite there being obvious parallels that could be drawn."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Deployment Rating for a Feature Group"},{"line_number":104,"context_line":"--------------------------------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_33462f7b","line":101,"range":{"start_line":96,"start_character":0,"end_line":101,"end_character":66},"updated":"2016-08-11 23:22:09.000000000","message":"A feature, once complete, can become required for a variety of reasons. Currently, this happens when a feature is supported by all drivers. \n.. note::\n[indented]Any new drivers must prove that they support all required features before the are merged into neutron.\n\n.. important::\n[indented]Despite the obvious parallels that could be drawn, this list is unrelated to the DefCore effort.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":93,"context_line":"  in real world scenarios"},{"line_number":94,"context_line":"* Unlikely to ever have a reason to drop support for the feature"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"There are various reasons why a feature, once complete, becomes required, but"},{"line_number":97,"context_line":"currently its largely when a feature is supported by all drivers. Note that"},{"line_number":98,"context_line":"any new drivers need to prove they support all required features before it"},{"line_number":99,"context_line":"would be allowed in upstream Neutron."},{"line_number":100,"context_line":"Please note that this list is technically unrelated to the DefCore"},{"line_number":101,"context_line":"effort, despite there being obvious parallels that could be drawn."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Deployment Rating for a Feature Group"},{"line_number":104,"context_line":"--------------------------------------"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_05be17d4","line":101,"range":{"start_line":96,"start_character":0,"end_line":101,"end_character":66},"in_reply_to":"9ad45d7e_33462f7b","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Please note that this list is technically unrelated to the DefCore"},{"line_number":101,"context_line":"effort, despite there being obvious parallels that could be drawn."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Deployment Rating for a Feature Group"},{"line_number":104,"context_line":"--------------------------------------"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The deployment rating is purely about the state of the tests for each"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_f31db773","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":37},"updated":"2016-08-11 23:22:09.000000000","message":"Deployment ratings of feature groups","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Please note that this list is technically unrelated to the DefCore"},{"line_number":101,"context_line":"effort, despite there being obvious parallels that could be drawn."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Deployment Rating for a Feature Group"},{"line_number":104,"context_line":"--------------------------------------"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The deployment rating is purely about the state of the tests for each"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_2587db13","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":37},"in_reply_to":"9ad45d7e_f31db773","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"Deployment Rating for a Feature Group"},{"line_number":104,"context_line":"--------------------------------------"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The deployment rating is purely about the state of the tests for each"},{"line_number":107,"context_line":"Feature Group on a particular deployment."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be the following ratings:"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_33146f4b","line":106,"range":{"start_line":106,"start_character":21,"end_line":106,"end_character":37},"updated":"2016-08-11 23:22:09.000000000","message":"shows only","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":103,"context_line":"Deployment Rating for a Feature Group"},{"line_number":104,"context_line":"--------------------------------------"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The deployment rating is purely about the state of the tests for each"},{"line_number":107,"context_line":"Feature Group on a particular deployment."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be the following ratings:"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_c5723f49","line":106,"range":{"start_line":106,"start_character":21,"end_line":106,"end_character":37},"in_reply_to":"9ad45d7e_33146f4b","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"--------------------------------------"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The deployment rating is purely about the state of the tests for each"},{"line_number":107,"context_line":"Feature Group on a particular deployment."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be the following ratings:"},{"line_number":110,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_730a6727","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":13},"updated":"2016-08-11 23:22:09.000000000","message":"feature group","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":104,"context_line":"--------------------------------------"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The deployment rating is purely about the state of the tests for each"},{"line_number":107,"context_line":"Feature Group on a particular deployment."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be the following ratings:"},{"line_number":110,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_258ebb27","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":13},"in_reply_to":"9ad45d7e_730a6727","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"The deployment rating is purely about the state of the tests for each"},{"line_number":107,"context_line":"Feature Group on a particular deployment."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be the following ratings:"},{"line_number":110,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* unknown"},{"line_number":113,"context_line":"* not implemented"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_4e085a28","line":110,"range":{"start_line":109,"start_character":0,"end_line":110,"end_character":36},"updated":"2016-08-11 23:22:09.000000000","message":"Possible deployment ratings\nDo not use punctuation on headings.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":106,"context_line":"The deployment rating is purely about the state of the tests for each"},{"line_number":107,"context_line":"Feature Group on a particular deployment."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be the following ratings:"},{"line_number":110,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"* unknown"},{"line_number":113,"context_line":"* not implemented"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_05ba97c0","line":110,"range":{"start_line":109,"start_character":0,"end_line":110,"end_character":36},"in_reply_to":"9ad45d7e_4e085a28","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"* regularly tested: tested by third party CI"},{"line_number":116,"context_line":"* checked: Tested as part of the check or gate queue"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":119,"context_line":"system, so we can make progress, this will be a manual inspection that is"},{"line_number":120,"context_line":"documented by a hand written ini file. Ideally, this will be reviewed every"},{"line_number":121,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_6e38bed3","line":118,"range":{"start_line":118,"start_character":4,"end_line":118,"end_character":12},"updated":"2016-08-11 23:22:09.000000000","message":"ultimate","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":115,"context_line":"* regularly tested: tested by third party CI"},{"line_number":116,"context_line":"* checked: Tested as part of the check or gate queue"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":119,"context_line":"system, so we can make progress, this will be a manual inspection that is"},{"line_number":120,"context_line":"documented by a hand written ini file. Ideally, this will be reviewed every"},{"line_number":121,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_45b48fd0","line":118,"range":{"start_line":118,"start_character":4,"end_line":118,"end_character":12},"in_reply_to":"9ad45d7e_6e38bed3","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"659533a058b0cd190ee6cfb4f0669d551ee57a9d","unresolved":false,"context_lines":[{"line_number":116,"context_line":"* checked: Tested as part of the check or gate queue"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":119,"context_line":"system, so we can make progress, this will be a manual inspection that is"},{"line_number":120,"context_line":"documented by a hand written ini file. Ideally, this will be reviewed every"},{"line_number":121,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_6e66feed","line":121,"range":{"start_line":119,"start_character":6,"end_line":121,"end_character":10},"updated":"2016-08-11 23:22:09.000000000","message":". To make some progress, the rating will be manually added to an ini file after the inspection. Ideally, the status will be reviewed for every milestone.","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"187113ca60ee849753c16b5b7ee398b7b147ebba","unresolved":false,"context_lines":[{"line_number":116,"context_line":"* checked: Tested as part of the check or gate queue"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"The eventual goal is to automate this list from some third party CI reporting"},{"line_number":119,"context_line":"system, so we can make progress, this will be a manual inspection that is"},{"line_number":120,"context_line":"documented by a hand written ini file. Ideally, this will be reviewed every"},{"line_number":121,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":27,"id":"9ad45d7e_e5c30337","line":121,"range":{"start_line":119,"start_character":6,"end_line":121,"end_character":10},"in_reply_to":"9ad45d7e_6e66feed","updated":"2016-08-12 15:24:33.000000000","message":"Done","commit_id":"197344ed5923b661bf738e08c649c27579ffaf4c"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"53d4fa87bc2032dc5dc3a2f9f5b7c8677216019e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  indirectly, via the APIs."},{"line_number":46,"context_line":"* Application developer: creates cloud applications."},{"line_number":47,"context_line":"  See `Alan - The App Developer \u003chttp://docs.openstack.org/contributor-guide"},{"line_number":48,"context_line":"  /ux-ui-guidelines/ux-personas/alan-app-developer.html\u003e`_ "},{"line_number":49,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":50,"context_line":"* Cloud operator: manages the cloud. See `Carlos - The Cloud Operator "},{"line_number":51,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide"}],"source_content_type":"text/x-rst","patch_set":29,"id":"3ac371cc_296037ce","line":48,"range":{"start_line":48,"start_character":58,"end_line":48,"end_character":59},"updated":"2016-08-15 17:33:19.000000000","message":"Remove trailing white wpace","commit_id":"847799f7743e85687be157608625686872b824ec"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"f5afd68086cd82f0fc26add4dde59707279c9d25","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  indirectly, via the APIs."},{"line_number":46,"context_line":"* Application developer: creates cloud applications."},{"line_number":47,"context_line":"  See `Alan - The App Developer \u003chttp://docs.openstack.org/contributor-guide"},{"line_number":48,"context_line":"  /ux-ui-guidelines/ux-personas/alan-app-developer.html\u003e`_ "},{"line_number":49,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":50,"context_line":"* Cloud operator: manages the cloud. See `Carlos - The Cloud Operator "},{"line_number":51,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide"}],"source_content_type":"text/x-rst","patch_set":29,"id":"3ac371cc_6994ef36","line":48,"range":{"start_line":48,"start_character":58,"end_line":48,"end_character":59},"in_reply_to":"3ac371cc_296037ce","updated":"2016-08-15 17:43:28.000000000","message":"Done","commit_id":"847799f7743e85687be157608625686872b824ec"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"825ba0e9af2646547094bae76aa0f7cac7783aac","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    or not features will work."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning  users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready.The feature classification"},{"line_number":32,"context_line":"  should also make  clearer how to help improve the feature."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":30,"id":"3ac371cc_9424300d","line":30,"range":{"start_line":30,"start_character":45,"end_line":30,"end_character":46},"updated":"2016-08-18 11:24:48.000000000","message":"nit: extra space","commit_id":"eeebf00b934a8e0ee9df7dab205b84342fa0ba59"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e00d7c202efe1ca11625797a23ff13f880608016","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    or not features will work."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning  users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready.The feature classification"},{"line_number":32,"context_line":"  should also make  clearer how to help improve the feature."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":30,"id":"3ac371cc_d2522e12","line":30,"range":{"start_line":30,"start_character":45,"end_line":30,"end_character":46},"in_reply_to":"3ac371cc_9424300d","updated":"2016-08-18 13:49:11.000000000","message":"Done","commit_id":"eeebf00b934a8e0ee9df7dab205b84342fa0ba59"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"825ba0e9af2646547094bae76aa0f7cac7783aac","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning  users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready.The feature classification"},{"line_number":32,"context_line":"  should also make  clearer how to help improve the feature."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Concepts"}],"source_content_type":"text/x-rst","patch_set":30,"id":"3ac371cc_548598cc","line":31,"updated":"2016-08-18 11:24:48.000000000","message":"nit: Add a space after the dot","commit_id":"eeebf00b934a8e0ee9df7dab205b84342fa0ba59"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e00d7c202efe1ca11625797a23ff13f880608016","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning  users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready.The feature classification"},{"line_number":32,"context_line":"  should also make  clearer how to help improve the feature."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Concepts"}],"source_content_type":"text/x-rst","patch_set":30,"id":"3ac371cc_d2798e94","line":31,"in_reply_to":"3ac371cc_548598cc","updated":"2016-08-18 13:49:11.000000000","message":"Done","commit_id":"eeebf00b934a8e0ee9df7dab205b84342fa0ba59"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"825ba0e9af2646547094bae76aa0f7cac7783aac","unresolved":false,"context_lines":[{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning  users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready.The feature classification"},{"line_number":32,"context_line":"  should also make  clearer how to help improve the feature."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Concepts"},{"line_number":35,"context_line":"~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":30,"id":"3ac371cc_545c787c","line":32,"range":{"start_line":32,"start_character":19,"end_line":32,"end_character":20},"updated":"2016-08-18 11:24:48.000000000","message":"nit: extra space","commit_id":"eeebf00b934a8e0ee9df7dab205b84342fa0ba59"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e00d7c202efe1ca11625797a23ff13f880608016","unresolved":false,"context_lines":[{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning  users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready.The feature classification"},{"line_number":32,"context_line":"  should also make  clearer how to help improve the feature."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Concepts"},{"line_number":35,"context_line":"~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":30,"id":"3ac371cc_326d82cc","line":32,"range":{"start_line":32,"start_character":19,"end_line":32,"end_character":20},"in_reply_to":"3ac371cc_545c787c","updated":"2016-08-18 13:49:11.000000000","message":"Done","commit_id":"eeebf00b934a8e0ee9df7dab205b84342fa0ba59"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"0ac575786dfc787f41e1bb02ae3af262a3b9fbc7","unresolved":false,"context_lines":[{"line_number":117,"context_line":"* Incomplete"},{"line_number":118,"context_line":"* Experimental"},{"line_number":119,"context_line":"* Complete"},{"line_number":120,"context_line":"* Complete and Required"},{"line_number":121,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Incomplete features don\u0027t have enough functionality to satisfy real-world"}],"source_content_type":"text/x-rst","patch_set":40,"id":"7a8ec9b2_bf9b9371","line":120,"updated":"2016-09-14 16:34:59.000000000","message":"I see CSS styles for incomplete, experimental, complete, and deprecated, but no style for \"complete and required\" and no mention of \"required\" in feature_matrix.py. Is this an oversight or will these ratings be styled exactly the same as complete?","commit_id":"51a0b3514f3cba5e7aceb428418168f34a9fd231"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"High Level Verticals"},{"line_number":28,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"The below are matrices for important vericals:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* :ref:`matrix-gp`"},{"line_number":33,"context_line":"* :ref:`matrix-nas`"}],"source_content_type":"text/x-rst","patch_set":41,"id":"7a8ec9b2_693e6e8d","line":30,"range":{"start_line":30,"start_character":37,"end_line":30,"end_character":45},"updated":"2016-09-15 20:24:48.000000000","message":"typo: verticals","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Users"},{"line_number":68,"context_line":"-----"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The follwing user types will be referenced in this document:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Application deployer: creates and deletes servers both, directly or"},{"line_number":73,"context_line":"  indirectly, via the APIs."}],"source_content_type":"text/x-rst","patch_set":41,"id":"7a8ec9b2_4907f2c9","line":70,"range":{"start_line":70,"start_character":4,"end_line":70,"end_character":12},"updated":"2016-09-15 20:24:48.000000000","message":"typo: following","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":142,"context_line":".. note::"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    Any new drivers must prove that they support all required features"},{"line_number":145,"context_line":"    before the are merged into neutron."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":".. note::"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":41,"id":"7a8ec9b2_c9d30203","line":145,"range":{"start_line":145,"start_character":11,"end_line":145,"end_character":14},"updated":"2016-09-15 20:24:48.000000000","message":"typo: they","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1b5842b263b222bbed7cf4e80b8facf07c437ad8","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Goals"},{"line_number":6,"context_line":"~~~~~"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"The most important features for users must be reliable and"},{"line_number":9,"context_line":"must continue to solve their use cases."},{"line_number":10,"context_line":"Our users request that we solve their issues quickly and"},{"line_number":11,"context_line":"note that it would be better if regressions did not happen"},{"line_number":12,"context_line":"in the first place."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The solution takes a two-pronged approach:"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-rst","patch_set":49,"id":"9a629dbe_28dc0e45","line":12,"range":{"start_line":8,"start_character":0,"end_line":12,"end_character":19},"updated":"2016-11-11 19:33:32.000000000","message":"What message are you trying to convey here? This all sounds very obvious, I\u0027d suggest to get it rid of this paragraph and go straight to the point of this document, by saying:\n\nThe object of this section is two-fold:","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1b5842b263b222bbed7cf4e80b8facf07c437ad8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"note that it would be better if regressions did not happen"},{"line_number":12,"context_line":"in the first place."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The solution takes a two-pronged approach:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"* Inform users whether or not features are complete, well-documented,"},{"line_number":17,"context_line":"  stable, and tested. This approach ensures a good experience for users"}],"source_content_type":"text/x-rst","patch_set":49,"id":"9a629dbe_48df8239","line":14,"updated":"2016-11-11 19:33:32.000000000","message":"please get rid of this.","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1b5842b263b222bbed7cf4e80b8facf07c437ad8","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. _matrix-gp:"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"General Purpose Networking Features"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":".. feature_matrix:: feature_matrix_gp.ini"}],"source_content_type":"text/x-rst","patch_set":49,"id":"9a629dbe_a3bda103","line":41,"updated":"2016-11-11 19:33:32.000000000","message":"I don\u0027t believe approaching to this problem the way you do is the right thing for neutron. Capturing details about third party CI and out of tree drivers is something we moved away from long time ago and I don\u0027t think going back makes sense. Doing so we\u0027ll have a number of drawbacks. I think we should document what we know and maintain in this tree and in the stadium overall. And this means breaking this down this way:\n\n* L2 features (aka core features).\n* Basic L3 features\n* Additional services (e.g. service plugins):\n  * security\n  * qos\n  * sfc\n  * dynamic routing\n  * bgpvpn\n  * etc\n* Hardware or software accelerated features:\n  * sriov\n  * dpdk\n\nWe should consider what we have control over, and that is: OVS, Linuxbridge and stadium drivers over which we have a degree of oversight and that includes (to date): opendaylight, ovn, calico, bagpipe, etc.","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"e10444fd9b904a40317f095f62649401fba2a1f5","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. _matrix-gp:"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"General Purpose Networking Features"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":".. feature_matrix:: feature_matrix_gp.ini"}],"source_content_type":"text/x-rst","patch_set":49,"id":"5a74a57a_9d11f006","line":41,"in_reply_to":"5a74a57a_276c5e9b","updated":"2016-11-29 00:32:33.000000000","message":"First step is to agree on the framework. Once that\u0027s done we can focus on how to fill the dots, and that clearly is an iterative step. Review 324048 is more akin to what I had in mind.","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"35e341042b8264498e4aed40e8e8774ef00343d0","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. _matrix-gp:"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"General Purpose Networking Features"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":".. feature_matrix:: feature_matrix_gp.ini"}],"source_content_type":"text/x-rst","patch_set":49,"id":"5a74a57a_276c5e9b","line":41,"in_reply_to":"9a629dbe_a3bda103","updated":"2016-11-28 15:55:18.000000000","message":"https://review.openstack.org/#/c/324048/\n\nWas the initial implementation of the Matrix, when built looks like http://pasteboard.co/3qcEVnc6V.png \n\nIt was at the point where it needed people from each driver team to provide information on whether the feature was supported by each respective driver.\n\nIt hit roadblock due to lack of reviews, then the focus switched based on Nova\u0027s new implementation with CIs. \n\nI agree the original implementation is more useful for deployers and ops. But it would require more feedback from the driver teams.\n\n\nDepending on what needs to be done, this document will change entirely. Will leave rest of comments until a path has been determined.","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1b5842b263b222bbed7cf4e80b8facf07c437ad8","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Users"},{"line_number":68,"context_line":"-----"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The following user types will be referenced in this document:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Application deployer: creates and deletes servers both, directly or"},{"line_number":73,"context_line":"  indirectly, via the APIs."}],"source_content_type":"text/x-rst","patch_set":49,"id":"9a629dbe_c8eb92da","line":70,"range":{"start_line":70,"start_character":14,"end_line":70,"end_character":24},"updated":"2016-11-11 19:33:32.000000000","message":"you can say \u0027personas\u0027","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1b5842b263b222bbed7cf4e80b8facf07c437ad8","unresolved":false,"context_lines":[{"line_number":121,"context_line":"* Complete"},{"line_number":122,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Incomplete features don\u0027t have enough functionality to satisfy real-world"},{"line_number":125,"context_line":"use cases."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Experimental features probably have little or no upstream testing and they"},{"line_number":128,"context_line":"should be used with extreme caution."},{"line_number":129,"context_line":"Using experimental features will likely lead to many unknown bugs."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"A feature is considered complete if it satisfies the following criteria:"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":49,"id":"9a629dbe_88c8ba56","line":129,"range":{"start_line":124,"start_character":0,"end_line":129,"end_character":66},"updated":"2016-11-11 19:33:32.000000000","message":"I personally don\u0027t want to approve features with little or no upstream testing, or at least ever since I have become in charge as PTL, I have put stress and emphasis on testing and documentation as an integral part of the development process.\n\nMy suggestion is to collapse incomplete and experimental and replace it \u0027immature\u0027. Immature features are features that have been developed during the past cycle or two and take time to bake, get field traction, be more exhaustively documented and tested etc.","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1b5842b263b222bbed7cf4e80b8facf07c437ad8","unresolved":false,"context_lines":[{"line_number":128,"context_line":"should be used with extreme caution."},{"line_number":129,"context_line":"Using experimental features will likely lead to many unknown bugs."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"A feature is considered complete if it satisfies the following criteria:"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"* Complete API documentation including concept and REST call definition."},{"line_number":134,"context_line":"* Complete Administrator documentation."}],"source_content_type":"text/x-rst","patch_set":49,"id":"9a629dbe_08e3cad9","line":131,"range":{"start_line":131,"start_character":24,"end_line":131,"end_character":32},"updated":"2016-11-11 19:33:32.000000000","message":"conversely I\u0027d replace complete with \u0027mature\u0027. A complete feature does not exist. In software you\u0027re never \u0027done done\u0027.","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1b5842b263b222bbed7cf4e80b8facf07c437ad8","unresolved":false,"context_lines":[{"line_number":165,"context_line":"* Regularly tested: tested by third party CI"},{"line_number":166,"context_line":"* Checked: Tested as part of the check or gate queue"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"The ultimate goal is to automate this list from some third party CI reporting"},{"line_number":169,"context_line":"system. To make some progress, the rating will be manually added to an ini"},{"line_number":170,"context_line":"file after the inspection. Ideally, the status will be reviewed for every"},{"line_number":171,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":49,"id":"9a629dbe_a81f3eb5","line":171,"range":{"start_line":168,"start_character":0,"end_line":171,"end_character":9},"updated":"2016-11-11 19:33:32.000000000","message":"Bear in mind that the neutron team is striving to test as much as possible upstream and using upstream resources. This means that the concept of third-party CI in neutron core is meaningless, at least for the features we have in tree.\n\nThat said, there\u0027s some exceptions (like sriov) that may require special purpose hardware, and therefore I think it\u0027s probably clearer to use the term \u0027downstream CI\u0027 instead of third-party CI.","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The solution takes a two-pronged approach:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"* Inform users whether or not features are complete, well-documented,"},{"line_number":20,"context_line":"  stable, and tested. This approach ensures a good experience for users"},{"line_number":21,"context_line":"  of those well-maintained features."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_fa133d0b","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":1},"updated":"2016-12-02 22:21:17.000000000","message":"#.","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The solution takes a two-pronged approach:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"* Inform users whether or not features are complete, well-documented,"},{"line_number":20,"context_line":"  stable, and tested. This approach ensures a good experience for users"},{"line_number":21,"context_line":"  of those well-maintained features."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_ef132fb6","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":1},"in_reply_to":"3a71b18c_fa133d0b","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The solution takes a two-pronged approach:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"* Inform users whether or not features are complete, well-documented,"},{"line_number":20,"context_line":"  stable, and tested. This approach ensures a good experience for users"},{"line_number":21,"context_line":"  of those well-maintained features."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":".. note::"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_1ad0f91e","line":21,"range":{"start_line":20,"start_character":51,"end_line":21,"end_character":4},"updated":"2016-12-02 22:21:17.000000000","message":"user-experience for","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":17,"context_line":"The solution takes a two-pronged approach:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"* Inform users whether or not features are complete, well-documented,"},{"line_number":20,"context_line":"  stable, and tested. This approach ensures a good experience for users"},{"line_number":21,"context_line":"  of those well-maintained features."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":".. note::"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_4f0fc387","line":21,"range":{"start_line":20,"start_character":51,"end_line":21,"end_character":4},"in_reply_to":"3a71b18c_1ad0f91e","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":23,"context_line":".. note::"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    Tests are specific to particular combinations of  technologies."},{"line_number":26,"context_line":"    The deployment\u0027s choice of plugins makes a big difference on whether"},{"line_number":27,"context_line":"    or not features will work."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_75b65e3e","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":44},"updated":"2016-12-02 22:21:17.000000000","message":"plugins chosen for deployment make","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":23,"context_line":".. note::"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    Tests are specific to particular combinations of  technologies."},{"line_number":26,"context_line":"    The deployment\u0027s choice of plugins makes a big difference on whether"},{"line_number":27,"context_line":"    or not features will work."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_af1e97b8","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":44},"in_reply_to":"3a71b18c_75b65e3e","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    The deployment\u0027s choice of plugins makes a big difference on whether"},{"line_number":27,"context_line":"    or not features will work."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready. The feature classification"},{"line_number":32,"context_line":"  should also make clearer how to help improve the feature."}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_5a0511ba","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":1},"updated":"2016-12-02 22:21:17.000000000","message":"#.","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    The deployment\u0027s choice of plugins makes a big difference on whether"},{"line_number":27,"context_line":"    or not features will work."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready. The feature classification"},{"line_number":32,"context_line":"  should also make clearer how to help improve the feature."}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_cf1bd3c8","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":1},"in_reply_to":"3a71b18c_5a0511ba","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready. The feature classification"},{"line_number":32,"context_line":"  should also make clearer how to help improve the feature."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Concepts"},{"line_number":35,"context_line":"~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_8af2f86d","line":32,"range":{"start_line":32,"start_character":14,"end_line":32,"end_character":26},"updated":"2016-12-02 22:21:17.000000000","message":"provide clear instruction on","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":29,"context_line":"* Enable users to get help for the features not yet fully completed and"},{"line_number":30,"context_line":"  maintained. This approach includes warning users about the risks of"},{"line_number":31,"context_line":"  using features before they are ready. The feature classification"},{"line_number":32,"context_line":"  should also make clearer how to help improve the feature."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Concepts"},{"line_number":35,"context_line":"~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_4f86e3db","line":32,"range":{"start_line":32,"start_character":14,"end_line":32,"end_character":26},"in_reply_to":"3a71b18c_8af2f86d","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The follwing user types will be referenced in this document:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* Application deployer: creates and deletes servers both, directly or"},{"line_number":45,"context_line":"  indirectly, via the APIs."},{"line_number":46,"context_line":"* Application developer: creates cloud applications."},{"line_number":47,"context_line":"  See `Alan - The App Developer \u003chttp://docs.openstack.org/contributor-guide"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_0a2268b9","line":44,"range":{"start_line":44,"start_character":44,"end_line":44,"end_character":66},"updated":"2016-12-02 22:21:17.000000000","message":"servers, directly","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The follwing user types will be referenced in this document:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* Application deployer: creates and deletes servers both, directly or"},{"line_number":45,"context_line":"  indirectly, via the APIs."},{"line_number":46,"context_line":"* Application developer: creates cloud applications."},{"line_number":47,"context_line":"  See `Alan - The App Developer \u003chttp://docs.openstack.org/contributor-guide"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_af75b7fa","line":44,"range":{"start_line":44,"start_character":44,"end_line":44,"end_character":66},"in_reply_to":"3a71b18c_0a2268b9","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":44,"context_line":"* Application deployer: creates and deletes servers both, directly or"},{"line_number":45,"context_line":"  indirectly, via the APIs."},{"line_number":46,"context_line":"* Application developer: creates cloud applications."},{"line_number":47,"context_line":"  See `Alan - The App Developer \u003chttp://docs.openstack.org/contributor-guide"},{"line_number":48,"context_line":"  /ux-ui-guidelines/ux-personas/alan-app-developer.html\u003e`_"},{"line_number":49,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":50,"context_line":"* Cloud operator: manages the cloud. See `Carlos - The Cloud Operator"},{"line_number":51,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_ddde786c","line":48,"range":{"start_line":47,"start_character":6,"end_line":48,"end_character":58},"updated":"2016-12-02 22:21:17.000000000","message":"`Quinn - application developer \u003chttp://docs.openstack.org/contributor-guide/ux-ui-guidelines/ux-personas/app-developer.html\u003e`_","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":44,"context_line":"* Application deployer: creates and deletes servers both, directly or"},{"line_number":45,"context_line":"  indirectly, via the APIs."},{"line_number":46,"context_line":"* Application developer: creates cloud applications."},{"line_number":47,"context_line":"  See `Alan - The App Developer \u003chttp://docs.openstack.org/contributor-guide"},{"line_number":48,"context_line":"  /ux-ui-guidelines/ux-personas/alan-app-developer.html\u003e`_"},{"line_number":49,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":50,"context_line":"* Cloud operator: manages the cloud. See `Carlos - The Cloud Operator"},{"line_number":51,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_efc88f24","line":48,"range":{"start_line":47,"start_character":6,"end_line":48,"end_character":58},"in_reply_to":"3a71b18c_ddde786c","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  See `Alan - The App Developer \u003chttp://docs.openstack.org/contributor-guide"},{"line_number":48,"context_line":"  /ux-ui-guidelines/ux-personas/alan-app-developer.html\u003e`_"},{"line_number":49,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":50,"context_line":"* Cloud operator: manages the cloud. See `Carlos - The Cloud Operator"},{"line_number":51,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide"},{"line_number":52,"context_line":"  /ux-ui-guidelines/ux-personas/carlos-cloud-ops.html\u003e`_"},{"line_number":53,"context_line":"  for more details on the cloud operator role in OpenStack."},{"line_number":54,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":55,"context_line":"  This user merges the roles of a cloud operator and application developer."}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_5d38a8a0","line":52,"range":{"start_line":50,"start_character":41,"end_line":52,"end_character":56},"updated":"2016-12-02 22:21:17.000000000","message":"`Rey - cloud operator \u003chttp://docs.openstack.org/contributor-guide/ux-ui-guidelines/ux-personas/cloud-ops.html\u003e`_","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  See `Alan - The App Developer \u003chttp://docs.openstack.org/contributor-guide"},{"line_number":48,"context_line":"  /ux-ui-guidelines/ux-personas/alan-app-developer.html\u003e`_"},{"line_number":49,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":50,"context_line":"* Cloud operator: manages the cloud. See `Carlos - The Cloud Operator"},{"line_number":51,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide"},{"line_number":52,"context_line":"  /ux-ui-guidelines/ux-personas/carlos-cloud-ops.html\u003e`_"},{"line_number":53,"context_line":"  for more details on the cloud operator role in OpenStack."},{"line_number":54,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":55,"context_line":"  This user merges the roles of a cloud operator and application developer."}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_8f01db3a","line":52,"range":{"start_line":50,"start_character":41,"end_line":52,"end_character":56},"in_reply_to":"3a71b18c_5d38a8a0","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The actual roles of users are more complex than these definitions."},{"line_number":58,"context_line":"Specifically, it is likely the application developer has different roles"},{"line_number":59,"context_line":"as an observer, a creator and administrator."},{"line_number":60,"context_line":"Similarly, there are likely to be various"},{"line_number":61,"context_line":"levels of cloud operator permissions. For example, cloud operator"},{"line_number":62,"context_line":"with read only permissions can see only a subset of tenants and so on."}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_bd3ffcd4","line":59,"range":{"start_line":58,"start_character":0,"end_line":59,"end_character":44},"updated":"2016-12-02 22:21:17.000000000","message":"Ankur, could you please clarify for me: does this sentence mean that the app developer is also responsible for observer, creator, and admin roles?","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"The actual roles of users are more complex than these definitions."},{"line_number":58,"context_line":"Specifically, it is likely the application developer has different roles"},{"line_number":59,"context_line":"as an observer, a creator and administrator."},{"line_number":60,"context_line":"Similarly, there are likely to be various"},{"line_number":61,"context_line":"levels of cloud operator permissions. For example, cloud operator"},{"line_number":62,"context_line":"with read only permissions can see only a subset of tenants and so on."}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_0f9ceb0d","line":59,"range":{"start_line":58,"start_character":0,"end_line":59,"end_character":44},"in_reply_to":"3a71b18c_bd3ffcd4","updated":"2016-12-06 02:48:22.000000000","message":"Confusing paragraph as it was. Removed","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"To reduce the size of the matrix, features are organized into groups."},{"line_number":68,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":69,"context_line":"of scenarios and tests validates the user stories."},{"line_number":70,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Deployment"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_7d99e41e","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":32},"updated":"2016-12-02 22:21:17.000000000","message":"tested to validate?","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"To reduce the size of the matrix, features are organized into groups."},{"line_number":68,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":69,"context_line":"of scenarios and tests validates the user stories."},{"line_number":70,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Deployment"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_8faf1b29","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":32},"in_reply_to":"3a71b18c_7d99e41e","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Deployment"},{"line_number":73,"context_line":"----------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"A deployment maps to a specific test environment. Please provide a full"},{"line_number":76,"context_line":"description of the test environment to be able to reproduce the test"},{"line_number":77,"context_line":"results reported for each feature group."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Feature group maturity"},{"line_number":80,"context_line":"----------------------"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_0010874d","line":77,"range":{"start_line":75,"start_character":50,"end_line":77,"end_character":40},"updated":"2016-12-02 22:21:17.000000000","message":"I might be missing this but to whom is the reader providing this description to?","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Deployment"},{"line_number":73,"context_line":"----------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"A deployment maps to a specific test environment. Please provide a full"},{"line_number":76,"context_line":"description of the test environment to be able to reproduce the test"},{"line_number":77,"context_line":"results reported for each feature group."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Feature group maturity"},{"line_number":80,"context_line":"----------------------"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_6f79dfc7","line":77,"range":{"start_line":75,"start_character":50,"end_line":77,"end_character":40},"in_reply_to":"3a71b18c_0010874d","updated":"2016-12-06 02:48:22.000000000","message":"same as above. Not a relevant anymore paragraph.","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":92,"context_line":"* Complete and Required"},{"line_number":93,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Incomplete features don\u0027t have enough functionality to satisfy real-world"},{"line_number":96,"context_line":"use cases."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Experimental features probably have little or no upstream testing and they"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_a058b333","line":95,"range":{"start_line":95,"start_character":20,"end_line":95,"end_character":25},"updated":"2016-12-02 22:21:17.000000000","message":"do not","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":92,"context_line":"* Complete and Required"},{"line_number":93,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Incomplete features don\u0027t have enough functionality to satisfy real-world"},{"line_number":96,"context_line":"use cases."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Experimental features probably have little or no upstream testing and they"}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_0f514b36","line":95,"range":{"start_line":95,"start_character":20,"end_line":95,"end_character":25},"in_reply_to":"3a71b18c_a058b333","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":113,"context_line":".. note::"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    Any new drivers must prove that they support all required features"},{"line_number":116,"context_line":"    before the are merged into neutron."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":".. important::"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_809f37b3","line":116,"range":{"start_line":116,"start_character":11,"end_line":116,"end_character":18},"updated":"2016-12-02 22:21:17.000000000","message":"they are","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"8b5790b42975ecd0a99cb36fdf7915049f74ca87","unresolved":false,"context_lines":[{"line_number":113,"context_line":".. note::"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    Any new drivers must prove that they support all required features"},{"line_number":116,"context_line":"    before the are merged into neutron."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":".. important::"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_4f47c376","line":116,"range":{"start_line":116,"start_character":11,"end_line":116,"end_character":18},"in_reply_to":"3a71b18c_809f37b3","updated":"2016-12-06 02:48:22.000000000","message":"Done","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"eb8e42d64e4ea0f152b3b92ad01774c4c8e35157","unresolved":false,"context_lines":[{"line_number":135,"context_line":"* regularly tested: tested by third party CI"},{"line_number":136,"context_line":"* checked: Tested as part of the check or gate queue"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"The ultimate goal is to automate this list from some third party CI reporting"},{"line_number":139,"context_line":"system. To make some progress, the rating will be manually added to an ini"},{"line_number":140,"context_line":"file after the inspection. Ideally, the status will be reviewed for every"},{"line_number":141,"context_line":"milestone."}],"source_content_type":"text/x-rst","patch_set":50,"id":"3a71b18c_c0804f49","line":138,"range":{"start_line":138,"start_character":48,"end_line":138,"end_character":52},"updated":"2016-12-02 22:21:17.000000000","message":"a","commit_id":"c6ce96477bbd17aecab227b1599dff5e6c1aaf5c"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"5707100a08e5070ec2b938acddad8ee44a343117","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Feature group ratings:"},{"line_number":74,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Incomplete"},{"line_number":77,"context_line":"* Experimental"},{"line_number":78,"context_line":"* Complete"},{"line_number":79,"context_line":"* Complete and Required"},{"line_number":80,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Incomplete features do not have enough functionality to satisfy real-world"},{"line_number":83,"context_line":"use cases."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Experimental features probably have little or no upstream testing and they"},{"line_number":86,"context_line":"should be used with extreme caution."},{"line_number":87,"context_line":"Using experimental features will likely lead to many unknown bugs."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"A feature is considered complete if it satisfies the following criteria:"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* Complete API documentation including concept and REST call definition."},{"line_number":92,"context_line":"* Complete Administrator documentation."}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a71b18c_0e717c44","line":89,"range":{"start_line":76,"start_character":0,"end_line":89,"end_character":72},"updated":"2016-12-10 00:08:44.000000000","message":"please revise the wording as suggested on PS49.","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"d454b2b19ffcee1d30d084f63b4ff71be63adf13","unresolved":false,"context_lines":[{"line_number":22,"context_line":".. note::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    Tests are specific to particular combinations of  technologies."},{"line_number":25,"context_line":"    The plugins chosed for deployment make a big difference on whether"},{"line_number":26,"context_line":"    or not features will work."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":53,"id":"1a6eadb0_c62527af","line":25,"range":{"start_line":25,"start_character":16,"end_line":25,"end_character":22},"updated":"2016-12-12 20:48:02.000000000","message":"chosen","commit_id":"52a7ced89986a774a9f5f8d9841946d9a35601ed"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"7517ceb69eae193dbc266641cd030e9d29e9a4af","unresolved":false,"context_lines":[{"line_number":22,"context_line":".. note::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    Tests are specific to particular combinations of  technologies."},{"line_number":25,"context_line":"    The plugins chosed for deployment make a big difference on whether"},{"line_number":26,"context_line":"    or not features will work."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":53,"id":"1a6eadb0_87cebf81","line":25,"range":{"start_line":25,"start_character":16,"end_line":25,"end_character":22},"in_reply_to":"1a6eadb0_c62527af","updated":"2016-12-13 03:35:53.000000000","message":"Done","commit_id":"52a7ced89986a774a9f5f8d9841946d9a35601ed"},{"author":{"_account_id":19591,"name":"Saisrikiran Mudigonda","email":"saisrikiran.mudigonda@intel.com","username":"saisrikiran"},"change_message_id":"586a9cbe0106907d9c82d85853e2dfa8c530b8b3","unresolved":false,"context_lines":[{"line_number":15,"context_line":"   for those well-maintained features."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#. Enable users to get help for the features not yet fully completed and"},{"line_number":18,"context_line":"   maintained. This approach includes warning users about the risks of"},{"line_number":19,"context_line":"   using features before they are ready. The feature classification"},{"line_number":20,"context_line":"   should also provide clear instruction on how to help improve the feature."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":55,"id":"1a6eadb0_572b51eb","line":19,"range":{"start_line":18,"start_character":15,"end_line":19,"end_character":40},"updated":"2016-12-13 17:18:54.000000000","message":"Can you please specify how these warnings are given to the users? Is this when they use it or before they use it?","commit_id":"9931ada2617a9539355e57ffca7f22c4039ba45c"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Immature features do not have enough functionality to satisfy real-world"},{"line_number":68,"context_line":"use cases."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Immature features probably have little or no upstream testing and they"},{"line_number":71,"context_line":"should be used with extreme caution."},{"line_number":72,"context_line":"Using these features will likely lead to many unknown bugs."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"A feature is considered mature if it satisfies the following criteria:"}],"source_content_type":"text/x-rst","patch_set":58,"id":"da4df55a_c0563629","line":71,"range":{"start_line":70,"start_character":18,"end_line":71,"end_character":35},"updated":"2016-12-28 12:24:53.000000000","message":"I\u0027d rephrase this to avoid the negative connotation. Consider the following sentence instead:\n\nan immature feature is a feature being actively developed, which is only partially functional and upstream tested, most likely introduced in a recent release, and that will take time to mature thanks to feedback from downstream QA.","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Immature features do not have enough functionality to satisfy real-world"},{"line_number":68,"context_line":"use cases."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Immature features probably have little or no upstream testing and they"},{"line_number":71,"context_line":"should be used with extreme caution."},{"line_number":72,"context_line":"Using these features will likely lead to many unknown bugs."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"A feature is considered mature if it satisfies the following criteria:"}],"source_content_type":"text/x-rst","patch_set":58,"id":"ba5201f7_33f36b75","line":71,"range":{"start_line":70,"start_character":18,"end_line":71,"end_character":35},"in_reply_to":"da4df55a_c0563629","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Immature features probably have little or no upstream testing and they"},{"line_number":71,"context_line":"should be used with extreme caution."},{"line_number":72,"context_line":"Using these features will likely lead to many unknown bugs."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"A feature is considered mature if it satisfies the following criteria:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":58,"id":"da4df55a_2038e2ee","line":72,"updated":"2016-12-28 12:24:53.000000000","message":"I\u0027d rephrase with:\n\nusers of this feature will likely identify gaps and/or defects that were not identified during specification and code review.","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Immature features probably have little or no upstream testing and they"},{"line_number":71,"context_line":"should be used with extreme caution."},{"line_number":72,"context_line":"Using these features will likely lead to many unknown bugs."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"A feature is considered mature if it satisfies the following criteria:"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":58,"id":"ba5201f7_53e8ef7c","line":72,"in_reply_to":"da4df55a_2038e2ee","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":71,"context_line":"should be used with extreme caution."},{"line_number":72,"context_line":"Using these features will likely lead to many unknown bugs."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"A feature is considered mature if it satisfies the following criteria:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Complete API documentation including concept and REST call definition."},{"line_number":77,"context_line":"* Complete Administrator documentation."}],"source_content_type":"text/x-rst","patch_set":58,"id":"da4df55a_e08edace","line":74,"range":{"start_line":74,"start_character":24,"end_line":74,"end_character":30},"updated":"2016-12-28 12:24:53.000000000","message":"You should consider replacing complete with \u0027mature\u0027 at line 63.","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":71,"context_line":"should be used with extreme caution."},{"line_number":72,"context_line":"Using these features will likely lead to many unknown bugs."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"A feature is considered mature if it satisfies the following criteria:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Complete API documentation including concept and REST call definition."},{"line_number":77,"context_line":"* Complete Administrator documentation."}],"source_content_type":"text/x-rst","patch_set":58,"id":"ba5201f7_73edf38a","line":74,"range":{"start_line":74,"start_character":24,"end_line":74,"end_character":30},"in_reply_to":"da4df55a_e08edace","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* Enough functionality and reliability to be useful in real-world scenarios."},{"line_number":80,"context_line":"* Low probability of support for the feature being dropped."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"A feature, once complete, can become required for a variety of reasons."},{"line_number":83,"context_line":"Currently, this happens when a feature is supported by all drivers."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":".. note::"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":58,"id":"da4df55a_60158a47","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":66},"updated":"2016-12-28 12:24:53.000000000","message":"Required by whom? This seems like we\u0027re stepping into defcore territory. I suggest to drop the \u0027required\u0027 flag and thus the note at line 90.","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* Enough functionality and reliability to be useful in real-world scenarios."},{"line_number":80,"context_line":"* Low probability of support for the feature being dropped."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"A feature, once complete, can become required for a variety of reasons."},{"line_number":83,"context_line":"Currently, this happens when a feature is supported by all drivers."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":".. note::"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":58,"id":"ba5201f7_9302573d","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":66},"in_reply_to":"da4df55a_60158a47","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":".. note::"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    Tests are specific to particular combinations of  technologies."},{"line_number":24,"context_line":"    The plugins chosen for deployment make a big difference on whether"},{"line_number":25,"context_line":"    or not features will work."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_ea90bd97","line":23,"range":{"start_line":23,"start_character":52,"end_line":23,"end_character":54},"updated":"2017-01-11 11:58:07.000000000","message":"double space","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":".. note::"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    Tests are specific to particular combinations of  technologies."},{"line_number":24,"context_line":"    The plugins chosen for deployment make a big difference on whether"},{"line_number":25,"context_line":"    or not features will work."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_8cd64d4d","line":23,"range":{"start_line":23,"start_character":52,"end_line":23,"end_character":54},"in_reply_to":"ba5201f7_ea90bd97","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":21,"context_line":".. note::"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    Tests are specific to particular combinations of  technologies."},{"line_number":24,"context_line":"    The plugins chosen for deployment make a big difference on whether"},{"line_number":25,"context_line":"    or not features will work."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_0a8c217e","line":24,"range":{"start_line":24,"start_character":60,"end_line":24,"end_character":62},"updated":"2017-01-11 11:58:07.000000000","message":"to","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":21,"context_line":".. note::"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    Tests are specific to particular combinations of  technologies."},{"line_number":24,"context_line":"    The plugins chosen for deployment make a big difference on whether"},{"line_number":25,"context_line":"    or not features will work."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_acc79196","line":24,"range":{"start_line":24,"start_character":60,"end_line":24,"end_character":62},"in_reply_to":"ba5201f7_0a8c217e","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"-------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"To reduce the size of the matrix, features are organized into groups."},{"line_number":55,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":56,"context_line":"of scenarios and tests to validate the user stories."},{"line_number":57,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_c5592a5d","line":55,"range":{"start_line":55,"start_character":40,"end_line":55,"end_character":41},"updated":"2017-01-11 11:58:07.000000000","message":"don\u0027t need the comma","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":52,"context_line":"-------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"To reduce the size of the matrix, features are organized into groups."},{"line_number":55,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":56,"context_line":"of scenarios and tests to validate the user stories."},{"line_number":57,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_ac3eb188","line":55,"range":{"start_line":55,"start_character":40,"end_line":55,"end_character":41},"in_reply_to":"ba5201f7_c5592a5d","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"To reduce the size of the matrix, features are organized into groups."},{"line_number":55,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":56,"context_line":"of scenarios and tests to validate the user stories."},{"line_number":57,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Feature group ratings:"}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_454d3a98","line":56,"range":{"start_line":56,"start_character":22,"end_line":56,"end_character":51},"updated":"2017-01-11 11:58:07.000000000","message":"Remove - duplicates the first part of the sentence.","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"To reduce the size of the matrix, features are organized into groups."},{"line_number":55,"context_line":"Each group maps to a set of user stories, that can be validated by a set"},{"line_number":56,"context_line":"of scenarios and tests to validate the user stories."},{"line_number":57,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Feature group ratings:"}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_ec4c3944","line":56,"range":{"start_line":56,"start_character":22,"end_line":56,"end_character":51},"in_reply_to":"ba5201f7_454d3a98","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":56,"context_line":"of scenarios and tests."},{"line_number":57,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Feature group ratings:"},{"line_number":60,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Immature"}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_3b2db946","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":22},"updated":"2017-01-16 14:55:25.000000000","message":"The matrix still uses \u0027Status\u0027, so I\u0027d suggest changing this to \u0027Feature group status\u0027. Also, no need for the \u0027:\u0027.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":56,"context_line":"of scenarios and tests."},{"line_number":57,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Feature group ratings:"},{"line_number":60,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Immature"}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_bd911949","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":22},"in_reply_to":"7a3c09a3_3b2db946","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Immature"},{"line_number":63,"context_line":"* Mature"},{"line_number":64,"context_line":"* Complete and Required"},{"line_number":65,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Immature features do not have enough functionality to satisfy real-world"}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_2a5f280f","line":64,"range":{"start_line":64,"start_character":2,"end_line":64,"end_character":23},"updated":"2017-01-16 14:55:25.000000000","message":"Please describe this below in the same way as immature and mature have been.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Immature"},{"line_number":63,"context_line":"* Mature"},{"line_number":64,"context_line":"* Complete and Required"},{"line_number":65,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Immature features do not have enough functionality to satisfy real-world"}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_7da97123","line":64,"range":{"start_line":64,"start_character":2,"end_line":64,"end_character":23},"in_reply_to":"7a3c09a3_2a5f280f","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* Immature"},{"line_number":63,"context_line":"* Mature"},{"line_number":64,"context_line":"* Complete and Required"},{"line_number":65,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Immature features do not have enough functionality to satisfy real-world"},{"line_number":68,"context_line":"use cases."}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_8a7d7c70","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":58},"updated":"2017-01-16 14:55:25.000000000","message":"Although this is fairly self explanatory, a brief outline of the implications this has on development/maintenance would be helpful.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* Immature"},{"line_number":63,"context_line":"* Mature"},{"line_number":64,"context_line":"* Complete and Required"},{"line_number":65,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Immature features do not have enough functionality to satisfy real-world"},{"line_number":68,"context_line":"use cases."}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_6f5454c9","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":58},"in_reply_to":"7a3c09a3_8a7d7c70","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":64,"context_line":"* Complete and Required"},{"line_number":65,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Immature features do not have enough functionality to satisfy real-world"},{"line_number":68,"context_line":"use cases."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"An immature feature is a feature being actively developed, which is only"},{"line_number":71,"context_line":"partially functional and upstream tested, most likely introduced in a"},{"line_number":72,"context_line":"recent release, and that will take time to mature thanks to feedback"},{"line_number":73,"context_line":"from downstream QA."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Users of these features will likely identify gaps and/or defects"},{"line_number":76,"context_line":"that were not identified during specification and code review."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"A feature is considered mature if it satisfies the following criteria:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Complete API documentation including concept and REST call definition."},{"line_number":81,"context_line":"* Complete Administrator documentation."},{"line_number":82,"context_line":"* Tempest tests that define the correct functionality of the feature."},{"line_number":83,"context_line":"* Enough functionality and reliability to be useful in real-world scenarios."},{"line_number":84,"context_line":"* Low probability of support for the feature being dropped."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":".. note::"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_2abba80f","line":84,"range":{"start_line":67,"start_character":0,"end_line":84,"end_character":59},"updated":"2017-01-16 14:55:25.000000000","message":"To help with readability, can we move the description of each rating under its heading? e.g:\n\nImmature\n-----------\n\nImmature features do not have enough functionality to satisfy real-world\nuse cases.\n\nAn immature feature is a feature being actively developed, which is only\npartially functional and upstream tested, most likely introduced in a\nrecent release, and that will take time to mature thanks to feedback\nfrom downstream QA.\n\n\nMature\n--------\n\nA feature is considered mature if it satisfies the following criteria:\n\n* Complete API documentation including concept and REST call definition.\n* Complete Administrator documentation.\n* Tempest tests that define the correct functionality of the feature.\n* Enough functionality and reliability to be useful in real-world scenarios.\n* Low probability of support for the feature being dropped.\n\n\nComplete and Required\n---------------------------\n\n...","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":64,"context_line":"* Complete and Required"},{"line_number":65,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Immature features do not have enough functionality to satisfy real-world"},{"line_number":68,"context_line":"use cases."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"An immature feature is a feature being actively developed, which is only"},{"line_number":71,"context_line":"partially functional and upstream tested, most likely introduced in a"},{"line_number":72,"context_line":"recent release, and that will take time to mature thanks to feedback"},{"line_number":73,"context_line":"from downstream QA."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Users of these features will likely identify gaps and/or defects"},{"line_number":76,"context_line":"that were not identified during specification and code review."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"A feature is considered mature if it satisfies the following criteria:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Complete API documentation including concept and REST call definition."},{"line_number":81,"context_line":"* Complete Administrator documentation."},{"line_number":82,"context_line":"* Tempest tests that define the correct functionality of the feature."},{"line_number":83,"context_line":"* Enough functionality and reliability to be useful in real-world scenarios."},{"line_number":84,"context_line":"* Low probability of support for the feature being dropped."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":".. note::"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_0f5af0f1","line":84,"range":{"start_line":67,"start_character":0,"end_line":84,"end_character":59},"in_reply_to":"7a3c09a3_2abba80f","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":91,"context_line":".. important::"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    Despite the obvious parallels that could be drawn, this list is"},{"line_number":94,"context_line":"    unrelated to the DefCore effort."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Deployment ratings of feature groups"},{"line_number":97,"context_line":"------------------------------------"}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_aa2a382a","line":94,"range":{"start_line":94,"start_character":21,"end_line":94,"end_character":35},"updated":"2017-01-16 14:55:25.000000000","message":"Link to DeCore would be good here.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":91,"context_line":".. important::"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    Despite the obvious parallels that could be drawn, this list is"},{"line_number":94,"context_line":"    unrelated to the DefCore effort."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Deployment ratings of feature groups"},{"line_number":97,"context_line":"------------------------------------"}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_ef8044f9","line":94,"range":{"start_line":94,"start_character":21,"end_line":94,"end_character":35},"in_reply_to":"7a3c09a3_aa2a382a","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"}],"doc/source/devref/feature_matrix_af.ini":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"link\u003dhttps://wiki.openstack.org/wiki/ThirdPartySystems/Intel-SRIOV-CI"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"#"},{"line_number":30,"context_line":"# Lists all avanced services"},{"line_number":31,"context_line":"#"},{"line_number":32,"context_line":"# Includes information on the feature, its maturity, status,"},{"line_number":33,"context_line":"# links to admin docs, api docs and tempest test uuids."}],"source_content_type":"text/x-properties","patch_set":41,"id":"7a8ec9b2_24e3ab34","line":30,"range":{"start_line":30,"start_character":20,"end_line":30,"end_character":28},"updated":"2016-09-15 20:24:48.000000000","message":"features","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"link\u003dhttps://wiki.openstack.org/wiki/ThirdPartySystems/Intel-SRIOV-CI"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"#"},{"line_number":30,"context_line":"# Lists all avanced services"},{"line_number":31,"context_line":"#"},{"line_number":32,"context_line":"# Includes information on the feature, its maturity, status,"},{"line_number":33,"context_line":"# links to admin docs, api docs and tempest test uuids."}],"source_content_type":"text/x-properties","patch_set":41,"id":"7a8ec9b2_69510e36","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":19},"updated":"2016-09-15 20:24:48.000000000","message":"typo: advanced","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"}],"doc/source/devref/feature_matrix_gp.ini":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":34,"context_line":"#"},{"line_number":35,"context_line":"# It then lists the current state for each of the about CI jobs."},{"line_number":36,"context_line":"# It is hoped this mapping will eventually be automated."},{"line_number":37,"context_line":"#"},{"line_number":38,"context_line":"# This doesn\u0027t include things like Server metadata, Server tagging,"},{"line_number":39,"context_line":"# or Lock Server, or Keypair CRUD as they can all be tested independently"},{"line_number":40,"context_line":"# of the nova virt driver used."},{"line_number":41,"context_line":"#"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"[operation.create-delete-network]"}],"source_content_type":"text/x-properties","patch_set":41,"id":"7a8ec9b2_04614fd3","line":40,"range":{"start_line":37,"start_character":0,"end_line":40,"end_character":31},"updated":"2016-09-15 20:24:48.000000000","message":"? shouldn\u0027t it be removed?","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"}],"doc/source/devref/feature_matrix_nas.ini":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"link\u003dhttps://wiki.openstack.org/wiki/ThirdPartySystems/Intel-SRIOV-CI"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"#"},{"line_number":30,"context_line":"# Lists all avanced services"},{"line_number":31,"context_line":"#"},{"line_number":32,"context_line":"# Includes information on the feature, its maturity, status,"},{"line_number":33,"context_line":"# links to admin docs, api docs and tempest test uuids."}],"source_content_type":"text/x-properties","patch_set":41,"id":"7a8ec9b2_44eb5713","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":19},"updated":"2016-09-15 20:24:48.000000000","message":"typo","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"}],"doc/source/devref/index.rst":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1b5842b263b222bbed7cf4e80b8facf07c437ad8","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    client_command_extensions"},{"line_number":47,"context_line":"    alembic_migrations"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Feature Classification"},{"line_number":50,"context_line":"----------------------"},{"line_number":51,"context_line":".. toctree::"},{"line_number":52,"context_line":"    :maxdepth: 3"}],"source_content_type":"text/x-rst","patch_set":49,"id":"9a629dbe_c84f1232","line":49,"updated":"2016-11-11 19:33:32.000000000","message":"I think this should be at the same level of the other main sections, policies and stadium. So I\u0027d suggest to move it on level up. devref is for developer content mostly whereas this is mainly user focussed.","commit_id":"9b2d263b7b52069ddd3884d73af5ed1b461113e3"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"33845aae0b1917a809c1d1d2a0268f2b6a218b70","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    client_command_extensions"},{"line_number":47,"context_line":"    alembic_migrations"},{"line_number":48,"context_line":"    feature_classification"},{"line_number":49,"context_line":"    support_matrix    "},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Neutron Internals"},{"line_number":52,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a71b18c_6f698a25","line":49,"range":{"start_line":49,"start_character":18,"end_line":49,"end_character":22},"updated":"2016-12-07 15:59:26.000000000","message":"extra tab","commit_id":"9d3f1e0ce894dec1d17190851d25a2a2dfdfa800"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"a88f71c39a8c0c63122398f0a3d18a5fd8466f07","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    client_command_extensions"},{"line_number":47,"context_line":"    alembic_migrations"},{"line_number":48,"context_line":"    feature_classification"},{"line_number":49,"context_line":"    support_matrix    "},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Neutron Internals"},{"line_number":52,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":51,"id":"3a71b18c_c5fd1d0a","line":49,"range":{"start_line":49,"start_character":18,"end_line":49,"end_character":22},"in_reply_to":"3a71b18c_6f698a25","updated":"2016-12-07 16:07:02.000000000","message":"Done","commit_id":"9d3f1e0ce894dec1d17190851d25a2a2dfdfa800"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"5707100a08e5070ec2b938acddad8ee44a343117","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    client_command_extensions"},{"line_number":47,"context_line":"    alembic_migrations"},{"line_number":48,"context_line":"    feature_classification"},{"line_number":49,"context_line":"    support_matrix"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Neutron Internals"},{"line_number":52,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a71b18c_2e055879","line":49,"updated":"2016-12-10 00:08:44.000000000","message":"move it up, perhaps on its own section as this deep it\u0027s too hidden to stand out.","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"}],"doc/source/devref/support_matrix.ini":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"c1a18d2761d57ade61f780fc230dff1b19679e5f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[targets]"},{"line_number":14,"context_line":"networking-ovs\u003dOpenVSwitch"},{"line_number":15,"context_line":"networking-linux_bridge\u003dLinux Bridge"},{"line_number":16,"context_line":"networking-odl\u003dNetworking ODL"}],"source_content_type":"text/x-properties","patch_set":5,"id":"9abb7d3a_ce001204","line":13,"updated":"2016-05-31 21:55:03.000000000","message":"My suggestion is to split this patch into adding the feature classification framework from the one where we express features and how backends comply. Some of the lines below don\u0027t make much sense eg. l2gw or bgp don\u0027t support network-create, because it\u0027s not something the plugins provide but rather rely on.","commit_id":"d8fca2aa5fd3b7cdb4f4b2404f9bdc4422de7f8a"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"1779d7783bbdff7b018c474b74f0795dce1f813f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[targets]"},{"line_number":14,"context_line":"networking-ovs\u003dOpenVSwitch"},{"line_number":15,"context_line":"networking-linux_bridge\u003dLinux Bridge"},{"line_number":16,"context_line":"networking-odl\u003dNetworking ODL"}],"source_content_type":"text/x-properties","patch_set":5,"id":"9abb7d3a_6972c012","line":13,"in_reply_to":"9abb7d3a_ce001204","updated":"2016-05-31 22:52:08.000000000","message":"I agree about splitting, we\u0027ll never merge anything especially as more people start looking at this patch.","commit_id":"d8fca2aa5fd3b7cdb4f4b2404f9bdc4422de7f8a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"c1a18d2761d57ade61f780fc230dff1b19679e5f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"networking-calico\u003dNetworking Calico"},{"line_number":25,"context_line":"networking-bgpvpn\u003dNetworking BGPVPN"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"[operation.VLAN]"},{"line_number":28,"context_line":"title\u003dSupport VLAN"},{"line_number":29,"context_line":"status\u003dchoice"},{"line_number":30,"context_line":"cli\u003d"}],"source_content_type":"text/x-properties","patch_set":5,"id":"9abb7d3a_ce4e526e","line":27,"updated":"2016-05-31 21:55:03.000000000","message":"we should probably leave the segmentation details for later, because they can apply in many different scenarios","commit_id":"d8fca2aa5fd3b7cdb4f4b2404f9bdc4422de7f8a"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"1779d7783bbdff7b018c474b74f0795dce1f813f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"networking-calico\u003dunknown"},{"line_number":59,"context_line":"networking-bgpvpn\u003dunknown"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"[operation.GRE]"},{"line_number":62,"context_line":"title\u003dSupport GRE"},{"line_number":63,"context_line":"status\u003dchoice"},{"line_number":64,"context_line":"cli\u003d"}],"source_content_type":"text/x-properties","patch_set":5,"id":"9abb7d3a_c97accf0","line":61,"updated":"2016-05-31 22:52:08.000000000","message":"The Neutron API also supports Geneve FYI.","commit_id":"d8fca2aa5fd3b7cdb4f4b2404f9bdc4422de7f8a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"c1a18d2761d57ade61f780fc230dff1b19679e5f","unresolved":false,"context_lines":[{"line_number":78,"context_line":"[operation.create-network]"},{"line_number":79,"context_line":"title\u003dCreate Network"},{"line_number":80,"context_line":"status\u003dmandatory"},{"line_number":81,"context_line":"cli\u003dneutron net-create"},{"line_number":82,"context_line":"networking-ovs\u003dunknown"},{"line_number":83,"context_line":"networking-linux_bridge\u003dunknown"},{"line_number":84,"context_line":"networking-odl\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":5,"id":"9abb7d3a_4e15423e","line":81,"updated":"2016-05-31 21:55:03.000000000","message":"which the transition to the openstackclient I am not sure if want to reference the neutron client in this matrix.","commit_id":"d8fca2aa5fd3b7cdb4f4b2404f9bdc4422de7f8a"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"1779d7783bbdff7b018c474b74f0795dce1f813f","unresolved":false,"context_lines":[{"line_number":92,"context_line":"networking-calico\u003dunknown"},{"line_number":93,"context_line":"networking-bgpvpn\u003dunknown"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"[operation.delete-network]"},{"line_number":96,"context_line":"title\u003dDelete Network"},{"line_number":97,"context_line":"status\u003dmandatory"},{"line_number":98,"context_line":"cli\u003dneutron net-delete"}],"source_content_type":"text/x-properties","patch_set":5,"id":"9abb7d3a_691be0ca","line":95,"updated":"2016-05-31 22:52:08.000000000","message":"Do we need create and delete network separately? Let\u0027s squash all operations on a resource to a single line.","commit_id":"d8fca2aa5fd3b7cdb4f4b2404f9bdc4422de7f8a"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"1779d7783bbdff7b018c474b74f0795dce1f813f","unresolved":false,"context_lines":[{"line_number":167,"context_line":"networking-ovs\u003dunknown"},{"line_number":168,"context_line":"networking-linux_bridge\u003dunknown"},{"line_number":169,"context_line":"networking-odl\u003dunknown"},{"line_number":170,"context_line":"networking-dynamic-routing\u003dunknown"},{"line_number":171,"context_line":"networking-bagpipe\u003dunknown"},{"line_number":172,"context_line":"networking-midonet\u003dunknown"},{"line_number":173,"context_line":"networking-ovn\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":5,"id":"9abb7d3a_e95cf07e","line":170,"updated":"2016-05-31 22:52:08.000000000","message":"Like Armando said, some of this stuff doesn\u0027t make sense.\n\ndynamic-routing and bgpvpn don\u0027t intend to implement the subnetpool API.","commit_id":"d8fca2aa5fd3b7cdb4f4b2404f9bdc4422de7f8a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"c1a18d2761d57ade61f780fc230dff1b19679e5f","unresolved":false,"context_lines":[{"line_number":278,"context_line":"networking-calico\u003dunknown"},{"line_number":279,"context_line":"networking-bgpvpn\u003dunknown"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"[operation.bgp-speaker-create]"},{"line_number":282,"context_line":"title\u003dCreate BGP Speaker"},{"line_number":283,"context_line":"status\u003dchoice"},{"line_number":284,"context_line":"cli\u003dneutron bgp-speaker-create"}],"source_content_type":"text/x-properties","patch_set":5,"id":"9abb7d3a_0e3fba87","line":281,"updated":"2016-05-31 21:55:03.000000000","message":"Of all the API capabilities that we test in the gate, I\u0027d limit the classification to these basic extensions:\n\n - base v2: network, subnets, ports (that\u0027s not listed in [1])\n - router\n - security groups\n - external-net\n - dvr\n - l3-ha\n\nWe can iterate and add more over time, but if we stick with these then the only backends that make sense are ovs, linux bridge, midonet, ovn, onos, calico and odl.\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/tests/contrib/hooks/api_extensions","commit_id":"d8fca2aa5fd3b7cdb4f4b2404f9bdc4422de7f8a"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"1779d7783bbdff7b018c474b74f0795dce1f813f","unresolved":false,"context_lines":[{"line_number":278,"context_line":"networking-calico\u003dunknown"},{"line_number":279,"context_line":"networking-bgpvpn\u003dunknown"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"[operation.bgp-speaker-create]"},{"line_number":282,"context_line":"title\u003dCreate BGP Speaker"},{"line_number":283,"context_line":"status\u003dchoice"},{"line_number":284,"context_line":"cli\u003dneutron bgp-speaker-create"}],"source_content_type":"text/x-properties","patch_set":5,"id":"9abb7d3a_c913ecb6","line":281,"in_reply_to":"9abb7d3a_0e3fba87","updated":"2016-05-31 22:52:08.000000000","message":"+ Dragonflow, SRIOV.\n\nI would suggest to start with the rows Armando mentioned as the first patch in the series. Other APIs should be done in separate patches, these APIs include:\n\nQoS\nBGP\nauto-allocated-topology\nDNS\nip-availability\nrbac\ntags\ntimestamps\ntrunk ports\nVLAN transparent networks\n\nThat\u0027s not even close to a comprehensive list, so hopefully you see the need to scope the first patch way down.","commit_id":"d8fca2aa5fd3b7cdb4f4b2404f9bdc4422de7f8a"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"f32cdaef2ce7631d2fea21b711852bd61d72fac2","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"[operation.VLAN]"},{"line_number":18,"context_line":"title\u003dSupport for VLAN"},{"line_number":19,"context_line":"status\u003dchoice"},{"line_number":20,"context_line":"cli\u003d"},{"line_number":21,"context_line":"networking-ovs\u003dunknown"},{"line_number":22,"context_line":"networking-linux-bridge\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":9,"id":"7aa08908_13dd3d6f","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":13},"updated":"2016-06-07 21:48:42.000000000","message":"Do we need to describe what these statuses mean (or did I miss that elsewhere)?","commit_id":"d2f8650dc2918e881978b9eafefe53f939d2d2ee"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"f32cdaef2ce7631d2fea21b711852bd61d72fac2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"[operation.VLAN]"},{"line_number":18,"context_line":"title\u003dSupport for VLAN"},{"line_number":19,"context_line":"status\u003dchoice"},{"line_number":20,"context_line":"cli\u003d"},{"line_number":21,"context_line":"networking-ovs\u003dunknown"},{"line_number":22,"context_line":"networking-linux-bridge\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":9,"id":"7aa08908_f307d115","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":3},"updated":"2016-06-07 21:48:42.000000000","message":"If we are planing to list \u0027cli\u0027 we should probably be clear if we are talking about OSC or the python neutron client; I assume the former.","commit_id":"d2f8650dc2918e881978b9eafefe53f939d2d2ee"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"5707100a08e5070ec2b938acddad8ee44a343117","unresolved":false,"context_lines":[{"line_number":16,"context_line":"networking-odl\u003dNetworking ODL"},{"line_number":17,"context_line":"networking-midonet\u003dNetworking MidoNet"},{"line_number":18,"context_line":"networking-ovn\u003dNetworking OVN"},{"line_number":19,"context_line":"networking-onos\u003dNetworking ONOS"},{"line_number":20,"context_line":"networking-calico\u003dNetworking Calico"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"[operation.VLAN]"},{"line_number":23,"context_line":"title\u003dVLAN provided network support"}],"source_content_type":"text/x-properties","patch_set":52,"id":"3a71b18c_8e9bcc65","line":20,"range":{"start_line":19,"start_character":0,"end_line":20,"end_character":35},"updated":"2016-12-10 00:08:44.000000000","message":"these two are not stadium related any longer, please drop for now.","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"5707100a08e5070ec2b938acddad8ee44a343117","unresolved":false,"context_lines":[{"line_number":19,"context_line":"networking-onos\u003dNetworking ONOS"},{"line_number":20,"context_line":"networking-calico\u003dNetworking Calico"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"[operation.VLAN]"},{"line_number":23,"context_line":"title\u003dVLAN provided network support"},{"line_number":24,"context_line":"status\u003dchoice"},{"line_number":25,"context_line":"notes: VLAN provided network support"}],"source_content_type":"text/x-properties","patch_set":52,"id":"3a71b18c_cea14496","line":22,"updated":"2016-12-10 00:08:44.000000000","message":"Is there any way to expand on what these actually mean? For instance can be have a more verbose section that elaborates what \u0027VLAN provided network support\u0027 actually mean? Is it tenant logical networking? Is it provider networks?","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"5707100a08e5070ec2b938acddad8ee44a343117","unresolved":false,"context_lines":[{"line_number":67,"context_line":"networking-onos\u003dunknown"},{"line_number":68,"context_line":"networking-calico\u003dunknown"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"[operation.Networks]"},{"line_number":71,"context_line":"title\u003dNetworks"},{"line_number":72,"context_line":"status\u003dmandatory"},{"line_number":73,"context_line":"cli\u003dopenstack network *"}],"source_content_type":"text/x-properties","patch_set":52,"id":"3a71b18c_eeaa8070","line":70,"updated":"2016-12-10 00:08:44.000000000","message":"you\u0027re mixing tunnelling/tenant isolation technologies with the actual operations that a platform supports. I\u0027d rather not mix the two together.","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d7c8094b4cf89ad96a0687a04414da42cc7f4d35","unresolved":false,"context_lines":[{"line_number":173,"context_line":"[operation.DVR]"},{"line_number":174,"context_line":"title\u003dDistributed Virtual Routers"},{"line_number":175,"context_line":"status\u003dchoice"},{"line_number":176,"context_line":"notes: The ability to support DVRs."},{"line_number":177,"context_line":"networking-ovs\u003dcomplete"},{"line_number":178,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":179,"context_line":"networking-odl\u003dpartial"}],"source_content_type":"text/x-properties","patch_set":52,"id":"3a71b18c_483d132a","line":176,"range":{"start_line":176,"start_character":0,"end_line":176,"end_character":35},"updated":"2016-12-12 02:32:38.000000000","message":"this description seems providing no info :-)\n\ni assume this is about \"dvr\" extension right?","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d7c8094b4cf89ad96a0687a04414da42cc7f4d35","unresolved":false,"context_lines":[{"line_number":177,"context_line":"networking-ovs\u003dcomplete"},{"line_number":178,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":179,"context_line":"networking-odl\u003dpartial"},{"line_number":180,"context_line":"networking-midonet\u003dunknown"},{"line_number":181,"context_line":"networking-ovn\u003dpartial"},{"line_number":182,"context_line":"networking-onos\u003dunknown"},{"line_number":183,"context_line":"networking-calico\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":52,"id":"3a71b18c_a81227b2","line":180,"range":{"start_line":180,"start_character":19,"end_line":180,"end_character":26},"updated":"2016-12-12 02:32:38.000000000","message":"networking-midonet provides distributed virtual routers (in fact in midonet all routers are distributed) but not via \"dvr\" extension.","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"d7c8094b4cf89ad96a0687a04414da42cc7f4d35","unresolved":false,"context_lines":[{"line_number":219,"context_line":"networking-calico\u003dunknown"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"[operation.AAA]"},{"line_number":222,"context_line":"title\u003dAuto Allocated Topology"},{"line_number":223,"context_line":"status\u003dchoice"},{"line_number":224,"context_line":"notes: The ability to support the AAA extensions."},{"line_number":225,"context_line":"    Also commonly refered to as \"Get Me A Network,\""}],"source_content_type":"text/x-properties","patch_set":52,"id":"3a71b18c_a8c78710","line":222,"range":{"start_line":222,"start_character":6,"end_line":222,"end_character":29},"updated":"2016-12-12 02:32:38.000000000","message":"i don\u0027t think it makes much sense to list plugin agnostic things like this.","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"d454b2b19ffcee1d30d084f63b4ff71be63adf13","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"1a6eadb0_41f8217d","updated":"2016-12-12 20:48:02.000000000","message":"I was reading the routed networks section in the Networking guide and I realized this feature is not included in this matrix: http://docs.openstack.org/newton/networking-guide/config-routed-networks.html\n\nThis feature looks as follows:\n\n[operations.Routed_Provider_Networks\ntitle\u003dRouted provider networks\nstatus\u003dchoice\nnotes: The ability to present a multi-segment layer-3 network as a single entity\nnetworking-ovs\u003dimmature\nnetworking-linux-bridge\u003dimmature\nnetworking-odl\u003dunknown\nnetworking-midonet\u003dunknown\nnetworking-ovn\u003dimmature","commit_id":"52a7ced89986a774a9f5f8d9841946d9a35601ed"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"7517ceb69eae193dbc266641cd030e9d29e9a4af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"1a6eadb0_e7ee93eb","in_reply_to":"1a6eadb0_41f8217d","updated":"2016-12-13 03:35:53.000000000","message":"Done","commit_id":"52a7ced89986a774a9f5f8d9841946d9a35601ed"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":35,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":36,"context_line":"networking-odl\u003dcomplete"},{"line_number":37,"context_line":"networking-midonet\u003dunknown"},{"line_number":38,"context_line":"networking-ovn\u003dmissing"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[operation.GRE]"}],"source_content_type":"text/x-properties","patch_set":58,"id":"da4df55a_545a0b2b","line":38,"updated":"2016-12-28 12:24:53.000000000","message":"should missing be \u0027incomplete\u0027 instead?","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":35,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":36,"context_line":"networking-odl\u003dcomplete"},{"line_number":37,"context_line":"networking-midonet\u003dunknown"},{"line_number":38,"context_line":"networking-ovn\u003dmissing"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[operation.GRE]"}],"source_content_type":"text/x-properties","patch_set":58,"id":"ba5201f7_33cc4b35","line":38,"in_reply_to":"da4df55a_545a0b2b","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"networking-midonet\u003dunknown"},{"line_number":38,"context_line":"networking-ovn\u003dmissing"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[operation.GRE]"},{"line_number":42,"context_line":"title\u003dGRE provider network support"},{"line_number":43,"context_line":"status\u003dchoice"}],"source_content_type":"text/x-properties","patch_set":58,"id":"da4df55a_b43257f0","line":40,"updated":"2016-12-28 12:24:53.000000000","message":"why the extra line?","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":37,"context_line":"networking-midonet\u003dunknown"},{"line_number":38,"context_line":"networking-ovn\u003dmissing"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[operation.GRE]"},{"line_number":42,"context_line":"title\u003dGRE provider network support"},{"line_number":43,"context_line":"status\u003dchoice"}],"source_content_type":"text/x-properties","patch_set":58,"id":"ba5201f7_53d1cfcc","line":40,"in_reply_to":"da4df55a_b43257f0","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":199,"context_line":"networking-midonet\u003dunknown"},{"line_number":200,"context_line":"networking-ovn\u003dcomplete"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"[operation.IP_Availability]"},{"line_number":203,"context_line":"title\u003dIP Availability"},{"line_number":204,"context_line":"status\u003dchoice"},{"line_number":205,"context_line":"networking-ovs\u003dcomplete"},{"line_number":206,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":207,"context_line":"networking-odl\u003dunknown"},{"line_number":208,"context_line":"networking-midonet\u003dunknown"},{"line_number":209,"context_line":"networking-ovn\u003dunknown"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"[operation.RBAC]"},{"line_number":212,"context_line":"title\u003dRole Based Access Control"},{"line_number":213,"context_line":"status\u003dchoice"},{"line_number":214,"context_line":"networking-ovs\u003dcomplete"},{"line_number":215,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":216,"context_line":"networking-odl\u003dmissing"},{"line_number":217,"context_line":"networking-midonet\u003dunknown"},{"line_number":218,"context_line":"networking-ovn\u003dcomplete"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"[operation.Timestamps]"},{"line_number":221,"context_line":"title\u003dTimestamps"},{"line_number":222,"context_line":"status\u003dchoice"},{"line_number":223,"context_line":"networking-ovs\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":58,"id":"da4df55a_b46097d0","line":220,"range":{"start_line":202,"start_character":0,"end_line":220,"end_character":22},"updated":"2016-12-28 12:24:53.000000000","message":"these are orthogonal to the drivers, in fact these are available to all plugins. I think they should be dropped.","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":199,"context_line":"networking-midonet\u003dunknown"},{"line_number":200,"context_line":"networking-ovn\u003dcomplete"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"[operation.IP_Availability]"},{"line_number":203,"context_line":"title\u003dIP Availability"},{"line_number":204,"context_line":"status\u003dchoice"},{"line_number":205,"context_line":"networking-ovs\u003dcomplete"},{"line_number":206,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":207,"context_line":"networking-odl\u003dunknown"},{"line_number":208,"context_line":"networking-midonet\u003dunknown"},{"line_number":209,"context_line":"networking-ovn\u003dunknown"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"[operation.RBAC]"},{"line_number":212,"context_line":"title\u003dRole Based Access Control"},{"line_number":213,"context_line":"status\u003dchoice"},{"line_number":214,"context_line":"networking-ovs\u003dcomplete"},{"line_number":215,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":216,"context_line":"networking-odl\u003dmissing"},{"line_number":217,"context_line":"networking-midonet\u003dunknown"},{"line_number":218,"context_line":"networking-ovn\u003dcomplete"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"[operation.Timestamps]"},{"line_number":221,"context_line":"title\u003dTimestamps"},{"line_number":222,"context_line":"status\u003dchoice"},{"line_number":223,"context_line":"networking-ovs\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":58,"id":"ba5201f7_93db37ed","line":220,"range":{"start_line":202,"start_character":0,"end_line":220,"end_character":22},"in_reply_to":"da4df55a_b46097d0","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":229,"context_line":"[operation.Trunk_Ports]"},{"line_number":230,"context_line":"title\u003dTrunk Ports"},{"line_number":231,"context_line":"status\u003dchoice"},{"line_number":232,"context_line":"networking-ovs\u003dunknown"},{"line_number":233,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":234,"context_line":"networking-odl\u003dunknown"},{"line_number":235,"context_line":"networking-midonet\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":58,"id":"da4df55a_d446fb4d","line":232,"updated":"2016-12-28 12:24:53.000000000","message":"complete","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":229,"context_line":"[operation.Trunk_Ports]"},{"line_number":230,"context_line":"title\u003dTrunk Ports"},{"line_number":231,"context_line":"status\u003dchoice"},{"line_number":232,"context_line":"networking-ovs\u003dunknown"},{"line_number":233,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":234,"context_line":"networking-odl\u003dunknown"},{"line_number":235,"context_line":"networking-midonet\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":58,"id":"ba5201f7_b3d83bf1","line":232,"in_reply_to":"da4df55a_d446fb4d","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":230,"context_line":"title\u003dTrunk Ports"},{"line_number":231,"context_line":"status\u003dchoice"},{"line_number":232,"context_line":"networking-ovs\u003dunknown"},{"line_number":233,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":234,"context_line":"networking-odl\u003dunknown"},{"line_number":235,"context_line":"networking-midonet\u003dunknown"},{"line_number":236,"context_line":"networking-ovn\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":58,"id":"da4df55a_f475bf97","line":233,"updated":"2016-12-28 12:24:53.000000000","message":"complete","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":230,"context_line":"title\u003dTrunk Ports"},{"line_number":231,"context_line":"status\u003dchoice"},{"line_number":232,"context_line":"networking-ovs\u003dunknown"},{"line_number":233,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":234,"context_line":"networking-odl\u003dunknown"},{"line_number":235,"context_line":"networking-midonet\u003dunknown"},{"line_number":236,"context_line":"networking-ovn\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":58,"id":"ba5201f7_d3e5bfa8","line":233,"in_reply_to":"da4df55a_f475bf97","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":231,"context_line":"status\u003dchoice"},{"line_number":232,"context_line":"networking-ovs\u003dunknown"},{"line_number":233,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":234,"context_line":"networking-odl\u003dunknown"},{"line_number":235,"context_line":"networking-midonet\u003dunknown"},{"line_number":236,"context_line":"networking-ovn\u003dunknown"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-properties","patch_set":58,"id":"da4df55a_946713e8","line":234,"updated":"2016-12-28 12:24:53.000000000","message":"incomplete","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":231,"context_line":"status\u003dchoice"},{"line_number":232,"context_line":"networking-ovs\u003dunknown"},{"line_number":233,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":234,"context_line":"networking-odl\u003dunknown"},{"line_number":235,"context_line":"networking-midonet\u003dunknown"},{"line_number":236,"context_line":"networking-ovn\u003dunknown"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-properties","patch_set":58,"id":"ba5201f7_f3e2c39e","line":234,"in_reply_to":"da4df55a_946713e8","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"049ca9e7a04184c2de394ae2515feefc9fa4fde3","unresolved":false,"context_lines":[{"line_number":233,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":234,"context_line":"networking-odl\u003dunknown"},{"line_number":235,"context_line":"networking-midonet\u003dunknown"},{"line_number":236,"context_line":"networking-ovn\u003dunknown"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"[operation.Metering]"},{"line_number":239,"context_line":"title\u003dMetering"}],"source_content_type":"text/x-properties","patch_set":58,"id":"da4df55a_346ca7cf","line":236,"updated":"2016-12-28 12:24:53.000000000","message":"complete","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"05c0f3e0a098019e0709318e0f10c1dcb41becc0","unresolved":false,"context_lines":[{"line_number":233,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":234,"context_line":"networking-odl\u003dunknown"},{"line_number":235,"context_line":"networking-midonet\u003dunknown"},{"line_number":236,"context_line":"networking-ovn\u003dunknown"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"[operation.Metering]"},{"line_number":239,"context_line":"title\u003dMetering"}],"source_content_type":"text/x-properties","patch_set":58,"id":"ba5201f7_13ee678b","line":236,"in_reply_to":"da4df55a_346ca7cf","updated":"2017-01-02 16:23:24.000000000","message":"Done","commit_id":"8c2500a3f1023f11092d899197176902fee83432"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"title\u003dSubnets"},{"line_number":75,"context_line":"status\u003dmandatory"},{"line_number":76,"context_line":"cli\u003dopenstack subnet *"},{"line_number":77,"context_line":"notes: The ability to create and manipulate subnets and subnet pools."},{"line_number":78,"context_line":"    Other OpenStack Client commands are create, delete, list,"},{"line_number":79,"context_line":"    pool create, pool delete, pool list, pool set, pool show,"},{"line_number":80,"context_line":"    set, show."},{"line_number":81,"context_line":"networking-ovs\u003dcomplete"},{"line_number":82,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":83,"context_line":"networking-odl\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":60,"id":"ba5201f7_108feecc","line":80,"range":{"start_line":77,"start_character":0,"end_line":80,"end_character":14},"updated":"2017-01-11 11:58:07.000000000","message":"These notes appear inline with the status, which looks odd. I\u0027d suggest adding a separate section between CLI commands and Driver support to show these.","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"title\u003dSubnets"},{"line_number":75,"context_line":"status\u003dmandatory"},{"line_number":76,"context_line":"cli\u003dopenstack subnet *"},{"line_number":77,"context_line":"notes: The ability to create and manipulate subnets and subnet pools."},{"line_number":78,"context_line":"    Other OpenStack Client commands are create, delete, list,"},{"line_number":79,"context_line":"    pool create, pool delete, pool list, pool set, pool show,"},{"line_number":80,"context_line":"    set, show."},{"line_number":81,"context_line":"networking-ovs\u003dcomplete"},{"line_number":82,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":83,"context_line":"networking-odl\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":60,"id":"ba5201f7_0c4a5d26","line":80,"range":{"start_line":77,"start_character":0,"end_line":80,"end_character":14},"in_reply_to":"ba5201f7_108feecc","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":20,"context_line":"[operation.VLAN]"},{"line_number":21,"context_line":"title\u003dVLAN provider network support"},{"line_number":22,"context_line":"status\u003dmature"},{"line_number":23,"context_line":"notes\u003dVLAN provider network support"},{"line_number":24,"context_line":"networking-ovs\u003dcomplete"},{"line_number":25,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":26,"context_line":"networking-odl\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":64,"id":"7a3c09a3_ca7864c7","line":23,"updated":"2017-01-16 14:55:25.000000000","message":"A \u0027notes\u0027 value isn\u0027t necessary if it\u0027s only duplicating the title.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":20,"context_line":"[operation.VLAN]"},{"line_number":21,"context_line":"title\u003dVLAN provider network support"},{"line_number":22,"context_line":"status\u003dmature"},{"line_number":23,"context_line":"notes\u003dVLAN provider network support"},{"line_number":24,"context_line":"networking-ovs\u003dcomplete"},{"line_number":25,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":26,"context_line":"networking-odl\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":64,"id":"7a3c09a3_6fc37438","line":23,"in_reply_to":"7a3c09a3_ca7864c7","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":30,"context_line":"[operation.VXLAN]"},{"line_number":31,"context_line":"title\u003dVXLAN provider network support"},{"line_number":32,"context_line":"status\u003dmature"},{"line_number":33,"context_line":"notes\u003dVXLAN provider network support"},{"line_number":34,"context_line":"networking-ovs\u003dcomplete"},{"line_number":35,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":36,"context_line":"networking-odl\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":64,"id":"7a3c09a3_aa7158e2","line":33,"updated":"2017-01-16 14:55:25.000000000","message":"ditto","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":30,"context_line":"[operation.VXLAN]"},{"line_number":31,"context_line":"title\u003dVXLAN provider network support"},{"line_number":32,"context_line":"status\u003dmature"},{"line_number":33,"context_line":"notes\u003dVXLAN provider network support"},{"line_number":34,"context_line":"networking-ovs\u003dcomplete"},{"line_number":35,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":36,"context_line":"networking-odl\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":64,"id":"7a3c09a3_cfe2a8d4","line":33,"in_reply_to":"7a3c09a3_aa7158e2","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":40,"context_line":"[operation.GRE]"},{"line_number":41,"context_line":"title\u003dGRE provider network support"},{"line_number":42,"context_line":"status\u003dimmature"},{"line_number":43,"context_line":"notes\u003dGRE provider network support"},{"line_number":44,"context_line":"networking-ovs\u003dcomplete"},{"line_number":45,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":46,"context_line":"networking-odl\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":64,"id":"7a3c09a3_2a7e48ae","line":43,"updated":"2017-01-16 14:55:25.000000000","message":"ditto","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":40,"context_line":"[operation.GRE]"},{"line_number":41,"context_line":"title\u003dGRE provider network support"},{"line_number":42,"context_line":"status\u003dimmature"},{"line_number":43,"context_line":"notes\u003dGRE provider network support"},{"line_number":44,"context_line":"networking-ovs\u003dcomplete"},{"line_number":45,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":46,"context_line":"networking-odl\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":64,"id":"7a3c09a3_efe5a4db","line":43,"in_reply_to":"7a3c09a3_2a7e48ae","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":50,"context_line":"[operation.Geneve]"},{"line_number":51,"context_line":"title\u003dGeneve provider network support"},{"line_number":52,"context_line":"status\u003dimmature"},{"line_number":53,"context_line":"notes\u003dGeneve provider network support"},{"line_number":54,"context_line":"networking-ovs\u003dcomplete"},{"line_number":55,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":56,"context_line":"networking-odl\u003dincomplete"}],"source_content_type":"text/x-properties","patch_set":64,"id":"7a3c09a3_8a457c71","line":53,"updated":"2017-01-16 14:55:25.000000000","message":"ditto","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":50,"context_line":"[operation.Geneve]"},{"line_number":51,"context_line":"title\u003dGeneve provider network support"},{"line_number":52,"context_line":"status\u003dimmature"},{"line_number":53,"context_line":"notes\u003dGeneve provider network support"},{"line_number":54,"context_line":"networking-ovs\u003dcomplete"},{"line_number":55,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":56,"context_line":"networking-odl\u003dincomplete"}],"source_content_type":"text/x-properties","patch_set":64,"id":"7a3c09a3_0fe910b7","line":53,"in_reply_to":"7a3c09a3_8a457c71","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"06bf38b63a26255d20fe83630879ae1d081c6046","unresolved":false,"context_lines":[{"line_number":17,"context_line":"networking-midonet\u003dNetworking MidoNet"},{"line_number":18,"context_line":"networking-ovn\u003dNetworking OVN"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[operation.VLAN]"},{"line_number":21,"context_line":"title\u003dVLAN provider network support"},{"line_number":22,"context_line":"status\u003dmature"},{"line_number":23,"context_line":"networking-ovs\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_143d682b","line":20,"updated":"2017-01-19 21:05:27.000000000","message":"I wonder if it\u0027s more readable to break this table down into two, because operation.[VLAN|Geneve|...] and operation.Network (or operation.Router) are not quite the same thing. The former is the isolation technology, the latter is an API resource (introduced by a specific API extension) that may work on a given isolation technology.","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"124c1b3ee6058169b6476e323f35d2cb213fa8a9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"networking-midonet\u003dNetworking MidoNet"},{"line_number":18,"context_line":"networking-ovn\u003dNetworking OVN"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[operation.VLAN]"},{"line_number":21,"context_line":"title\u003dVLAN provider network support"},{"line_number":22,"context_line":"status\u003dmature"},{"line_number":23,"context_line":"networking-ovs\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_285684d2","line":20,"in_reply_to":"5a3905b3_143d682b","updated":"2017-01-19 21:12:02.000000000","message":"I was actually thinking the same thing. But rather than break into two separate tables. Just remove the core resources of Network, Subnet, Router, and Port. Since all the drivers should support them. Thoughts?","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"892368911e401919ffc85b48c4c7e572cc182ad1","unresolved":false,"context_lines":[{"line_number":17,"context_line":"networking-midonet\u003dNetworking MidoNet"},{"line_number":18,"context_line":"networking-ovn\u003dNetworking OVN"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[operation.VLAN]"},{"line_number":21,"context_line":"title\u003dVLAN provider network support"},{"line_number":22,"context_line":"status\u003dmature"},{"line_number":23,"context_line":"networking-ovs\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_c95c8b4d","line":20,"in_reply_to":"5a3905b3_285684d2","updated":"2017-01-24 00:13:00.000000000","message":"Router is actually not part of the core, only neutron, subnet and ports are. If you were to drop them, that\u0027s fine by me, but this is not what I am complaining about.","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"2462c63fdf3239ca8cbdee18cd8067432976445c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"networking-midonet\u003dNetworking MidoNet"},{"line_number":18,"context_line":"networking-ovn\u003dNetworking OVN"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[operation.VLAN]"},{"line_number":21,"context_line":"title\u003dVLAN provider network support"},{"line_number":22,"context_line":"status\u003dmature"},{"line_number":23,"context_line":"networking-ovs\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_2c2fdd3f","line":20,"in_reply_to":"5a3905b3_c95c8b4d","updated":"2017-01-24 00:34:33.000000000","message":"Leaving in for now. \nIf anything else it would be breaking out into the following, each with separate tables/pages:\n\n-Basic and API Extensions\n-IPv6 Feature Support\n-Network Isolation Technology Support\n\nIf there is agreement I will do this.","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"06bf38b63a26255d20fe83630879ae1d081c6046","unresolved":false,"context_lines":[{"line_number":53,"context_line":"networking-midonet\u003dunknown"},{"line_number":54,"context_line":"networking-ovn\u003dcomplete"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"[operation.Networks]"},{"line_number":57,"context_line":"title\u003dNetworks"},{"line_number":58,"context_line":"status\u003drequired"},{"line_number":59,"context_line":"cli\u003dopenstack network *"}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_d4a4c058","line":56,"updated":"2017-01-19 21:05:27.000000000","message":"Is it possible to add the API extension (alias) that introduces this capability? For networks, subnets and ports it\u0027s the \u0027core\u0027 API, for router it\u0027s \u0027router\u0027, for External_Nets it\u0027s external-net  etc.\n\nUltimately we\u0027d want to list all of these extensions in this file and mark each driver\u0027s support. The full list can be found in [1], at least the ones we test in the gate.\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/tests/contrib/hooks/api_all_extensions","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"2462c63fdf3239ca8cbdee18cd8067432976445c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"networking-midonet\u003dunknown"},{"line_number":54,"context_line":"networking-ovn\u003dcomplete"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"[operation.Networks]"},{"line_number":57,"context_line":"title\u003dNetworks"},{"line_number":58,"context_line":"status\u003drequired"},{"line_number":59,"context_line":"cli\u003dopenstack network *"}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_ac23cd54","line":56,"in_reply_to":"5a3905b3_6943976c","updated":"2017-01-24 00:34:33.000000000","message":"have it currently doing\n\nAPI Alias\u003d \u003crouter, external-net, etc...\u003e","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"892368911e401919ffc85b48c4c7e572cc182ad1","unresolved":false,"context_lines":[{"line_number":53,"context_line":"networking-midonet\u003dunknown"},{"line_number":54,"context_line":"networking-ovn\u003dcomplete"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"[operation.Networks]"},{"line_number":57,"context_line":"title\u003dNetworks"},{"line_number":58,"context_line":"status\u003drequired"},{"line_number":59,"context_line":"cli\u003dopenstack network *"}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_6943976c","line":56,"in_reply_to":"5a3905b3_88d85855","updated":"2017-01-24 00:13:00.000000000","message":"That would be highly beneficial if you do. I suppose it\u0027s yet another attribute to this list, is it not?","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"124c1b3ee6058169b6476e323f35d2cb213fa8a9","unresolved":false,"context_lines":[{"line_number":53,"context_line":"networking-midonet\u003dunknown"},{"line_number":54,"context_line":"networking-ovn\u003dcomplete"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"[operation.Networks]"},{"line_number":57,"context_line":"title\u003dNetworks"},{"line_number":58,"context_line":"status\u003drequired"},{"line_number":59,"context_line":"cli\u003dopenstack network *"}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_88d85855","line":56,"in_reply_to":"5a3905b3_d4a4c058","updated":"2017-01-19 21:12:02.000000000","message":"I can fiddle around and see if we can add a section of api-extension.","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"06bf38b63a26255d20fe83630879ae1d081c6046","unresolved":false,"context_lines":[{"line_number":107,"context_line":"networking-midonet\u003dcomplete"},{"line_number":108,"context_line":"networking-ovn\u003dcomplete"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"[operation.IPv6]"},{"line_number":111,"context_line":"title\u003dSupport for IPv6"},{"line_number":112,"context_line":"status\u003dmature"},{"line_number":113,"context_line":"notes\u003dThe ability to support IPv6 addresses."}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_e83abccc","line":110,"updated":"2017-01-19 21:05:27.000000000","message":"I think IPv6 is also a bit of an outlier, in that it\u0027s not quite an API resource, though it may introduce new attributes to existing resources. It\u0027s a bit of a mess, but perhaps we can treat this specially. I am thinking that IPv6 would need a table of its own and see how each extension works with it (e.g. DVR, HA, DNS etc).","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"892368911e401919ffc85b48c4c7e572cc182ad1","unresolved":false,"context_lines":[{"line_number":107,"context_line":"networking-midonet\u003dcomplete"},{"line_number":108,"context_line":"networking-ovn\u003dcomplete"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"[operation.IPv6]"},{"line_number":111,"context_line":"title\u003dSupport for IPv6"},{"line_number":112,"context_line":"status\u003dmature"},{"line_number":113,"context_line":"notes\u003dThe ability to support IPv6 addresses."}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_c9756bcb","line":110,"in_reply_to":"5a3905b3_68a16ca9","updated":"2017-01-24 00:13:00.000000000","message":"We can have separate a doc dedicated to IPv6. We don\u0027t want a clutter of incoherent things listed together either. I feel we have not found the right balance yet.","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"2462c63fdf3239ca8cbdee18cd8067432976445c","unresolved":false,"context_lines":[{"line_number":107,"context_line":"networking-midonet\u003dcomplete"},{"line_number":108,"context_line":"networking-ovn\u003dcomplete"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"[operation.IPv6]"},{"line_number":111,"context_line":"title\u003dSupport for IPv6"},{"line_number":112,"context_line":"status\u003dmature"},{"line_number":113,"context_line":"notes\u003dThe ability to support IPv6 addresses."}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_4cd98956","line":110,"in_reply_to":"5a3905b3_c9756bcb","updated":"2017-01-24 00:34:33.000000000","message":"Okay will gut out IPv6 for now","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"124c1b3ee6058169b6476e323f35d2cb213fa8a9","unresolved":false,"context_lines":[{"line_number":107,"context_line":"networking-midonet\u003dcomplete"},{"line_number":108,"context_line":"networking-ovn\u003dcomplete"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"[operation.IPv6]"},{"line_number":111,"context_line":"title\u003dSupport for IPv6"},{"line_number":112,"context_line":"status\u003dmature"},{"line_number":113,"context_line":"notes\u003dThe ability to support IPv6 addresses."}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_68a16ca9","line":110,"in_reply_to":"5a3905b3_e83abccc","updated":"2017-01-19 21:12:02.000000000","message":"The way I see it is we don\u0027t want operators/end-users hopping through a bunch of tables to find the quick answers they need. \n\nIt is important to include here because right off the bat users can see whether the driver in general supports IPv6.\n\nBut up to your discretion.","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"06bf38b63a26255d20fe83630879ae1d081c6046","unresolved":false,"context_lines":[{"line_number":147,"context_line":"status\u003dimmature"},{"line_number":148,"context_line":"notes\u003dThe ability to support the distributed virtual routers."},{"line_number":149,"context_line":"networking-ovs\u003dcomplete"},{"line_number":150,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":151,"context_line":"networking-odl\u003dpartial"},{"line_number":152,"context_line":"networking-midonet\u003dcomplete"},{"line_number":153,"context_line":"networking-ovn\u003dpartial"}],"source_content_type":"text/x-properties","patch_set":66,"id":"5a3905b3_f4e7fc0f","line":150,"updated":"2017-01-19 21:05:27.000000000","message":"linuxbridge doesn\u0027t support DVR","commit_id":"edf03f6b8e744169c01f3a7dfe3b4c95db7e4dae"}],"doc/source/devref/support_matrix.rst":[{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"c3c9e84b83b988a84de8a355570fa13a036a8fa8","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"      not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"      a copy of the License at"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"          http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"      Unless required by applicable law or agreed to in writing, software"},{"line_number":9,"context_line":"      distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":10,"context_line":"      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":11,"context_line":"      License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"      under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Feature Support Matrix"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_070bead6","line":12,"range":{"start_line":2,"start_character":1,"end_line":12,"end_character":24},"updated":"2016-06-01 18:22:42.000000000","message":"same here","commit_id":"73535a4165bc37c0cdf837febe110b2c7ed3fb62"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"7ed8409294ddcb899a8cadda8dec544fddde2f11","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"      not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"      a copy of the License at"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"          http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"      Unless required by applicable law or agreed to in writing, software"},{"line_number":9,"context_line":"      distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":10,"context_line":"      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":11,"context_line":"      License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"      under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Feature Support Matrix"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_871ce36a","line":12,"range":{"start_line":2,"start_character":1,"end_line":12,"end_character":24},"in_reply_to":"9abb7d3a_070bead6","updated":"2016-06-02 05:09:54.000000000","message":"Done","commit_id":"73535a4165bc37c0cdf837febe110b2c7ed3fb62"},{"author":{"_account_id":22220,"name":"Anindita Das","email":"anindita.das@utexas.edu","username":"anudas"},"change_message_id":"2cc25ad13ac7a840b398e45b59ec121c515e2a02","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"* **Inclusivity** - people have shown ability to make effective"},{"line_number":13,"context_line":"  use of a wide range of NFV technologies with broadly"},{"line_number":14,"context_line":"  varying featuresets. Aiming to keep the requirements as inclusive"},{"line_number":15,"context_line":"  as possible, avoids second-guessing how a user wants to use their"},{"line_number":16,"context_line":"  networks."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"bacf61ea_d702f1b3","line":14,"range":{"start_line":14,"start_character":10,"end_line":14,"end_character":21},"updated":"2016-08-02 18:46:51.000000000","message":"nit: feature sets","commit_id":"8d98213fe6958a3292093a22557d8db777b3ef3e"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"53d4fa87bc2032dc5dc3a2f9f5b7c8677216019e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Feature Support Matrix"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":".. warning::"},{"line_number":5,"context_line":"    Please note, while this document is still being maintained, this is slowly"}],"source_content_type":"text/x-rst","patch_set":29,"id":"3ac371cc_6987cf61","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"updated":"2016-08-15 17:33:19.000000000","message":"Level 1 headings should have over- and underline.","commit_id":"847799f7743e85687be157608625686872b824ec"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"f5afd68086cd82f0fc26add4dde59707279c9d25","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Feature Support Matrix"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":".. warning::"},{"line_number":5,"context_line":"    Please note, while this document is still being maintained, this is slowly"}],"source_content_type":"text/x-rst","patch_set":29,"id":"3ac371cc_89b68bda","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"in_reply_to":"3ac371cc_6987cf61","updated":"2016-08-15 17:43:28.000000000","message":"Done","commit_id":"847799f7743e85687be157608625686872b824ec"},{"author":{"_account_id":22141,"name":"Rodrigo Caballero","email":"rodrigo.caballero.abraham@intel.com","username":"rcaballeromx"},"change_message_id":"53d4fa87bc2032dc5dc3a2f9f5b7c8677216019e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"* **Reality** - there are many networking drivers and plugins compatible with"},{"line_number":26,"context_line":"  Neutron. Each with their own supported feature set."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. .. support_matrix:: support_matrix.ini"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"3ac371cc_89e96b1d","line":28,"range":{"start_line":28,"start_character":3,"end_line":28,"end_character":5},"updated":"2016-08-15 17:33:19.000000000","message":"Only one set of .. is needed.","commit_id":"847799f7743e85687be157608625686872b824ec"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"f5afd68086cd82f0fc26add4dde59707279c9d25","unresolved":false,"context_lines":[{"line_number":25,"context_line":"* **Reality** - there are many networking drivers and plugins compatible with"},{"line_number":26,"context_line":"  Neutron. Each with their own supported feature set."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. .. support_matrix:: support_matrix.ini"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":29,"id":"3ac371cc_49dc9312","line":28,"range":{"start_line":28,"start_character":3,"end_line":28,"end_character":5},"in_reply_to":"3ac371cc_89e96b1d","updated":"2016-08-15 17:43:28.000000000","message":"commenting it out. The ini file is coming in a different patchset. https://review.openstack.org/#/c/324048/ . And in that patchset the second .. is removed.","commit_id":"847799f7743e85687be157608625686872b824ec"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"5707100a08e5070ec2b938acddad8ee44a343117","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    described in here: :doc:`feature_classification`"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"When considering which capabilities should be marked as mandatory the"},{"line_number":11,"context_line":"following general guiding principles were applied"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"* **Inclusivity** - people have shown ability to make effective"},{"line_number":14,"context_line":"  use of a wide range of NFV technologies with broadly"}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a71b18c_8e002c68","line":11,"updated":"2016-12-10 00:08:44.000000000","message":":","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"5707100a08e5070ec2b938acddad8ee44a343117","unresolved":false,"context_lines":[{"line_number":11,"context_line":"following general guiding principles were applied"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"* **Inclusivity** - people have shown ability to make effective"},{"line_number":14,"context_line":"  use of a wide range of NFV technologies with broadly"},{"line_number":15,"context_line":"  varying feature sets. Aiming to keep the requirements as inclusive"},{"line_number":16,"context_line":"  as possible, avoids second-guessing how a user wants to use their"},{"line_number":17,"context_line":"  networks."}],"source_content_type":"text/x-rst","patch_set":52,"id":"3a71b18c_eeefe0ae","line":14,"range":{"start_line":14,"start_character":25,"end_line":14,"end_character":28},"updated":"2016-12-10 00:08:44.000000000","message":"what has NFV to do with anything here?","commit_id":"b3fc202afe54304a93e1b02eebf9930ccd36fc2a"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"991d2324f99f5d56e1ba1c08aa61865ca285a306","unresolved":false,"context_lines":[{"line_number":5,"context_line":".. warning::"},{"line_number":6,"context_line":"    Please note, while this document is still being maintained, this is slowly"},{"line_number":7,"context_line":"    being updated to re-group and classify features using the definitions"},{"line_number":8,"context_line":"    described in here: :doc:`feature_classification`"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"When considering which capabilities should be marked as mandatory the"},{"line_number":11,"context_line":"following general guiding principles were applied:"}],"source_content_type":"text/x-rst","patch_set":53,"id":"1a6eadb0_72f2519c","line":8,"updated":"2016-12-12 18:22:23.000000000","message":".","commit_id":"52a7ced89986a774a9f5f8d9841946d9a35601ed"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"7517ceb69eae193dbc266641cd030e9d29e9a4af","unresolved":false,"context_lines":[{"line_number":5,"context_line":".. warning::"},{"line_number":6,"context_line":"    Please note, while this document is still being maintained, this is slowly"},{"line_number":7,"context_line":"    being updated to re-group and classify features using the definitions"},{"line_number":8,"context_line":"    described in here: :doc:`feature_classification`"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"When considering which capabilities should be marked as mandatory the"},{"line_number":11,"context_line":"following general guiding principles were applied:"}],"source_content_type":"text/x-rst","patch_set":53,"id":"1a6eadb0_27bfabd1","line":8,"in_reply_to":"1a6eadb0_72f2519c","updated":"2016-12-13 03:35:53.000000000","message":"Done","commit_id":"52a7ced89986a774a9f5f8d9841946d9a35601ed"},{"author":{"_account_id":23205,"name":"ianeta hutchinson","email":"ianeta.hutchinson@intel.com","username":"iphutch"},"change_message_id":"991d2324f99f5d56e1ba1c08aa61865ca285a306","unresolved":false,"context_lines":[{"line_number":21,"context_line":"  with new machines and network connectivity. Then look at what"},{"line_number":22,"context_line":"  are the minimum features required of the network service, in order"},{"line_number":23,"context_line":"  to get user instances running and connected over the network."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* **Reality** - there are many networking drivers and plugins compatible with"},{"line_number":27,"context_line":"  Neutron. Each with their own supported feature set."}],"source_content_type":"text/x-rst","patch_set":53,"id":"1a6eadb0_92d8cd1f","line":24,"updated":"2016-12-12 18:22:23.000000000","message":"Nit: remove extra blank line","commit_id":"52a7ced89986a774a9f5f8d9841946d9a35601ed"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"7517ceb69eae193dbc266641cd030e9d29e9a4af","unresolved":false,"context_lines":[{"line_number":21,"context_line":"  with new machines and network connectivity. Then look at what"},{"line_number":22,"context_line":"  are the minimum features required of the network service, in order"},{"line_number":23,"context_line":"  to get user instances running and connected over the network."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* **Reality** - there are many networking drivers and plugins compatible with"},{"line_number":27,"context_line":"  Neutron. Each with their own supported feature set."}],"source_content_type":"text/x-rst","patch_set":53,"id":"1a6eadb0_47b4a7f1","line":24,"in_reply_to":"1a6eadb0_92d8cd1f","updated":"2016-12-13 03:35:53.000000000","message":"Done","commit_id":"52a7ced89986a774a9f5f8d9841946d9a35601ed"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  to get user instances running and connected over the network."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* **Reality** - there are many networking drivers and plugins compatible with"},{"line_number":26,"context_line":"  Neutron. Each with their own supported feature set."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. support_matrix:: support_matrix.ini"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_706e7aca","line":26,"range":{"start_line":26,"start_character":2,"end_line":26,"end_character":9},"updated":"2017-01-11 11:58:07.000000000","message":"neutron","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  to get user instances running and connected over the network."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* **Reality** - there are many networking drivers and plugins compatible with"},{"line_number":26,"context_line":"  Neutron. Each with their own supported feature set."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. support_matrix:: support_matrix.ini"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":60,"id":"ba5201f7_2c6ac181","line":26,"range":{"start_line":26,"start_character":2,"end_line":26,"end_character":9},"in_reply_to":"ba5201f7_706e7aca","updated":"2017-01-11 21:09:59.000000000","message":"are you sure?","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"ab64f551ba5603b1ef53e611c9552758951a27b6","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  to get user instances running and connected over the network."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* **Reality** - there are many networking drivers and plugins compatible with"},{"line_number":26,"context_line":"  Neutron. Each with their own supported feature set."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. support_matrix:: support_matrix.ini"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":62,"id":"9a57fde8_f02f2cf4","line":26,"range":{"start_line":26,"start_character":2,"end_line":26,"end_character":9},"updated":"2017-01-12 15:23:35.000000000","message":"Responding to your reply on PS 60. See [1]. Though I don\u0027t think we strictly enforce this in our devref, it would be good to stay consistent where possible. Also, you\u0027ve used \u0027neutron\u0027 on L89 of [2], so we should at least aim for consistency within the patch. \n\n[1] http://docs.openstack.org/contributor-guide/writing-style/openstack-components.html\n[2] https://review.openstack.org/#/c/318192/60/doc/source/devref/feature_classification.rst","commit_id":"cebd011fbad51956e7dc4a404047899bdf1f0b54"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"5dd632f65bb4e0f4a3c2d9a112e1bbe58f958b1b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  to get user instances running and connected over the network."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* **Reality** - there are many networking drivers and plugins compatible with"},{"line_number":26,"context_line":"  Neutron. Each with their own supported feature set."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. support_matrix:: support_matrix.ini"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":62,"id":"9a57fde8_5b6d7931","line":26,"range":{"start_line":26,"start_character":2,"end_line":26,"end_character":9},"in_reply_to":"9a57fde8_f02f2cf4","updated":"2017-01-12 15:29:03.000000000","message":"hmmm okay. Lets be consistent. Done","commit_id":"cebd011fbad51956e7dc4a404047899bdf1f0b54"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    being updated to re-group and classify features using the definitions"},{"line_number":8,"context_line":"    described in here: :doc:`feature_classification`."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"When considering which capabilities should be marked as mandatory the"},{"line_number":11,"context_line":"following general guiding principles were applied:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"* **Inclusivity** - people have shown ability to make effective"}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_65b7a1d8","line":10,"range":{"start_line":10,"start_character":56,"end_line":10,"end_character":65},"updated":"2017-01-16 14:55:25.000000000","message":"Now that the classifications have changed, should this be \u0027Required\u0027?","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    being updated to re-group and classify features using the definitions"},{"line_number":8,"context_line":"    described in here: :doc:`feature_classification`."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"When considering which capabilities should be marked as mandatory the"},{"line_number":11,"context_line":"following general guiding principles were applied:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"* **Inclusivity** - people have shown ability to make effective"}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_0f8590cd","line":10,"range":{"start_line":10,"start_character":56,"end_line":10,"end_character":65},"in_reply_to":"7a3c09a3_65b7a1d8","updated":"2017-01-18 16:48:13.000000000","message":"mature I think is the right one","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  neutron. Each with their own supported feature set."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. support_matrix:: support_matrix.ini"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_db5f583f","line":31,"range":{"start_line":29,"start_character":0,"end_line":31,"end_character":0},"updated":"2017-01-16 14:55:25.000000000","message":"unnecessary whitespace","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  neutron. Each with their own supported feature set."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. support_matrix:: support_matrix.ini"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":64,"id":"7a3c09a3_8f48a0b4","line":31,"range":{"start_line":29,"start_character":0,"end_line":31,"end_character":0},"in_reply_to":"7a3c09a3_db5f583f","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"}],"doc/source/ext/feature_matrix.py":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        return self._build_markup(matrix)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def _load_feature_matrix(self):"},{"line_number":155,"context_line":"        \"\"\"Reads the feature-matrix.ini file and populates an instance"},{"line_number":156,"context_line":"        of the Matrix class with all the data."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        :returns: Matrix instance"}],"source_content_type":"text/x-python","patch_set":41,"id":"7a8ec9b2_44dfd70c","line":155,"range":{"start_line":155,"start_character":21,"end_line":155,"end_character":39},"updated":"2016-09-15 20:24:48.000000000","message":"You don\u0027t have any longer this file. Did you mean feature_matrix_gp?","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            if not section.startswith(\"target.\"):"},{"line_number":187,"context_line":"                continue"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"            key \u003d section[7:]"},{"line_number":190,"context_line":"            title \u003d cfg.get(section, \"title\")"},{"line_number":191,"context_line":"            link \u003d cfg.get(section, \"link\")"},{"line_number":192,"context_line":"            driver \u003d key.split(\"-\")[0]"}],"source_content_type":"text/x-python","patch_set":41,"id":"7a8ec9b2_c4d3e702","line":189,"range":{"start_line":189,"start_character":26,"end_line":189,"end_character":27},"updated":"2016-09-15 20:24:48.000000000","message":"Please use value, not constant. I believe this should be len(\"target.\")","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":270,"context_line":"                        (item, impl_status, section,"},{"line_number":271,"context_line":"                         \",\".join(MatrixImplementation.STATUS_ALL)))"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"                noteskey \u003d \"driver-notes-\" + item[12:]"},{"line_number":274,"context_line":"                notes \u003d None"},{"line_number":275,"context_line":"                if cfg.has_option(section, noteskey):"},{"line_number":276,"context_line":"                    notes \u003d cfg.get(section, noteskey)"}],"source_content_type":"text/x-python","patch_set":41,"id":"7a8ec9b2_44c99725","line":273,"range":{"start_line":273,"start_character":50,"end_line":273,"end_character":53},"updated":"2016-09-15 20:24:48.000000000","message":"What\u0027s that? Could you use descriptive variable for this number?","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":384,"context_line":"                implcol.append(impltxt)"},{"line_number":385,"context_line":"                impltxt.append(implref)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"                impl_status \u003d \"\""},{"line_number":388,"context_line":"                if impl.status \u003d\u003d MatrixImplementation.STATUS_COMPLETE:"},{"line_number":389,"context_line":"                    impl_status \u003d u\"\\u2714\""},{"line_number":390,"context_line":"                elif impl.status \u003d\u003d MatrixImplementation.STATUS_MISSING:"},{"line_number":391,"context_line":"                    impl_status \u003d u\"\\u2716\""},{"line_number":392,"context_line":"                elif impl.status \u003d\u003d MatrixImplementation.STATUS_PARTIAL:"},{"line_number":393,"context_line":"                    impl_status \u003d u\"\\u2714\""},{"line_number":394,"context_line":"                elif impl.status \u003d\u003d MatrixImplementation.STATUS_UKNOWN:"},{"line_number":395,"context_line":"                    impl_status \u003d u\"?\""},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"                implref.append(nodes.literal("},{"line_number":398,"context_line":"                    text\u003dimpl_status,"}],"source_content_type":"text/x-python","patch_set":41,"id":"7a8ec9b2_c42767c8","line":395,"range":{"start_line":387,"start_character":0,"end_line":395,"end_character":38},"updated":"2016-09-15 20:24:48.000000000","message":"You can rewrite this to something like:\n\n status_dict \u003d {\n     MatrixImplementation.STATUS_COMPLETE: u\"\\u2714\",\n     MatrixImplementation.STATUS_MISSING: u\"\\u2716\",\n     MatrixImplementation.STATUS_PARTIAL: u\"\\u2714\",\n     MatrixImplementation.STATUS_UNKNOWN: u\"?\"\n }\n impl_status \u003d status_dict.get(impl.status, \"\")\n\nBecause status_dict is constant, it can be moved to module level.","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":396,"context_line":""},{"line_number":397,"context_line":"                implref.append(nodes.literal("},{"line_number":398,"context_line":"                    text\u003dimpl_status,"},{"line_number":399,"context_line":"                    classes\u003d[\"fm_impl_summary\", \"fm_impl_\" + impl.status]))"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"                if impl.release:"},{"line_number":402,"context_line":"                    implref.append(nodes.inline(text\u003d\" %s\" % impl.release))"}],"source_content_type":"text/x-python","patch_set":41,"id":"7a8ec9b2_5f2de493","line":399,"range":{"start_line":399,"start_character":48,"end_line":399,"end_character":72},"updated":"2016-09-15 20:24:48.000000000","message":"Please don\u0027t do that. Use .format or \"%s\"","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":451,"context_line":""},{"line_number":452,"context_line":"                id \u003d re.sub(RE_PATTERN, \"_\", \"{}_{}\".format(feature.key, key))"},{"line_number":453,"context_line":"                subitem +\u003d ["},{"line_number":454,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"},{"line_number":455,"context_line":"                    nodes.literal(text\u003dimpl.status,"},{"line_number":456,"context_line":"                                  classes\u003d[\"fm_impl_\" + impl.status],"},{"line_number":457,"context_line":"                                  ids\u003d[id]),"}],"source_content_type":"text/x-python","patch_set":41,"id":"7a8ec9b2_5f7b248c","line":454,"range":{"start_line":454,"start_character":38,"end_line":454,"end_character":57},"updated":"2016-09-15 20:24:48.000000000","message":"ditto","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                subitem +\u003d ["},{"line_number":454,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"},{"line_number":455,"context_line":"                    nodes.literal(text\u003dimpl.status,"},{"line_number":456,"context_line":"                                  classes\u003d[\"fm_impl_\" + impl.status],"},{"line_number":457,"context_line":"                                  ids\u003d[id]),"},{"line_number":458,"context_line":"                ]"},{"line_number":459,"context_line":"                if impl.release:"}],"source_content_type":"text/x-python","patch_set":41,"id":"7a8ec9b2_df6734e7","line":456,"range":{"start_line":456,"start_character":43,"end_line":456,"end_character":67},"updated":"2016-09-15 20:24:48.000000000","message":"ditto","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        info_list \u003d nodes.bullet_list()"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        maturity_literal \u003d nodes.literal(text\u003dfeature.maturity,"},{"line_number":478,"context_line":"                                         classes\u003d[\"fm_maturity_\" +"},{"line_number":479,"context_line":"                                         feature.maturity])"},{"line_number":480,"context_line":"        self._append_info_list_item(info_list,"},{"line_number":481,"context_line":"                \"Maturity\", items\u003d[maturity_literal])"},{"line_number":482,"context_line":"        self._append_info_list_item(info_list,"}],"source_content_type":"text/x-python","patch_set":41,"id":"7a8ec9b2_5fa244fe","line":479,"range":{"start_line":478,"start_character":50,"end_line":479,"end_character":57},"updated":"2016-09-15 20:24:48.000000000","message":"ditto","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"ace4fabe92f3c12f730827c754ec8df2b2ed43e4","unresolved":false,"context_lines":[{"line_number":488,"context_line":"        if feature.tempest_test_uuids:"},{"line_number":489,"context_line":"            for uuid in feature.tempest_test_uuids.split(\";\"):"},{"line_number":490,"context_line":"                if uuid !\u003d \"N/A\":"},{"line_number":491,"context_line":"                    base \u003d \"https://github.com/openstack/tempest/search?q\u003d%s\""},{"line_number":492,"context_line":"                    link \u003d base % uuid"},{"line_number":493,"context_line":"                    inline_ref \u003d self._get_uri_ref(link, text\u003duuid)"},{"line_number":494,"context_line":"                    tempest_items.append(inline_ref)"}],"source_content_type":"text/x-python","patch_set":41,"id":"7a8ec9b2_1fba7c0a","line":491,"range":{"start_line":491,"start_character":28,"end_line":491,"end_character":76},"updated":"2016-09-15 20:24:48.000000000","message":"What are you searching here?","commit_id":"0710cda4886c79cff5b45c10f4eb97c7565bf6ba"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.notes \u003d notes"},{"line_number":91,"context_line":"        self.release \u003d release"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"STATUS_DICT \u003d {"},{"line_number":94,"context_line":"    MatrixImplementation.STATUS_COMPLETE: u\"\\u2714\","},{"line_number":95,"context_line":"    MatrixImplementation.STATUS_MISSING: u\"\\u2716\","},{"line_number":96,"context_line":"    MatrixImplementation.STATUS_PARTIAL: u\"\\u2714\","},{"line_number":97,"context_line":"    MatrixImplementation.STATUS_UNKNOWN: u\"?\""},{"line_number":98,"context_line":"}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_77cf9db0","line":97,"range":{"start_line":93,"start_character":0,"end_line":97,"end_character":45},"updated":"2016-09-22 13:32:32.000000000","message":"Please move this constant to line next to RE_PATTERN. Globals and constants hould be below imports.\n\n\u003e Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants.\n\nhttps://www.python.org/dev/peps/pep-0008/#imports","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.notes \u003d notes"},{"line_number":91,"context_line":"        self.release \u003d release"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"STATUS_DICT \u003d {"},{"line_number":94,"context_line":"    MatrixImplementation.STATUS_COMPLETE: u\"\\u2714\","},{"line_number":95,"context_line":"    MatrixImplementation.STATUS_MISSING: u\"\\u2716\","},{"line_number":96,"context_line":"    MatrixImplementation.STATUS_PARTIAL: u\"\\u2714\","},{"line_number":97,"context_line":"    MatrixImplementation.STATUS_UNKNOWN: u\"?\""},{"line_number":98,"context_line":"}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_dd6b721c","line":97,"range":{"start_line":93,"start_character":0,"end_line":97,"end_character":45},"in_reply_to":"5a8bc5a2_77cf9db0","updated":"2016-10-03 15:16:43.000000000","message":"cant due to MatrixImplementation declaration.","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        :param admin_doc_link: URL to the admin docs for using this feature"},{"line_number":128,"context_line":"        :param tempest_test_uuids: uuids for tests that validate this feature"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        if cli is None:"},{"line_number":131,"context_line":"            cli \u003d []"},{"line_number":132,"context_line":"        if tempest_test_uuids is None:"},{"line_number":133,"context_line":"            tempest_test_uuids \u003d []"},{"line_number":134,"context_line":"        self.key \u003d key"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_775ddde8","line":131,"range":{"start_line":130,"start_character":0,"end_line":131,"end_character":20},"updated":"2016-09-22 13:32:32.000000000","message":"You can write it as:\n\n cli \u003d cli or []","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        :param admin_doc_link: URL to the admin docs for using this feature"},{"line_number":128,"context_line":"        :param tempest_test_uuids: uuids for tests that validate this feature"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        if cli is None:"},{"line_number":131,"context_line":"            cli \u003d []"},{"line_number":132,"context_line":"        if tempest_test_uuids is None:"},{"line_number":133,"context_line":"            tempest_test_uuids \u003d []"},{"line_number":134,"context_line":"        self.key \u003d key"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_3d7c56eb","line":131,"range":{"start_line":130,"start_character":0,"end_line":131,"end_character":20},"in_reply_to":"5a8bc5a2_775ddde8","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        if cli is None:"},{"line_number":131,"context_line":"            cli \u003d []"},{"line_number":132,"context_line":"        if tempest_test_uuids is None:"},{"line_number":133,"context_line":"            tempest_test_uuids \u003d []"},{"line_number":134,"context_line":"        self.key \u003d key"},{"line_number":135,"context_line":"        self.title \u003d title"},{"line_number":136,"context_line":"        self.notes \u003d notes"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_b76f6591","line":133,"range":{"start_line":132,"start_character":0,"end_line":133,"end_character":35},"updated":"2016-09-22 13:32:32.000000000","message":"ditto","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        if cli is None:"},{"line_number":131,"context_line":"            cli \u003d []"},{"line_number":132,"context_line":"        if tempest_test_uuids is None:"},{"line_number":133,"context_line":"            tempest_test_uuids \u003d []"},{"line_number":134,"context_line":"        self.key \u003d key"},{"line_number":135,"context_line":"        self.title \u003d title"},{"line_number":136,"context_line":"        self.notes \u003d notes"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_1d1b1acb","line":133,"range":{"start_line":132,"start_character":0,"end_line":133,"end_character":35},"in_reply_to":"5a8bc5a2_b76f6591","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self.title \u003d title"},{"line_number":136,"context_line":"        self.notes \u003d notes"},{"line_number":137,"context_line":"        self.implementations \u003d {}"},{"line_number":138,"context_line":"        self.cli \u003d cli"},{"line_number":139,"context_line":"        self.maturity \u003d maturity"},{"line_number":140,"context_line":"        self.api_doc_link \u003d api_doc_link"},{"line_number":141,"context_line":"        self.admin_doc_link \u003d admin_doc_link"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_7714fdf4","line":138,"range":{"start_line":138,"start_character":19,"end_line":138,"end_character":22},"updated":"2016-09-22 13:32:32.000000000","message":"You can write if statement directly in this line, using:\n\n self.cli \u003d cli or []","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self.title \u003d title"},{"line_number":136,"context_line":"        self.notes \u003d notes"},{"line_number":137,"context_line":"        self.implementations \u003d {}"},{"line_number":138,"context_line":"        self.cli \u003d cli"},{"line_number":139,"context_line":"        self.maturity \u003d maturity"},{"line_number":140,"context_line":"        self.api_doc_link \u003d api_doc_link"},{"line_number":141,"context_line":"        self.admin_doc_link \u003d admin_doc_link"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_bd2946e8","line":138,"range":{"start_line":138,"start_character":19,"end_line":138,"end_character":22},"in_reply_to":"5a8bc5a2_7714fdf4","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        self.maturity \u003d maturity"},{"line_number":140,"context_line":"        self.api_doc_link \u003d api_doc_link"},{"line_number":141,"context_line":"        self.admin_doc_link \u003d admin_doc_link"},{"line_number":142,"context_line":"        self.tempest_test_uuids \u003d tempest_test_uuids"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class FeatureMatrixDirective(rst.Directive):"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_b7f685d5","line":142,"range":{"start_line":142,"start_character":34,"end_line":142,"end_character":52},"updated":"2016-09-22 13:32:32.000000000","message":"ditto","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        self.maturity \u003d maturity"},{"line_number":140,"context_line":"        self.api_doc_link \u003d api_doc_link"},{"line_number":141,"context_line":"        self.admin_doc_link \u003d admin_doc_link"},{"line_number":142,"context_line":"        self.tempest_test_uuids \u003d tempest_test_uuids"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"class FeatureMatrixDirective(rst.Directive):"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_9d0e4a8a","line":142,"range":{"start_line":142,"start_character":34,"end_line":142,"end_character":52},"in_reply_to":"5a8bc5a2_b7f685d5","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        targets \u003d {}"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        for section in cfg.sections():"},{"line_number":193,"context_line":"            if not section.startswith(\"target.\"):"},{"line_number":194,"context_line":"                continue"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"            key \u003d section[len(\"target.\"):]"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_d79f915d","line":193,"range":{"start_line":193,"start_character":39,"end_line":193,"end_character":46},"updated":"2016-09-22 13:32:32.000000000","message":"please assign variable to this string and reuse in line 196","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        targets \u003d {}"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        for section in cfg.sections():"},{"line_number":193,"context_line":"            if not section.startswith(\"target.\"):"},{"line_number":194,"context_line":"                continue"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"            key \u003d section[len(\"target.\"):]"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_5d1842d3","line":193,"range":{"start_line":193,"start_character":39,"end_line":193,"end_character":46},"in_reply_to":"5a8bc5a2_d79f915d","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":254,"context_line":"            # Now we\u0027ve got the basic feature details, we must process"},{"line_number":255,"context_line":"            # the details"},{"line_number":256,"context_line":"            for item in cfg.options(section):"},{"line_number":257,"context_line":"                key \u003d item.replace(\"driver-impl-\", \"\")"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"                if key not in targets:"},{"line_number":260,"context_line":"                    if item.startswith(\"driver-impl-\"):"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_9726e914","line":257,"range":{"start_line":257,"start_character":35,"end_line":257,"end_character":49},"updated":"2016-09-22 13:32:32.000000000","message":"Assign variable to this string and reuse in 260","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":254,"context_line":"            # Now we\u0027ve got the basic feature details, we must process"},{"line_number":255,"context_line":"            # the details"},{"line_number":256,"context_line":"            for item in cfg.options(section):"},{"line_number":257,"context_line":"                key \u003d item.replace(\"driver-impl-\", \"\")"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"                if key not in targets:"},{"line_number":260,"context_line":"                    if item.startswith(\"driver-impl-\"):"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_ddf6128e","line":257,"range":{"start_line":257,"start_character":35,"end_line":257,"end_character":49},"in_reply_to":"5a8bc5a2_9726e914","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                        (item, impl_status, section,"},{"line_number":277,"context_line":"                         \",\".join(MatrixImplementation.STATUS_ALL)))"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"                noteskey \u003d \"driver-notes-\" + item[len(\"driver-notes-\"):]"},{"line_number":280,"context_line":"                notes \u003d None"},{"line_number":281,"context_line":"                if cfg.has_option(section, noteskey):"},{"line_number":282,"context_line":"                    notes \u003d cfg.get(section, noteskey)"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_3736f503","line":279,"range":{"start_line":279,"start_character":55,"end_line":279,"end_character":68},"updated":"2016-09-22 13:32:32.000000000","message":"Are you sure, it should be `driver-notes-` and not `driver-impl-`?\nIn line 256 you\u0027re reading `item` which starts with `driver-impl-` so it means that `driver-notes-` is longer than that. It would mean that noteskey name would be shorter.","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                        (item, impl_status, section,"},{"line_number":277,"context_line":"                         \",\".join(MatrixImplementation.STATUS_ALL)))"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"                noteskey \u003d \"driver-notes-\" + item[len(\"driver-notes-\"):]"},{"line_number":280,"context_line":"                notes \u003d None"},{"line_number":281,"context_line":"                if cfg.has_option(section, noteskey):"},{"line_number":282,"context_line":"                    notes \u003d cfg.get(section, noteskey)"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_bdfb0678","line":279,"range":{"start_line":279,"start_character":55,"end_line":279,"end_character":68},"in_reply_to":"5a8bc5a2_3736f503","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            item.append(maturitycol)"},{"line_number":373,"context_line":"            maturitycol.append(nodes.inline("},{"line_number":374,"context_line":"                text\u003dfeature.maturity,"},{"line_number":375,"context_line":"                classes\u003d[\"fm_maturity_\" + feature.maturity]))"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"            # and then one column for each feature"},{"line_number":378,"context_line":"            impls \u003d matrix.targets.keys()"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_0a054cc1","line":375,"range":{"start_line":375,"start_character":25,"end_line":375,"end_character":58},"updated":"2016-09-22 13:32:32.000000000","message":"Please use [1] or [2]\n\n \"fm_maturity_%s\" % feature.maturity\n \"fm_maturity_{}\".format(feature.maturity)","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            item.append(maturitycol)"},{"line_number":373,"context_line":"            maturitycol.append(nodes.inline("},{"line_number":374,"context_line":"                text\u003dfeature.maturity,"},{"line_number":375,"context_line":"                classes\u003d[\"fm_maturity_\" + feature.maturity]))"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"            # and then one column for each feature"},{"line_number":378,"context_line":"            impls \u003d matrix.targets.keys()"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_1dbf9aaa","line":375,"range":{"start_line":375,"start_character":25,"end_line":375,"end_character":58},"in_reply_to":"5a8bc5a2_0a054cc1","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":394,"context_line":""},{"line_number":395,"context_line":"                implref.append(nodes.literal("},{"line_number":396,"context_line":"                    text\u003dimpl_status,"},{"line_number":397,"context_line":"                    classes\u003d[\"fm_impl_summary\", \"fm_impl_\" + impl.status]))"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"                if impl.release:"},{"line_number":400,"context_line":"                    implref.append(nodes.inline(text\u003d\" %s\" % impl.release))"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_ea0020ad","line":397,"range":{"start_line":397,"start_character":48,"end_line":397,"end_character":72},"updated":"2016-09-22 13:32:32.000000000","message":"ditto","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":394,"context_line":""},{"line_number":395,"context_line":"                implref.append(nodes.literal("},{"line_number":396,"context_line":"                    text\u003dimpl_status,"},{"line_number":397,"context_line":"                    classes\u003d[\"fm_impl_summary\", \"fm_impl_\" + impl.status]))"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"                if impl.release:"},{"line_number":400,"context_line":"                    implref.append(nodes.inline(text\u003d\" %s\" % impl.release))"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_9d000a68","line":397,"range":{"start_line":397,"start_character":48,"end_line":397,"end_character":72},"in_reply_to":"5a8bc5a2_ea0020ad","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":449,"context_line":""},{"line_number":450,"context_line":"                id \u003d re.sub(RE_PATTERN, \"_\", \"{}_{}\".format(feature.key, key))"},{"line_number":451,"context_line":"                subitem +\u003d ["},{"line_number":452,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"},{"line_number":453,"context_line":"                    nodes.literal(text\u003dimpl.status,"},{"line_number":454,"context_line":"                                  classes\u003d[\"fm_impl_\" + impl.status],"},{"line_number":455,"context_line":"                                  ids\u003d[id]),"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_4add9441","line":452,"range":{"start_line":452,"start_character":38,"end_line":452,"end_character":57},"updated":"2016-09-22 13:32:32.000000000","message":"ditto","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":449,"context_line":""},{"line_number":450,"context_line":"                id \u003d re.sub(RE_PATTERN, \"_\", \"{}_{}\".format(feature.key, key))"},{"line_number":451,"context_line":"                subitem +\u003d ["},{"line_number":452,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"},{"line_number":453,"context_line":"                    nodes.literal(text\u003dimpl.status,"},{"line_number":454,"context_line":"                                  classes\u003d[\"fm_impl_\" + impl.status],"},{"line_number":455,"context_line":"                                  ids\u003d[id]),"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_5de3e2d8","line":452,"range":{"start_line":452,"start_character":38,"end_line":452,"end_character":57},"in_reply_to":"5a8bc5a2_4add9441","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":451,"context_line":"                subitem +\u003d ["},{"line_number":452,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"},{"line_number":453,"context_line":"                    nodes.literal(text\u003dimpl.status,"},{"line_number":454,"context_line":"                                  classes\u003d[\"fm_impl_\" + impl.status],"},{"line_number":455,"context_line":"                                  ids\u003d[id]),"},{"line_number":456,"context_line":"                ]"},{"line_number":457,"context_line":"                if impl.release:"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_8ae79c11","line":454,"range":{"start_line":454,"start_character":43,"end_line":454,"end_character":67},"updated":"2016-09-22 13:32:32.000000000","message":"ditto","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":451,"context_line":"                subitem +\u003d ["},{"line_number":452,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"},{"line_number":453,"context_line":"                    nodes.literal(text\u003dimpl.status,"},{"line_number":454,"context_line":"                                  classes\u003d[\"fm_impl_\" + impl.status],"},{"line_number":455,"context_line":"                                  ids\u003d[id]),"},{"line_number":456,"context_line":"                ]"},{"line_number":457,"context_line":"                if impl.release:"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_bdd4e6eb","line":454,"range":{"start_line":454,"start_character":43,"end_line":454,"end_character":67},"in_reply_to":"5a8bc5a2_8ae79c11","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"651776b3a74ded802dd7dc4611a24ea362c77885","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        info_list \u003d nodes.bullet_list()"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        maturity_literal \u003d nodes.literal(text\u003dfeature.maturity,"},{"line_number":476,"context_line":"                                         classes\u003d[\"fm_maturity_\" +"},{"line_number":477,"context_line":"                                         feature.maturity])"},{"line_number":478,"context_line":"        self._append_info_list_item(info_list,"},{"line_number":479,"context_line":"                \"Maturity\", items\u003d[maturity_literal])"},{"line_number":480,"context_line":"        self._append_info_list_item(info_list,"}],"source_content_type":"text/x-python","patch_set":44,"id":"5a8bc5a2_4ab4b4f1","line":477,"range":{"start_line":476,"start_character":50,"end_line":477,"end_character":57},"updated":"2016-09-22 13:32:32.000000000","message":"ditto","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"82478a114c8bc7781d80950693c7592c13fdcb6b","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        info_list \u003d nodes.bullet_list()"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        maturity_literal \u003d nodes.literal(text\u003dfeature.maturity,"},{"line_number":476,"context_line":"                                         classes\u003d[\"fm_maturity_\" +"},{"line_number":477,"context_line":"                                         feature.maturity])"},{"line_number":478,"context_line":"        self._append_info_list_item(info_list,"},{"line_number":479,"context_line":"                \"Maturity\", items\u003d[maturity_literal])"},{"line_number":480,"context_line":"        self._append_info_list_item(info_list,"}],"source_content_type":"text/x-python","patch_set":44,"id":"3a98d1f4_1dd6baf0","line":477,"range":{"start_line":476,"start_character":50,"end_line":477,"end_character":57},"in_reply_to":"5a8bc5a2_4ab4b4f1","updated":"2016-10-03 15:16:43.000000000","message":"Done","commit_id":"8a9675457ec5b9660ac95e386625d663832f0d0e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"7105e76413908eec54e2845639671b8c6414d891","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        self.title \u003d title"},{"line_number":133,"context_line":"        self.notes \u003d notes"},{"line_number":134,"context_line":"        self.implementations \u003d {}"},{"line_number":135,"context_line":"        self.cli \u003d cli or []"},{"line_number":136,"context_line":"        self.maturity \u003d maturity or []"},{"line_number":137,"context_line":"        self.api_doc_link \u003d api_doc_link"},{"line_number":138,"context_line":"        self.admin_doc_link \u003d admin_doc_link"}],"source_content_type":"text/x-python","patch_set":47,"id":"fa6399be_1a3a1237","line":135,"updated":"2016-10-11 01:59:55.000000000","message":"FYI, you don\u0027t need to do that, because in @249 you\u0027re passing `[]` or some value. So you will always receive something.","commit_id":"fd0d5266f0cf38d61f7797e40e23cbf58feda3b3"}],"doc/source/ext/support_matrix.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"194df1b0c44c778ee093761634e41403fa3c5623","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class SupportMatrix(object):"},{"line_number":24,"context_line":"    \"\"\"Represents the entire support matrix for Neutron drivers \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_08d96957","line":23,"updated":"2016-05-26 17:01:04.000000000","message":"ah, cunning. I guess we can extract that from Nova and share it later on.","commit_id":"3cbf0b33e348d1011c186662b1b0116ab056ec20"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"4b8e138671924e365383a887af45496b30f546ac","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        targets \u003d {}"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        for item in cfg.options(\"targets\"):"},{"line_number":126,"context_line":"            if not item.startswith(\"networking-\"):"},{"line_number":127,"context_line":"                continue"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"            # The driver string will optionally contain"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_55853eab","line":126,"range":{"start_line":126,"start_character":12,"end_line":126,"end_character":50},"updated":"2016-06-06 18:24:26.000000000","message":"Please assign \u0027networking-\u0027 to variable.","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        targets \u003d {}"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        for item in cfg.options(\"targets\"):"},{"line_number":126,"context_line":"            if not item.startswith(\"networking-\"):"},{"line_number":127,"context_line":"                continue"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"            # The driver string will optionally contain"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_58bed565","line":126,"range":{"start_line":126,"start_character":12,"end_line":126,"end_character":50},"in_reply_to":"7aa08908_55853eab","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"4b8e138671924e365383a887af45496b30f546ac","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            # a hypervisor and architecture qualifier"},{"line_number":131,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":132,"context_line":"            # in the name"},{"line_number":133,"context_line":"            key \u003d item[12:]"},{"line_number":134,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":135,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":136,"context_line":"            if len(name) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_55737ee7","line":133,"range":{"start_line":133,"start_character":12,"end_line":133,"end_character":27},"updated":"2016-06-06 18:24:26.000000000","message":"Use this variable assigned in 126 and do `key \u003d item[len(var):]","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            # a hypervisor and architecture qualifier"},{"line_number":131,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":132,"context_line":"            # in the name"},{"line_number":133,"context_line":"            key \u003d item[12:]"},{"line_number":134,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":135,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":136,"context_line":"            if len(name) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_386ae9ee","line":133,"range":{"start_line":133,"start_character":12,"end_line":133,"end_character":27},"in_reply_to":"7aa08908_55737ee7","updated":"2016-06-07 18:34:57.000000000","message":"Done","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"4b8e138671924e365383a887af45496b30f546ac","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        return targets"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def _get_features(self, cfg, targets):"},{"line_number":160,"context_line":"        # All sections except \u0027targets\u0027 describe some feature of"},{"line_number":161,"context_line":"        # the Nova hypervisor driver implementation"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_fbd09b55","line":159,"range":{"start_line":159,"start_character":4,"end_line":159,"end_character":42},"updated":"2016-06-06 18:24:26.000000000","message":"This one small method does plenty different things. Could you split it into smaller chunks?","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"ca54ebd8acd2e6c14b1aed54d353dac2791c7931","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        return targets"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def _get_features(self, cfg, targets):"},{"line_number":160,"context_line":"        # All sections except \u0027targets\u0027 describe some feature of"},{"line_number":161,"context_line":"        # the Nova hypervisor driver implementation"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_fec32655","line":159,"range":{"start_line":159,"start_character":4,"end_line":159,"end_character":42},"in_reply_to":"7aa08908_fbd09b55","updated":"2016-06-07 18:34:57.000000000","message":"Will tackle later :)","commit_id":"85cb4f5b0c88abc6a1c13beabaecd9ff52d00c5e"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"f32cdaef2ce7631d2fea21b711852bd61d72fac2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7aa08908_e1e6da13","updated":"2016-06-07 21:48:42.000000000","message":"Does it make sense to think about getting this file into oslo somewhere so that we don\u0027t have multiple copies of it being used (e.g. nova/neutron)?","commit_id":"d2f8650dc2918e881978b9eafefe53f939d2d2ee"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8aa634ad392a7557d573f994aee4aa1e3f5ba4dc","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def _get_targets(self, cfg):"},{"line_number":121,"context_line":"        # The \u0027targets\u0027 section is special - it lists all the"},{"line_number":122,"context_line":"        # hypervisors that this file records data for"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        targets \u003d {}"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bacf61ea_1504817c","line":122,"range":{"start_line":122,"start_character":10,"end_line":122,"end_character":21},"updated":"2016-07-28 00:13:56.000000000","message":"isn\u0027t network drivers instead of hypervisors?","commit_id":"a4dabe3c2a8396889625306b394f4030db777d6c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8aa634ad392a7557d573f994aee4aa1e3f5ba4dc","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def _get_features(self, cfg, targets):"},{"line_number":161,"context_line":"        # All sections except \u0027targets\u0027 describe some feature of"},{"line_number":162,"context_line":"        # the Nova hypervisor driver implementation"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        features \u003d []"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bacf61ea_55b6f98a","line":162,"range":{"start_line":162,"start_character":14,"end_line":162,"end_character":36},"updated":"2016-07-28 00:13:56.000000000","message":"Neutron network driver?","commit_id":"a4dabe3c2a8396889625306b394f4030db777d6c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8aa634ad392a7557d573f994aee4aa1e3f5ba4dc","unresolved":false,"context_lines":[{"line_number":204,"context_line":"                                           cli)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"            # Now we\u0027ve got the basic feature details, we must process"},{"line_number":207,"context_line":"            # the hypervisor driver implementation for each feature"},{"line_number":208,"context_line":"            for item in cfg.options(section):"},{"line_number":209,"context_line":"                if not item.startswith(\"networking-\"):"},{"line_number":210,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":16,"id":"bacf61ea_357265e6","line":207,"range":{"start_line":207,"start_character":18,"end_line":207,"end_character":28},"updated":"2016-07-28 00:13:56.000000000","message":"ditto: line 122","commit_id":"a4dabe3c2a8396889625306b394f4030db777d6c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8aa634ad392a7557d573f994aee4aa1e3f5ba4dc","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        the support matrix."},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        The summary consists of a giant table, with one row"},{"line_number":253,"context_line":"        for each feature, and a column for each hypervisor"},{"line_number":254,"context_line":"        driver. It provides an \u0027at a glance\u0027 summary of the"},{"line_number":255,"context_line":"        status of each driver"},{"line_number":256,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":16,"id":"bacf61ea_154ac183","line":253,"range":{"start_line":253,"start_character":48,"end_line":253,"end_character":58},"updated":"2016-07-28 00:13:56.000000000","message":"ditto: line 122","commit_id":"a4dabe3c2a8396889625306b394f4030db777d6c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8aa634ad392a7557d573f994aee4aa1e3f5ba4dc","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                text\u003dfeature.status,"},{"line_number":316,"context_line":"                classes\u003d[\"sp_feature_\" + feature.status]))"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"            # and then one column for each hypervisor driver"},{"line_number":319,"context_line":"            impls \u003d matrix.targets.keys()"},{"line_number":320,"context_line":"            impls.sort()"},{"line_number":321,"context_line":"            for key in impls:"}],"source_content_type":"text/x-python","patch_set":16,"id":"bacf61ea_d5582959","line":318,"range":{"start_line":318,"start_character":43,"end_line":318,"end_character":53},"updated":"2016-07-28 00:13:56.000000000","message":"ditto: line 122","commit_id":"a4dabe3c2a8396889625306b394f4030db777d6c"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"8aa634ad392a7557d573f994aee4aa1e3f5ba4dc","unresolved":false,"context_lines":[{"line_number":386,"context_line":""},{"line_number":387,"context_line":"            para_divers \u003d nodes.paragraph()"},{"line_number":388,"context_line":"            para_divers.append(nodes.strong(text\u003d\"drivers:\"))"},{"line_number":389,"context_line":"            # A sub-list giving details of each hypervisor target"},{"line_number":390,"context_line":"            impls \u003d nodes.bullet_list()"},{"line_number":391,"context_line":"            for key in feature.implementations:"},{"line_number":392,"context_line":"                target \u003d matrix.targets[key]"}],"source_content_type":"text/x-python","patch_set":16,"id":"bacf61ea_f5356df7","line":389,"range":{"start_line":389,"start_character":48,"end_line":389,"end_character":58},"updated":"2016-07-28 00:13:56.000000000","message":"ditto: line 122","commit_id":"a4dabe3c2a8396889625306b394f4030db777d6c"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"a766d593fe1d57130b59dd21ec1a177964622106","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            # a hypervisor and architecture qualifier"},{"line_number":132,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":133,"context_line":"            # in the name"},{"line_number":134,"context_line":"            key \u003d item[12:]"},{"line_number":135,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":136,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":137,"context_line":"            if len(name) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_03a80b76","line":134,"range":{"start_line":134,"start_character":23,"end_line":134,"end_character":26},"updated":"2016-08-01 20:26:45.000000000","message":"Please try to avoid using meaningless numbers. If I understand it correctly, \"12\" \u003d\u003d \"networking-\".\nYou can create prefix at beginning of file (global var) and then reuse it in all possible places.\n\n PREFIX \u003d \"networking-\"\n key \u003d item[len(PREFIX):]","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"9c117b1124d5dcd284e8de47aaa980f1c31beee5","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            # a hypervisor and architecture qualifier"},{"line_number":132,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":133,"context_line":"            # in the name"},{"line_number":134,"context_line":"            key \u003d item[12:]"},{"line_number":135,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":136,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":137,"context_line":"            if len(name) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_d4b839eb","line":134,"range":{"start_line":134,"start_character":23,"end_line":134,"end_character":26},"in_reply_to":"bacf61ea_03a80b76","updated":"2016-08-02 16:50:30.000000000","message":"Done","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"a766d593fe1d57130b59dd21ec1a177964622106","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            key \u003d item[12:]"},{"line_number":135,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":136,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":137,"context_line":"            if len(name) \u003d\u003d 1:"},{"line_number":138,"context_line":"                target \u003d SupportMatrixTarget(key,"},{"line_number":139,"context_line":"                                             title,"},{"line_number":140,"context_line":"                                             name[0])"},{"line_number":141,"context_line":"            elif len(name) \u003d\u003d 2:"},{"line_number":142,"context_line":"                target \u003d SupportMatrixTarget(key,"},{"line_number":143,"context_line":"                                             title,"},{"line_number":144,"context_line":"                                             name[0],"},{"line_number":145,"context_line":"                                             name[1])"},{"line_number":146,"context_line":"            elif len(name) \u003d\u003d 3:"},{"line_number":147,"context_line":"                target \u003d SupportMatrixTarget(key,"},{"line_number":148,"context_line":"                                             title,"},{"line_number":149,"context_line":"                                             name[0],"},{"line_number":150,"context_line":"                                             name[1],"},{"line_number":151,"context_line":"                                             name[2])"},{"line_number":152,"context_line":"            else:"},{"line_number":153,"context_line":"                raise Exception(\"\u0027%s\u0027 field is malformed in \u0027[%s]\u0027 section\" %"},{"line_number":154,"context_line":"                                (item, \"DEFAULT\"))"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_e38cd7db","line":152,"range":{"start_line":137,"start_character":12,"end_line":152,"end_character":12},"updated":"2016-08-01 20:26:45.000000000","message":"You don\u0027t need to do like this. Instead of creating if/elif clauses, you can unpack list, using https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists\n\n SupportMatrixTarget(key, title, *name)","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"a766d593fe1d57130b59dd21ec1a177964622106","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                key \u003d item[12:]"},{"line_number":213,"context_line":"                if key not in targets:"},{"line_number":214,"context_line":"                    raise Exception("},{"line_number":215,"context_line":"                        \"networking- \u0027%s\u0027 in \u0027[%s]\u0027 not declared\" %"},{"line_number":216,"context_line":"                        (item, section))"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"                status \u003d cfg.get(section, item)"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_e328579c","line":215,"range":{"start_line":215,"start_character":36,"end_line":215,"end_character":37},"updated":"2016-08-01 20:26:45.000000000","message":"extra whitespace","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"9c117b1124d5dcd284e8de47aaa980f1c31beee5","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                key \u003d item[12:]"},{"line_number":213,"context_line":"                if key not in targets:"},{"line_number":214,"context_line":"                    raise Exception("},{"line_number":215,"context_line":"                        \"networking- \u0027%s\u0027 in \u0027[%s]\u0027 not declared\" %"},{"line_number":216,"context_line":"                        (item, section))"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"                status \u003d cfg.get(section, item)"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_14aad185","line":215,"range":{"start_line":215,"start_character":36,"end_line":215,"end_character":37},"in_reply_to":"bacf61ea_e328579c","updated":"2016-08-02 16:50:30.000000000","message":"Done","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"a766d593fe1d57130b59dd21ec1a177964622106","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                impltxt.append(implref)"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"                status \u003d \"\""},{"line_number":336,"context_line":"                if impl.status \u003d\u003d SupportMatrixImplementation.STATUS_COMPLETE:"},{"line_number":337,"context_line":"                    status \u003d u\"\\u2714\""},{"line_number":338,"context_line":"                elif impl.status \u003d\u003d SupportMatrixImplementation.STATUS_MISSING:"},{"line_number":339,"context_line":"                    status \u003d u\"\\u2716\""},{"line_number":340,"context_line":"                elif impl.status \u003d\u003d SupportMatrixImplementation.STATUS_PARTIAL:"},{"line_number":341,"context_line":"                    status \u003d u\"\\u2714\""},{"line_number":342,"context_line":"                elif impl.status \u003d\u003d SupportMatrixImplementation.STATUS_UNKNOWN:"},{"line_number":343,"context_line":"                    status \u003d u\"?\""},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"                implref.append(nodes.literal("},{"line_number":346,"context_line":"                    text\u003dstatus,"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_e344d74a","line":343,"range":{"start_line":336,"start_character":16,"end_line":343,"end_character":33},"updated":"2016-08-01 20:26:45.000000000","message":"Probably better idea would be to use dict, Would be simpler to maintain instead of bunch of if/else:\n\n StatusDict \u003d {SupportMatrixImplementation.STATUS_COMPLETE: u\"\\u2714\", ...}\n status \u003d StatusDict.get(impl.status, \"\")","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"9c117b1124d5dcd284e8de47aaa980f1c31beee5","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                impltxt.append(implref)"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"                status \u003d \"\""},{"line_number":336,"context_line":"                if impl.status \u003d\u003d SupportMatrixImplementation.STATUS_COMPLETE:"},{"line_number":337,"context_line":"                    status \u003d u\"\\u2714\""},{"line_number":338,"context_line":"                elif impl.status \u003d\u003d SupportMatrixImplementation.STATUS_MISSING:"},{"line_number":339,"context_line":"                    status \u003d u\"\\u2716\""},{"line_number":340,"context_line":"                elif impl.status \u003d\u003d SupportMatrixImplementation.STATUS_PARTIAL:"},{"line_number":341,"context_line":"                    status \u003d u\"\\u2714\""},{"line_number":342,"context_line":"                elif impl.status \u003d\u003d SupportMatrixImplementation.STATUS_UNKNOWN:"},{"line_number":343,"context_line":"                    status \u003d u\"?\""},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"                implref.append(nodes.literal("},{"line_number":346,"context_line":"                    text\u003dstatus,"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_fd7281af","line":343,"range":{"start_line":336,"start_character":16,"end_line":343,"end_character":33},"in_reply_to":"bacf61ea_e344d74a","updated":"2016-08-02 16:50:30.000000000","message":"Done","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"a766d593fe1d57130b59dd21ec1a177964622106","unresolved":false,"context_lines":[{"line_number":393,"context_line":"                impl \u003d feature.implementations[key]"},{"line_number":394,"context_line":"                subitem \u003d nodes.list_item()"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"                id \u003d re.sub(\"[^a-zA-Z0-9_]\", \"_\","},{"line_number":397,"context_line":"                            feature.key + \"_\" + key)"},{"line_number":398,"context_line":"                subitem +\u003d ["},{"line_number":399,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_43c04350","line":396,"range":{"start_line":396,"start_character":28,"end_line":396,"end_character":43},"updated":"2016-08-01 20:26:45.000000000","message":"You are using the same pattern couple of times across the file. You can compile it once, and then reuse it here, like:\n\n re_pattern \u003d re.compile(\"[^a-zA-Z0-9_]\")\n re.sub(re_pattern, \"_\", \"string\"","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"9c117b1124d5dcd284e8de47aaa980f1c31beee5","unresolved":false,"context_lines":[{"line_number":393,"context_line":"                impl \u003d feature.implementations[key]"},{"line_number":394,"context_line":"                subitem \u003d nodes.list_item()"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"                id \u003d re.sub(\"[^a-zA-Z0-9_]\", \"_\","},{"line_number":397,"context_line":"                            feature.key + \"_\" + key)"},{"line_number":398,"context_line":"                subitem +\u003d ["},{"line_number":399,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_0eb47dcf","line":396,"range":{"start_line":396,"start_character":28,"end_line":396,"end_character":43},"in_reply_to":"bacf61ea_43c04350","updated":"2016-08-02 16:50:30.000000000","message":"done. Thanks","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"a766d593fe1d57130b59dd21ec1a177964622106","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                subitem \u003d nodes.list_item()"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"                id \u003d re.sub(\"[^a-zA-Z0-9_]\", \"_\","},{"line_number":397,"context_line":"                            feature.key + \"_\" + key)"},{"line_number":398,"context_line":"                subitem +\u003d ["},{"line_number":399,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"},{"line_number":400,"context_line":"                    nodes.literal(text\u003dimpl.status,"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_e3d17724","line":397,"range":{"start_line":397,"start_character":28,"end_line":397,"end_character":51},"updated":"2016-08-01 20:26:45.000000000","message":"Please don\u0027t do this. Instead, use:\n\n \"{}_{}\".format(feature.key, key)","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"9c117b1124d5dcd284e8de47aaa980f1c31beee5","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                subitem \u003d nodes.list_item()"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"                id \u003d re.sub(\"[^a-zA-Z0-9_]\", \"_\","},{"line_number":397,"context_line":"                            feature.key + \"_\" + key)"},{"line_number":398,"context_line":"                subitem +\u003d ["},{"line_number":399,"context_line":"                    nodes.strong(text\u003dtarget.title + \": \"),"},{"line_number":400,"context_line":"                    nodes.literal(text\u003dimpl.status,"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_8eba2d09","line":397,"range":{"start_line":397,"start_character":28,"end_line":397,"end_character":51},"in_reply_to":"bacf61ea_e3d17724","updated":"2016-08-02 16:50:30.000000000","message":"Done","commit_id":"cb69888f5f7c469bddb535f278c08dcb0fd0d92c"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class SupportMatrix(object):"},{"line_number":32,"context_line":"    \"\"\"Represents the entire support matrix for Neutron drivers \"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self):"},{"line_number":35,"context_line":"        self.features \u003d []"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_aa6dd533","line":32,"range":{"start_line":32,"start_character":63,"end_line":32,"end_character":64},"updated":"2017-01-11 11:58:07.000000000","message":"unnecessary space","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class SupportMatrix(object):"},{"line_number":32,"context_line":"    \"\"\"Represents the entire support matrix for Neutron drivers \"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self):"},{"line_number":35,"context_line":"        self.features \u003d []"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_4cfe25af","line":32,"range":{"start_line":32,"start_character":63,"end_line":32,"end_character":64},"in_reply_to":"ba5201f7_aa6dd533","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class SupportMatrixFeature(object):"},{"line_number":40,"context_line":"    STATUS_OPTIONAL \u003d \"optional\""},{"line_number":41,"context_line":"    STATUS_CHOICE \u003d \"choice\""},{"line_number":42,"context_line":"    STATUS_MANDATORY \u003d \"mandatory\""},{"line_number":43,"context_line":"    STATUS_CONDITIONAL \u003d \"condition\""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_30e9521b","line":41,"range":{"start_line":40,"start_character":4,"end_line":41,"end_character":28},"updated":"2017-01-11 11:58:07.000000000","message":"What\u0027s the difference between optional and choice? If they\u0027re the same then optional is the better word to use.","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class SupportMatrixFeature(object):"},{"line_number":40,"context_line":"    STATUS_OPTIONAL \u003d \"optional\""},{"line_number":41,"context_line":"    STATUS_CHOICE \u003d \"choice\""},{"line_number":42,"context_line":"    STATUS_MANDATORY \u003d \"mandatory\""},{"line_number":43,"context_line":"    STATUS_CONDITIONAL \u003d \"condition\""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_ec21994e","line":41,"range":{"start_line":40,"start_character":4,"end_line":41,"end_character":28},"in_reply_to":"ba5201f7_30e9521b","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    STATUS_OPTIONAL \u003d \"optional\""},{"line_number":41,"context_line":"    STATUS_CHOICE \u003d \"choice\""},{"line_number":42,"context_line":"    STATUS_MANDATORY \u003d \"mandatory\""},{"line_number":43,"context_line":"    STATUS_CONDITIONAL \u003d \"condition\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    STATUS_ALL \u003d [STATUS_OPTIONAL, STATUS_CHOICE, STATUS_MANDATORY,"},{"line_number":46,"context_line":"                  STATUS_CONDITIONAL]"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_8a0f3187","line":43,"range":{"start_line":43,"start_character":26,"end_line":43,"end_character":35},"updated":"2017-01-11 11:58:07.000000000","message":"conditional ?","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    STATUS_OPTIONAL \u003d \"optional\""},{"line_number":41,"context_line":"    STATUS_CHOICE \u003d \"choice\""},{"line_number":42,"context_line":"    STATUS_MANDATORY \u003d \"mandatory\""},{"line_number":43,"context_line":"    STATUS_CONDITIONAL \u003d \"condition\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    STATUS_ALL \u003d [STATUS_OPTIONAL, STATUS_CHOICE, STATUS_MANDATORY,"},{"line_number":46,"context_line":"                  STATUS_CONDITIONAL]"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_6cd4c91f","line":43,"range":{"start_line":43,"start_character":26,"end_line":43,"end_character":35},"in_reply_to":"ba5201f7_8a0f3187","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"            status \u003d SupportMatrixFeature.STATUS_OPTIONAL"},{"line_number":176,"context_line":"            if cfg.has_option(section, \"status\"):"},{"line_number":177,"context_line":"                # The value is a string  \"status(group)\" where"},{"line_number":178,"context_line":"                # the \u0027group\u0027 part is optional"},{"line_number":179,"context_line":"                status \u003d cfg.get(section, \"status\")"},{"line_number":180,"context_line":"                offset \u003d status.find(\"(\")"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_0af8a148","line":177,"range":{"start_line":177,"start_character":39,"end_line":177,"end_character":41},"updated":"2017-01-11 11:58:07.000000000","message":"double space","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"            status \u003d SupportMatrixFeature.STATUS_OPTIONAL"},{"line_number":176,"context_line":"            if cfg.has_option(section, \"status\"):"},{"line_number":177,"context_line":"                # The value is a string  \"status(group)\" where"},{"line_number":178,"context_line":"                # the \u0027group\u0027 part is optional"},{"line_number":179,"context_line":"                status \u003d cfg.get(section, \"status\")"},{"line_number":180,"context_line":"                offset \u003d status.find(\"(\")"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_ece8b9e4","line":177,"range":{"start_line":177,"start_character":39,"end_line":177,"end_character":41},"in_reply_to":"ba5201f7_0af8a148","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":344,"context_line":"    def _build_details(self, matrix, content):"},{"line_number":345,"context_line":"        \"\"\"Constructs the docutils content for the details of"},{"line_number":346,"context_line":"        the support matrix."},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"        \"\"\""},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        details_title \u003d nodes.subtitle(text\u003d\"Details\")"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_8523a2a6","line":347,"updated":"2017-01-11 11:58:07.000000000","message":"extra whitespace","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":344,"context_line":"    def _build_details(self, matrix, content):"},{"line_number":345,"context_line":"        \"\"\"Constructs the docutils content for the details of"},{"line_number":346,"context_line":"        the support matrix."},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"        \"\"\""},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        details_title \u003d nodes.subtitle(text\u003d\"Details\")"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_4cec65f3","line":347,"in_reply_to":"ba5201f7_8523a2a6","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":359,"context_line":""},{"line_number":360,"context_line":"            status \u003d feature.status"},{"line_number":361,"context_line":"            if feature.group is not None:"},{"line_number":362,"context_line":"                status +\u003d \"({})\".format(feature.group)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"            feature_id \u003d re.sub(RE_PATTERN, \"_\", feature.key)"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_30887222","line":362,"range":{"start_line":362,"start_character":16,"end_line":362,"end_character":54},"updated":"2017-01-11 11:58:07.000000000","message":"Adding the name of the feature after the status looks very strange, and simply duplicates the title above it. I\u0027d remove it so it just renders as:\n\n  VLAN provider network support\n\n  Status: choice","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":359,"context_line":""},{"line_number":360,"context_line":"            status \u003d feature.status"},{"line_number":361,"context_line":"            if feature.group is not None:"},{"line_number":362,"context_line":"                status +\u003d \"({})\".format(feature.group)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"            feature_id \u003d re.sub(RE_PATTERN, \"_\", feature.key)"},{"line_number":365,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_0c7b3d29","line":362,"range":{"start_line":362,"start_character":16,"end_line":362,"end_character":54},"in_reply_to":"ba5201f7_30887222","updated":"2017-01-11 21:09:59.000000000","message":"Sorry I don\u0027t understand. Could you provide more info on what you want to change?","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                item.append(self._create_cli_paragraph(feature))"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"            para_divers \u003d nodes.paragraph()"},{"line_number":379,"context_line":"            para_divers.append(nodes.strong(text\u003d\"drivers:\"))"},{"line_number":380,"context_line":"            # A sub-list giving details of each backend driver target"},{"line_number":381,"context_line":"            impls \u003d nodes.bullet_list()"},{"line_number":382,"context_line":"            for key in feature.implementations:"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_f0db4a19","line":379,"range":{"start_line":379,"start_character":50,"end_line":379,"end_character":58},"updated":"2017-01-11 11:58:07.000000000","message":"Suggest changing this to \"Driver support:\"","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                item.append(self._create_cli_paragraph(feature))"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"            para_divers \u003d nodes.paragraph()"},{"line_number":379,"context_line":"            para_divers.append(nodes.strong(text\u003d\"drivers:\"))"},{"line_number":380,"context_line":"            # A sub-list giving details of each backend driver target"},{"line_number":381,"context_line":"            impls \u003d nodes.bullet_list()"},{"line_number":382,"context_line":"            for key in feature.implementations:"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_ac96b13b","line":379,"range":{"start_line":379,"start_character":50,"end_line":379,"end_character":58},"in_reply_to":"ba5201f7_f0db4a19","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":418,"context_line":"            notes.append(item)"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"    def _create_cli_paragraph(self, feature):"},{"line_number":421,"context_line":"        \u0027\u0027\u0027Create a paragraph which represents the CLI commands of the feature"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        The paragraph will have a bullet list of CLI commands."},{"line_number":424,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_650cfe94","line":421,"range":{"start_line":421,"start_character":8,"end_line":421,"end_character":11},"updated":"2017-01-11 11:58:07.000000000","message":"\"\"\"","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":418,"context_line":"            notes.append(item)"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"    def _create_cli_paragraph(self, feature):"},{"line_number":421,"context_line":"        \u0027\u0027\u0027Create a paragraph which represents the CLI commands of the feature"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        The paragraph will have a bullet list of CLI commands."},{"line_number":424,"context_line":"        \u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_4ca8e577","line":421,"range":{"start_line":421,"start_character":8,"end_line":421,"end_character":11},"in_reply_to":"ba5201f7_650cfe94","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"3e54bbc78e21d9e186e6f55944830e1a4e01d7e7","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        \u0027\u0027\u0027Create a paragraph which represents the CLI commands of the feature"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        The paragraph will have a bullet list of CLI commands."},{"line_number":424,"context_line":"        \u0027\u0027\u0027"},{"line_number":425,"context_line":"        para \u003d nodes.paragraph()"},{"line_number":426,"context_line":"        para.append(nodes.strong(text\u003d\"CLI commands:\"))"},{"line_number":427,"context_line":"        commands \u003d nodes.bullet_list()"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_051c12c0","line":424,"range":{"start_line":424,"start_character":8,"end_line":424,"end_character":11},"updated":"2017-01-11 11:58:07.000000000","message":"\"\"\"","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"e26b54231eff446b7707dbd087ca42d638bbb0c1","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        \u0027\u0027\u0027Create a paragraph which represents the CLI commands of the feature"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        The paragraph will have a bullet list of CLI commands."},{"line_number":424,"context_line":"        \u0027\u0027\u0027"},{"line_number":425,"context_line":"        para \u003d nodes.paragraph()"},{"line_number":426,"context_line":"        para.append(nodes.strong(text\u003d\"CLI commands:\"))"},{"line_number":427,"context_line":"        commands \u003d nodes.bullet_list()"}],"source_content_type":"text/x-python","patch_set":60,"id":"ba5201f7_2caba176","line":424,"range":{"start_line":424,"start_character":8,"end_line":424,"end_character":11},"in_reply_to":"ba5201f7_051c12c0","updated":"2017-01-11 21:09:59.000000000","message":"Done","commit_id":"87f016a6e30406be1887841631463f1d1acdc974"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"ab64f551ba5603b1ef53e611c9552758951a27b6","unresolved":false,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"            status \u003d feature.status"},{"line_number":360,"context_line":"            if feature.group is not None:"},{"line_number":361,"context_line":"                status +\u003d \"({})\".format(feature.group)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"            feature_id \u003d re.sub(RE_PATTERN, \"_\", feature.key)"},{"line_number":364,"context_line":""}],"source_content_type":"text/x-python","patch_set":62,"id":"9a57fde8_3bf8b5e5","line":361,"updated":"2017-01-12 15:23:35.000000000","message":"Responding to your reply on PS 60. See [1]. That\u0027s how the matrix appeared in that patchset. Note that in the Details section the status lines appears as:\n\n  Status: choice. VLAN provider network support\n\nOr similar for each feature name. I was suggesting that everything after \u0027choice.\u0027 should be removed. Now though the status line seems to be gone completely [2]. Was that intentional?\n\n[1] http://docs-draft.openstack.org/92/318192/60/check/gate-neutron-docs-ubuntu-xenial/fdd6041/doc/build/html/devref/support_matrix.html\n[2] http://docs-draft.openstack.org/92/318192/62/check/gate-neutron-docs-ubuntu-xenial/b44f34d/doc/build/html/devref/support_matrix.html","commit_id":"cebd011fbad51956e7dc4a404047899bdf1f0b54"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"5dd632f65bb4e0f4a3c2d9a112e1bbe58f958b1b","unresolved":false,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"            status \u003d feature.status"},{"line_number":360,"context_line":"            if feature.group is not None:"},{"line_number":361,"context_line":"                status +\u003d \"({})\".format(feature.group)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"            feature_id \u003d re.sub(RE_PATTERN, \"_\", feature.key)"},{"line_number":364,"context_line":""}],"source_content_type":"text/x-python","patch_set":62,"id":"9a57fde8_db624916","line":361,"in_reply_to":"9a57fde8_3bf8b5e5","updated":"2017-01-12 15:29:03.000000000","message":"Yea I took out the choice part in the details section and just the notes remain. \n\nIt may look weird because some of the notes are the same as the title, but I can add on to the notes by adding references/links. \n\nI had to leave the notes section because people were commenting to explain what each \u0027target\u0027 or feature was","commit_id":"cebd011fbad51956e7dc4a404047899bdf1f0b54"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class SupportMatrixFeature(object):"},{"line_number":40,"context_line":"    STATUS_IMMATURE \u003d \"immature\""},{"line_number":41,"context_line":"    STATUS_MATURE \u003d \"mature\""},{"line_number":42,"context_line":"    STATUS_REQUIRED \u003d \"required\""},{"line_number":43,"context_line":"    STATUS_DEPRECATED \u003d \"deprecated\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    STATUS_ALL \u003d [STATUS_IMMATURE, STATUS_MATURE,"},{"line_number":46,"context_line":"                  STATUS_REQUIRED, STATUS_DEPRECATED]"}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_1bb63d3d","line":43,"range":{"start_line":40,"start_character":0,"end_line":43,"end_character":36},"updated":"2017-01-16 14:55:25.000000000","message":"Can we capitalise these?","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class SupportMatrixFeature(object):"},{"line_number":40,"context_line":"    STATUS_IMMATURE \u003d \"immature\""},{"line_number":41,"context_line":"    STATUS_MATURE \u003d \"mature\""},{"line_number":42,"context_line":"    STATUS_REQUIRED \u003d \"required\""},{"line_number":43,"context_line":"    STATUS_DEPRECATED \u003d \"deprecated\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    STATUS_ALL \u003d [STATUS_IMMATURE, STATUS_MATURE,"},{"line_number":46,"context_line":"                  STATUS_REQUIRED, STATUS_DEPRECATED]"}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_6ffb7447","line":43,"range":{"start_line":40,"start_character":0,"end_line":43,"end_character":36},"in_reply_to":"7a3c09a3_1bb63d3d","updated":"2017-01-18 16:48:13.000000000","message":"I would much rather leave them as is. Upon building looks better lowercase","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            if not item.startswith(network_target):"},{"line_number":141,"context_line":"                continue"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            # The driver string will optionally contain"},{"line_number":144,"context_line":"            # a hypervisor and architecture qualifier"},{"line_number":145,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":146,"context_line":"            # in the name"},{"line_number":147,"context_line":"            key \u003d item[len(network_target):]"},{"line_number":148,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":149,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":150,"context_line":"            if len(name) \u003e 3:"},{"line_number":151,"context_line":"                raise Exception(\"\u0027%s\u0027 field is malformed in \u0027[%s]\u0027 section\" %"},{"line_number":152,"context_line":"                                (item, \"DEFAULT\"))"},{"line_number":153,"context_line":"            else:"},{"line_number":154,"context_line":"                target \u003d SupportMatrixTarget(key, title, *name)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            targets[key] \u003d target"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_f65a694f","line":154,"range":{"start_line":143,"start_character":12,"end_line":154,"end_character":63},"updated":"2017-01-16 14:55:25.000000000","message":"Is this logic required here? Looks like it could be a remnant of the nova implementation.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            if not item.startswith(network_target):"},{"line_number":141,"context_line":"                continue"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            # The driver string will optionally contain"},{"line_number":144,"context_line":"            # a hypervisor and architecture qualifier"},{"line_number":145,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":146,"context_line":"            # in the name"},{"line_number":147,"context_line":"            key \u003d item[len(network_target):]"},{"line_number":148,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":149,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":150,"context_line":"            if len(name) \u003e 3:"},{"line_number":151,"context_line":"                raise Exception(\"\u0027%s\u0027 field is malformed in \u0027[%s]\u0027 section\" %"},{"line_number":152,"context_line":"                                (item, \"DEFAULT\"))"},{"line_number":153,"context_line":"            else:"},{"line_number":154,"context_line":"                target \u003d SupportMatrixTarget(key, title, *name)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            targets[key] \u003d target"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_d22b2f80","line":154,"range":{"start_line":143,"start_character":12,"end_line":154,"end_character":63},"in_reply_to":"7a3c09a3_f65a694f","updated":"2017-01-18 16:48:13.000000000","message":"its required since in the matrix the names are \u0027network-*\u0027 this logic splits out the name.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"            status \u003d SupportMatrixFeature.STATUS_IMMATURE"},{"line_number":176,"context_line":"            if cfg.has_option(section, \"status\"):"},{"line_number":177,"context_line":"                # The value is a string \"status(group)\" where"},{"line_number":178,"context_line":"                # the \u0027group\u0027 part is optional"},{"line_number":179,"context_line":"                status \u003d cfg.get(section, \"status\")"},{"line_number":180,"context_line":"                offset \u003d status.find(\"(\")"},{"line_number":181,"context_line":"                group \u003d None"}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_b8960f4a","line":178,"range":{"start_line":177,"start_character":16,"end_line":178,"end_character":46},"updated":"2017-01-16 14:55:25.000000000","message":"Does this apply? None of the features listed use this.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"            status \u003d SupportMatrixFeature.STATUS_IMMATURE"},{"line_number":176,"context_line":"            if cfg.has_option(section, \"status\"):"},{"line_number":177,"context_line":"                # The value is a string \"status(group)\" where"},{"line_number":178,"context_line":"                # the \u0027group\u0027 part is optional"},{"line_number":179,"context_line":"                status \u003d cfg.get(section, \"status\")"},{"line_number":180,"context_line":"                offset \u003d status.find(\"(\")"},{"line_number":181,"context_line":"                group \u003d None"}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_52249f0b","line":178,"range":{"start_line":177,"start_character":16,"end_line":178,"end_character":46},"in_reply_to":"7a3c09a3_b8960f4a","updated":"2017-01-18 16:48:13.000000000","message":"The offset and group are actually needed to print out the status column. Else everything returns as \u0027immature\u0027 which is the default.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":302,"context_line":"            # the hyperlink target name linking to details"},{"line_number":303,"context_line":"            feature_id \u003d re.sub(RE_PATTERN, \"_\", feature.key)"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"            # first the to fixed columns for title/status"},{"line_number":306,"context_line":"            key_col \u003d nodes.entry()"},{"line_number":307,"context_line":"            item.append(key_col)"},{"line_number":308,"context_line":"            key_ref \u003d nodes.reference(refid\u003dfeature_id)"}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_78e827b5","line":305,"range":{"start_line":305,"start_character":24,"end_line":305,"end_character":26},"updated":"2017-01-16 14:55:25.000000000","message":"nit: remove","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":302,"context_line":"            # the hyperlink target name linking to details"},{"line_number":303,"context_line":"            feature_id \u003d re.sub(RE_PATTERN, \"_\", feature.key)"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"            # first the to fixed columns for title/status"},{"line_number":306,"context_line":"            key_col \u003d nodes.entry()"},{"line_number":307,"context_line":"            item.append(key_col)"},{"line_number":308,"context_line":"            key_ref \u003d nodes.reference(refid\u003dfeature_id)"}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_f2582b8c","line":305,"range":{"start_line":305,"start_character":24,"end_line":305,"end_character":26},"in_reply_to":"7a3c09a3_78e827b5","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7d02136d323096513f7eac9be1a24feaad90be13","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            item.append(nodes.strong(text\u003dfeature.title, ids\u003d[feature_id]))"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"            para \u003d nodes.paragraph()"},{"line_number":370,"context_line":"            para.append(nodes.strong(text\u003d\"Status: {}. \".format(status)))"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if feature.cli:"},{"line_number":373,"context_line":"                item.append(self._create_cli_paragraph(feature))"}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_6a64d048","line":370,"range":{"start_line":370,"start_character":12,"end_line":370,"end_character":73},"updated":"2017-01-16 14:55:25.000000000","message":"This isn\u0027t appearing in the rendered page since PS 62. Only the Notes and Driver Support sections are working.","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"895d4513253e1e90ac3f579b57a7a51b3dc13943","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            item.append(nodes.strong(text\u003dfeature.title, ids\u003d[feature_id]))"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"            para \u003d nodes.paragraph()"},{"line_number":370,"context_line":"            para.append(nodes.strong(text\u003d\"Status: {}. \".format(status)))"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"            if feature.cli:"},{"line_number":373,"context_line":"                item.append(self._create_cli_paragraph(feature))"}],"source_content_type":"text/x-python","patch_set":64,"id":"7a3c09a3_12d3f7d5","line":370,"range":{"start_line":370,"start_character":12,"end_line":370,"end_character":73},"in_reply_to":"7a3c09a3_6a64d048","updated":"2017-01-18 16:48:13.000000000","message":"Done","commit_id":"99fc696c2cb85485c9fff96efe04978527b817ab"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"52de8049986a93bb3ce421ed5554e23071957e9f","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            if not item.startswith(network_target):"},{"line_number":141,"context_line":"                continue"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            # The driver string will optionally contain"},{"line_number":144,"context_line":"            # \u0027networking-*\u0027 qualifier"},{"line_number":145,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":146,"context_line":"            # in the name"},{"line_number":147,"context_line":"            key \u003d item[len(network_target):]"},{"line_number":148,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":149,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":150,"context_line":"            if len(name) \u003e 3:"},{"line_number":151,"context_line":"                raise Exception(\"\u0027%s\u0027 field is malformed in \u0027[%s]\u0027 section\" %"},{"line_number":152,"context_line":"                                (item, \"DEFAULT\"))"},{"line_number":153,"context_line":"            else:"},{"line_number":154,"context_line":"                target \u003d SupportMatrixTarget(key, title, *name)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            targets[key] \u003d target"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":67,"id":"5a3905b3_5967b2e8","line":154,"range":{"start_line":143,"start_character":12,"end_line":154,"end_character":63},"updated":"2017-01-23 11:11:24.000000000","message":"Do we have a rule in neutron restricting driver names to 3 segments? I\u0027m not aware of one. It seems to me that the only thing we need to validate here is that the string starts with \"networking-\".","commit_id":"4f5bf13ebbdbe2d4e2b9baa27984cbe9ccda874c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"abcb94a26d604a78ea175c76c5c640637d718055","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            if not item.startswith(network_target):"},{"line_number":141,"context_line":"                continue"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            # The driver string will optionally contain"},{"line_number":144,"context_line":"            # \u0027networking-*\u0027 qualifier"},{"line_number":145,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":146,"context_line":"            # in the name"},{"line_number":147,"context_line":"            key \u003d item[len(network_target):]"},{"line_number":148,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":149,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":150,"context_line":"            if len(name) \u003e 3:"},{"line_number":151,"context_line":"                raise Exception(\"\u0027%s\u0027 field is malformed in \u0027[%s]\u0027 section\" %"},{"line_number":152,"context_line":"                                (item, \"DEFAULT\"))"},{"line_number":153,"context_line":"            else:"},{"line_number":154,"context_line":"                target \u003d SupportMatrixTarget(key, title, *name)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            targets[key] \u003d target"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":67,"id":"5a3905b3_34ccad69","line":154,"range":{"start_line":143,"start_character":12,"end_line":154,"end_character":63},"in_reply_to":"5a3905b3_5967b2e8","updated":"2017-01-23 11:52:18.000000000","message":"its hard coded to 3 because its the longest driver name \u0027networking-linux-bridge\u0027","commit_id":"4f5bf13ebbdbe2d4e2b9baa27984cbe9ccda874c"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"52de8049986a93bb3ce421ed5554e23071957e9f","unresolved":false,"context_lines":[{"line_number":364,"context_line":"            feature_id \u003d re.sub(RE_PATTERN, \"_\", feature.key)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"            # Highlight the feature title name"},{"line_number":367,"context_line":"            item.append(nodes.strong(text\u003dfeature.title, ids\u003d[feature_id]))"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"            if feature.cli:"},{"line_number":370,"context_line":"                item.append(self._create_cli_paragraph(feature))"}],"source_content_type":"text/x-python","patch_set":67,"id":"5a3905b3_3e43ac43","line":367,"updated":"2017-01-23 11:11:24.000000000","message":"What happened to the Status line? My comment on PS64 was to point out that it wasn\u0027t working and should be fixed, not that it should be removed entirely :) I think it was a useful piece of information to include, and I\u0027d like to see it come back. Check the difference between the current build and [1]. The beginning of each details section used to look like:\n\n  VLAN provider network support\n\n  Status: choice. VLAN provider network support\n\nWith the changes made since then it should look like:\n\n  VLAN provider network support\n\n  Status: mature\n\n[1] http://docs-draft.openstack.org/92/318192/60/check/gate-neutron-docs-ubuntu-xenial/fdd6041/doc/build/html/devref/support_matrix.html","commit_id":"4f5bf13ebbdbe2d4e2b9baa27984cbe9ccda874c"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"abcb94a26d604a78ea175c76c5c640637d718055","unresolved":false,"context_lines":[{"line_number":364,"context_line":"            feature_id \u003d re.sub(RE_PATTERN, \"_\", feature.key)"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"            # Highlight the feature title name"},{"line_number":367,"context_line":"            item.append(nodes.strong(text\u003dfeature.title, ids\u003d[feature_id]))"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"            if feature.cli:"},{"line_number":370,"context_line":"                item.append(self._create_cli_paragraph(feature))"}],"source_content_type":"text/x-python","patch_set":67,"id":"5a3905b3_d4e369d7","line":367,"in_reply_to":"5a3905b3_3e43ac43","updated":"2017-01-23 11:52:18.000000000","message":"bah. okay","commit_id":"4f5bf13ebbdbe2d4e2b9baa27984cbe9ccda874c"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"1998a7a2b6a9e733c2b3c4ec67365b32d6280232","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            if not item.startswith(network_target):"},{"line_number":141,"context_line":"                continue"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            # The driver string will optionally contain"},{"line_number":144,"context_line":"            # \u0027networking-*\u0027 qualifier"},{"line_number":145,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":146,"context_line":"            # in the name"},{"line_number":147,"context_line":"            key \u003d item[len(network_target):]"},{"line_number":148,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":149,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":150,"context_line":"            if len(name) \u003e 3:"},{"line_number":151,"context_line":"                raise Exception(\"\u0027%s\u0027 field is malformed in \u0027[%s]\u0027 section\" %"},{"line_number":152,"context_line":"                                (item, \"DEFAULT\"))"},{"line_number":153,"context_line":"            else:"},{"line_number":154,"context_line":"                target \u003d SupportMatrixTarget(key, title, *name)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            targets[key] \u003d target"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":68,"id":"5a3905b3_c41e4eba","line":154,"range":{"start_line":143,"start_character":12,"end_line":154,"end_character":63},"updated":"2017-01-23 14:19:07.000000000","message":"I still don\u0027t think this is necessary, but it\u0027s not currently breaking anything so I\u0027m happy to take that discussion to a future patch.","commit_id":"40941ada7f6b5d315fe8d799941af3ab8bb23a66"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"3d3e67d598da562351f6795ef5f0d9871a74ecce","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            if not item.startswith(network_target):"},{"line_number":141,"context_line":"                continue"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"            # The driver string will optionally contain"},{"line_number":144,"context_line":"            # \u0027networking-*\u0027 qualifier"},{"line_number":145,"context_line":"            # so we expect between 1 and 3 components"},{"line_number":146,"context_line":"            # in the name"},{"line_number":147,"context_line":"            key \u003d item[len(network_target):]"},{"line_number":148,"context_line":"            title \u003d cfg.get(\"targets\", item)"},{"line_number":149,"context_line":"            name \u003d key.split(\"-\")"},{"line_number":150,"context_line":"            if len(name) \u003e 3:"},{"line_number":151,"context_line":"                raise Exception(\"\u0027%s\u0027 field is malformed in \u0027[%s]\u0027 section\" %"},{"line_number":152,"context_line":"                                (item, \"DEFAULT\"))"},{"line_number":153,"context_line":"            else:"},{"line_number":154,"context_line":"                target \u003d SupportMatrixTarget(key, title, *name)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            targets[key] \u003d target"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":68,"id":"5a3905b3_f87a0523","line":154,"range":{"start_line":143,"start_character":12,"end_line":154,"end_character":63},"in_reply_to":"5a3905b3_c41e4eba","updated":"2017-01-23 16:57:37.000000000","message":"There probably is an easier way to be able to enforce the name of the target driver and make sure they show up in the matrix. This is how Nova initially did it and I Just left it the same\n\nThanks for the reviews John.","commit_id":"40941ada7f6b5d315fe8d799941af3ab8bb23a66"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"4d75a511d993fb49bb6f1bb4ca4eafaaca68af6d","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"            # Add maturity status"},{"line_number":377,"context_line":"            para \u003d nodes.paragraph()"},{"line_number":378,"context_line":"            para.append(nodes.strong(text\u003d\"Status: {}. \".format(status)))"},{"line_number":379,"context_line":"            item.append(para)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"            # If API Alias exists add it"}],"source_content_type":"text/x-python","patch_set":78,"id":"3a1ff146_f6636518","line":378,"range":{"start_line":378,"start_character":53,"end_line":378,"end_character":54},"updated":"2017-03-15 22:18:09.000000000","message":"nit: please remove this dot.  It looks strange:\n\n\u003e Status: required.","commit_id":"1888faa90a32e9297f2b981e5c67e8bf46bbed7e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"c930b5528cd8e6dc76f5be2e6e37856bd1a59a29","unresolved":false,"context_lines":[{"line_number":375,"context_line":""},{"line_number":376,"context_line":"            # Add maturity status"},{"line_number":377,"context_line":"            para \u003d nodes.paragraph()"},{"line_number":378,"context_line":"            para.append(nodes.strong(text\u003d\"Status: {}. \".format(status)))"},{"line_number":379,"context_line":"            item.append(para)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"            # If API Alias exists add it"}],"source_content_type":"text/x-python","patch_set":78,"id":"3a1ff146_ec60f837","line":378,"range":{"start_line":378,"start_character":53,"end_line":378,"end_character":54},"in_reply_to":"3a1ff146_f6636518","updated":"2017-03-15 23:32:25.000000000","message":"Done","commit_id":"1888faa90a32e9297f2b981e5c67e8bf46bbed7e"},{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"4d75a511d993fb49bb6f1bb4ca4eafaaca68af6d","unresolved":false,"context_lines":[{"line_number":382,"context_line":"            if feature.api is not None:"},{"line_number":383,"context_line":"                para \u003d nodes.paragraph()"},{"line_number":384,"context_line":"                para.append("},{"line_number":385,"context_line":"                    nodes.strong(text\u003d\"API Alias: {}. \".format(feature.api)))"},{"line_number":386,"context_line":"                item.append(para)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            if feature.cli:"}],"source_content_type":"text/x-python","patch_set":78,"id":"3a1ff146_b682cd92","line":385,"range":{"start_line":385,"start_character":52,"end_line":385,"end_character":53},"updated":"2017-03-15 22:18:09.000000000","message":"This dot needs to be definitely removed. You are referring to API alias, which is not ended with dot.","commit_id":"1888faa90a32e9297f2b981e5c67e8bf46bbed7e"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"c930b5528cd8e6dc76f5be2e6e37856bd1a59a29","unresolved":false,"context_lines":[{"line_number":382,"context_line":"            if feature.api is not None:"},{"line_number":383,"context_line":"                para \u003d nodes.paragraph()"},{"line_number":384,"context_line":"                para.append("},{"line_number":385,"context_line":"                    nodes.strong(text\u003d\"API Alias: {}. \".format(feature.api)))"},{"line_number":386,"context_line":"                item.append(para)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"            if feature.cli:"}],"source_content_type":"text/x-python","patch_set":78,"id":"3a1ff146_cc733c14","line":385,"range":{"start_line":385,"start_character":52,"end_line":385,"end_character":53},"in_reply_to":"3a1ff146_b682cd92","updated":"2017-03-15 23:32:25.000000000","message":"Done","commit_id":"1888faa90a32e9297f2b981e5c67e8bf46bbed7e"}],"doc/source/feature_classification/feature_classification_guide.rst":[{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"62e0499c45adc90191cf6f6f69059cba2400e7e3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Guide"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"This document describes how features are listed in"}],"source_content_type":"text/x-rst","patch_set":72,"id":"3a461143_60f1c194","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":5},"updated":"2017-02-01 11:38:28.000000000","message":"Suggest changing this to \u0027Introduction\u0027, or \u0027Neutron feature classification\u0027 and making this page the root of the tree, as with the Stadium and Policies sections above.","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"330dd731b572b1c10222151a8fc86140e73db7e0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Guide"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"This document describes how features are listed in"}],"source_content_type":"text/x-rst","patch_set":72,"id":"3a461143_a1daba15","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":5},"in_reply_to":"3a461143_60f1c194","updated":"2017-02-01 19:26:15.000000000","message":"Put to Introduction.\n\nWith featcl it just looks very repetitive. Intro is more descriptive","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"}],"doc/source/feature_classification/feature_classification_introduction.rst":[{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"2cbe589d9bda53f54b69cfe944ebd312b27cb2cb","unresolved":false,"context_lines":[{"line_number":14,"context_line":"   stable, and tested. This approach ensures a good user-experience"},{"line_number":15,"context_line":"   for those well-maintained features."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#. Enable users to get help for the features not yet fully completed and"},{"line_number":18,"context_line":"   maintained. The feature classification should also provide clear"},{"line_number":19,"context_line":"   instruction on how to help improve the feature."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":".. note::"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":73,"id":"1a430d35_082a842c","line":19,"range":{"start_line":17,"start_character":3,"end_line":19,"end_character":50},"updated":"2017-02-06 13:26:46.000000000","message":"This goal isn\u0027t achieved yet. Please either make the changes or file a follow-up bug.","commit_id":"f001bede782480635a6b61ff9253fa29c3dd6e4d"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"353b035d643a20fc07f65b3c22c452fb1e0c9014","unresolved":false,"context_lines":[{"line_number":14,"context_line":"   stable, and tested. This approach ensures a good user-experience"},{"line_number":15,"context_line":"   for those well-maintained features."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"#. Enable users to get help for the features not yet fully completed and"},{"line_number":18,"context_line":"   maintained. The feature classification should also provide clear"},{"line_number":19,"context_line":"   instruction on how to help improve the feature."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":".. note::"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":73,"id":"1a430d35_339cfabf","line":19,"range":{"start_line":17,"start_character":3,"end_line":19,"end_character":50},"in_reply_to":"1a430d35_082a842c","updated":"2017-02-06 22:07:19.000000000","message":"Done","commit_id":"f001bede782480635a6b61ff9253fa29c3dd6e4d"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"2cbe589d9bda53f54b69cfe944ebd312b27cb2cb","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"These definitions clarify the terminology used throughout this document."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Users"},{"line_number":34,"context_line":"-----"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The follwing user types will be referenced in this document:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Application deployer: creates and deletes servers, directly or"},{"line_number":39,"context_line":"  indirectly, via the APIs."},{"line_number":40,"context_line":"* Application developer: creates cloud applications."},{"line_number":41,"context_line":"  See `Quinn - application developer \u003chttp://docs.openstack.org/"},{"line_number":42,"context_line":"  contributor-guide/ux-ui-guidelines/ux-personas/app-developer.html\u003e`_"},{"line_number":43,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":44,"context_line":"* Cloud operator: manages the cloud. See `Rey - cloud operator"},{"line_number":45,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide/ux-ui-guidelines/"},{"line_number":46,"context_line":"  ux-personas/cloud-ops.html\u003e`_"},{"line_number":47,"context_line":"  for more details on the cloud operator role in OpenStack."},{"line_number":48,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":49,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Feature group"},{"line_number":52,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":73,"id":"1a430d35_a8d33037","line":49,"range":{"start_line":33,"start_character":0,"end_line":49,"end_character":75},"updated":"2017-02-06 13:26:46.000000000","message":"Are the users described in this section still intended to be used anywhere in this doc? If not, then remove this section. But if they are, then please make the changes or file a follow-up bug (this could be the same bug as above).","commit_id":"f001bede782480635a6b61ff9253fa29c3dd6e4d"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"353b035d643a20fc07f65b3c22c452fb1e0c9014","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"These definitions clarify the terminology used throughout this document."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Users"},{"line_number":34,"context_line":"-----"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"The follwing user types will be referenced in this document:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Application deployer: creates and deletes servers, directly or"},{"line_number":39,"context_line":"  indirectly, via the APIs."},{"line_number":40,"context_line":"* Application developer: creates cloud applications."},{"line_number":41,"context_line":"  See `Quinn - application developer \u003chttp://docs.openstack.org/"},{"line_number":42,"context_line":"  contributor-guide/ux-ui-guidelines/ux-personas/app-developer.html\u003e`_"},{"line_number":43,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":44,"context_line":"* Cloud operator: manages the cloud. See `Rey - cloud operator"},{"line_number":45,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide/ux-ui-guidelines/"},{"line_number":46,"context_line":"  ux-personas/cloud-ops.html\u003e`_"},{"line_number":47,"context_line":"  for more details on the cloud operator role in OpenStack."},{"line_number":48,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":49,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Feature group"},{"line_number":52,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":73,"id":"1a430d35_73a68211","line":49,"range":{"start_line":33,"start_character":0,"end_line":49,"end_character":75},"in_reply_to":"1a430d35_a8d33037","updated":"2017-02-06 22:07:19.000000000","message":"I think it could be reworded. But it is more of a \u0027who would this stuff be useful for\u0027","commit_id":"f001bede782480635a6b61ff9253fa29c3dd6e4d"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"2cbe589d9bda53f54b69cfe944ebd312b27cb2cb","unresolved":false,"context_lines":[{"line_number":48,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":49,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Feature group"},{"line_number":52,"context_line":"-------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"To reduce the size of the matrix, features are organized into groups."},{"line_number":55,"context_line":"Each group maps to a set of user stories that can be validated by a set"},{"line_number":56,"context_line":"of scenarios and tests."},{"line_number":57,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Feature group status"},{"line_number":60,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":73,"id":"1a430d35_486e4c97","line":57,"range":{"start_line":51,"start_character":0,"end_line":57,"end_character":56},"updated":"2017-02-06 13:26:46.000000000","message":"I\u0027m not sure this really applies. It\u0027s just been copy/pasted directly from the nova version. Can you show how the features have been organized into groups? Otherwise we should remove it.","commit_id":"f001bede782480635a6b61ff9253fa29c3dd6e4d"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"353b035d643a20fc07f65b3c22c452fb1e0c9014","unresolved":false,"context_lines":[{"line_number":48,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":49,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Feature group"},{"line_number":52,"context_line":"-------------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"To reduce the size of the matrix, features are organized into groups."},{"line_number":55,"context_line":"Each group maps to a set of user stories that can be validated by a set"},{"line_number":56,"context_line":"of scenarios and tests."},{"line_number":57,"context_line":"Typically, this is achieved with a set of tempest tests."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Feature group status"},{"line_number":60,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":73,"id":"1a430d35_138d3e7b","line":57,"range":{"start_line":51,"start_character":0,"end_line":57,"end_character":56},"in_reply_to":"1a430d35_486e4c97","updated":"2017-02-06 22:07:19.000000000","message":"Done","commit_id":"f001bede782480635a6b61ff9253fa29c3dd6e4d"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7e2d3d236755e3e8b0b254e73b4e2450ee4e6f2b","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Goals"},{"line_number":9,"context_line":"~~~~~"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The object of this document is to dnform users whether or not"},{"line_number":12,"context_line":"features are complete, well-documented, stable, and tested."},{"line_number":13,"context_line":"This approach ensures a good user-experience for those well-maintained features."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_72feca6c","line":11,"range":{"start_line":11,"start_character":34,"end_line":11,"end_character":40},"updated":"2017-03-07 15:19:14.000000000","message":"inform","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"d08e089b12fda5f78785600cbdf460b57b42188f","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Goals"},{"line_number":9,"context_line":"~~~~~"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The object of this document is to dnform users whether or not"},{"line_number":12,"context_line":"features are complete, well-documented, stable, and tested."},{"line_number":13,"context_line":"This approach ensures a good user-experience for those well-maintained features."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_c0da3b78","line":11,"range":{"start_line":11,"start_character":34,"end_line":11,"end_character":40},"in_reply_to":"9a30ddce_72feca6c","updated":"2017-03-07 16:59:41.000000000","message":"Done","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7e2d3d236755e3e8b0b254e73b4e2450ee4e6f2b","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"These definitions clarify the terminology used throughout this document."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Users"},{"line_number":28,"context_line":"-----"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"The follwing feature classification documents are intended"},{"line_number":31,"context_line":"for these types of users:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Application deployer: creates and deletes servers, directly or"},{"line_number":34,"context_line":"  indirectly, via the APIs."},{"line_number":35,"context_line":"* Application developer: creates cloud applications."},{"line_number":36,"context_line":"  See `Quinn - application developer \u003chttp://docs.openstack.org/"},{"line_number":37,"context_line":"  contributor-guide/ux-ui-guidelines/ux-personas/app-developer.html\u003e`_"},{"line_number":38,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":39,"context_line":"* Cloud operator: manages the cloud. See `Rey - cloud operator"},{"line_number":40,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide/ux-ui-guidelines/"},{"line_number":41,"context_line":"  ux-personas/cloud-ops.html\u003e`_"},{"line_number":42,"context_line":"  for more details on the cloud operator role in OpenStack."},{"line_number":43,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":44,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Feature group status"},{"line_number":47,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_f24e3ac0","line":44,"range":{"start_line":27,"start_character":0,"end_line":44,"end_character":75},"updated":"2017-03-07 15:19:14.000000000","message":"Honestly I don\u0027t see what value this section adds, given that no distinctions are made as to which parts of the document are aimed at which classes of users.","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"d08e089b12fda5f78785600cbdf460b57b42188f","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"These definitions clarify the terminology used throughout this document."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Users"},{"line_number":28,"context_line":"-----"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"The follwing feature classification documents are intended"},{"line_number":31,"context_line":"for these types of users:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Application deployer: creates and deletes servers, directly or"},{"line_number":34,"context_line":"  indirectly, via the APIs."},{"line_number":35,"context_line":"* Application developer: creates cloud applications."},{"line_number":36,"context_line":"  See `Quinn - application developer \u003chttp://docs.openstack.org/"},{"line_number":37,"context_line":"  contributor-guide/ux-ui-guidelines/ux-personas/app-developer.html\u003e`_"},{"line_number":38,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":39,"context_line":"* Cloud operator: manages the cloud. See `Rey - cloud operator"},{"line_number":40,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide/ux-ui-guidelines/"},{"line_number":41,"context_line":"  ux-personas/cloud-ops.html\u003e`_"},{"line_number":42,"context_line":"  for more details on the cloud operator role in OpenStack."},{"line_number":43,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":44,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Feature group status"},{"line_number":47,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_60e7cfe4","line":44,"range":{"start_line":27,"start_character":0,"end_line":44,"end_character":75},"in_reply_to":"9a30ddce_f24e3ac0","updated":"2017-03-07 16:59:41.000000000","message":"Well its a more general overview of who this doc is useful for. I.E. email was sent out a month ago of some operator asking for essentially this doc. Reading this initially would tell him this will contain atleast some of the answers.","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7e2d3d236755e3e8b0b254e73b4e2450ee4e6f2b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":44,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Feature group status"},{"line_number":47,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Immature"}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_b28922cd","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":13},"updated":"2017-03-07 15:19:14.000000000","message":"feature \u0027group\u0027 no longer makes sense now that the section on grouping has been removed.","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"d08e089b12fda5f78785600cbdf460b57b42188f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":44,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Feature group status"},{"line_number":47,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Immature"}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_60834fcd","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":13},"in_reply_to":"9a30ddce_b28922cd","updated":"2017-03-07 16:59:41.000000000","message":"Done","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7e2d3d236755e3e8b0b254e73b4e2450ee4e6f2b","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Immature"},{"line_number":50,"context_line":"* Mature"},{"line_number":51,"context_line":"* Complete and Required"},{"line_number":52,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Immature"}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_dd106751","line":51,"range":{"start_line":51,"start_character":2,"end_line":51,"end_character":23},"updated":"2017-03-07 15:19:14.000000000","message":"Since the descriptive section below and the tables themselves only use \u0027Required\u0027, let\u0027s change this to just \u0027Required\u0027.","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"d08e089b12fda5f78785600cbdf460b57b42188f","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Immature"},{"line_number":50,"context_line":"* Mature"},{"line_number":51,"context_line":"* Complete and Required"},{"line_number":52,"context_line":"* Deprecated (scheduled to be removed in a future release)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Immature"}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_4009eb94","line":51,"range":{"start_line":51,"start_character":2,"end_line":51,"end_character":23},"in_reply_to":"9a30ddce_dd106751","updated":"2017-03-07 16:59:41.000000000","message":"Done","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7e2d3d236755e3e8b0b254e73b4e2450ee4e6f2b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Deprecated features are no longer supported and only security related fixes"},{"line_number":91,"context_line":"or development will happen towards them."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. note::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    Any new drivers must prove that they support all required features"},{"line_number":96,"context_line":"    before they are merged into neutron."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":".. important::"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_5dd55741","line":96,"range":{"start_line":93,"start_character":0,"end_line":96,"end_character":40},"updated":"2017-03-07 15:19:14.000000000","message":"Move this to the end of the Required section.","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"d08e089b12fda5f78785600cbdf460b57b42188f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"Deprecated features are no longer supported and only security related fixes"},{"line_number":91,"context_line":"or development will happen towards them."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. note::"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    Any new drivers must prove that they support all required features"},{"line_number":96,"context_line":"    before they are merged into neutron."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":".. important::"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_3b042614","line":96,"range":{"start_line":93,"start_character":0,"end_line":96,"end_character":40},"in_reply_to":"9a30ddce_5dd55741","updated":"2017-03-07 16:59:41.000000000","message":"Done\n\nmoved the \u0027important\u0027 flag as well to end of doc","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7e2d3d236755e3e8b0b254e73b4e2450ee4e6f2b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    unrelated to the DefCore effort."},{"line_number":102,"context_line":"    See `InteropWG \u003chttps://wiki.openstack.org/wiki/Governance/InteropWG\u003e`_"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Deployment ratings of feature groups"},{"line_number":105,"context_line":"------------------------------------"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The deployment rating shows only the state of the tests for each"}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_3d37c3b1","line":104,"range":{"start_line":104,"start_character":30,"end_line":104,"end_character":36},"updated":"2017-03-07 15:19:14.000000000","message":"Ditto L46","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"d08e089b12fda5f78785600cbdf460b57b42188f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    unrelated to the DefCore effort."},{"line_number":102,"context_line":"    See `InteropWG \u003chttps://wiki.openstack.org/wiki/Governance/InteropWG\u003e`_"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Deployment ratings of feature groups"},{"line_number":105,"context_line":"------------------------------------"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The deployment rating shows only the state of the tests for each"}],"source_content_type":"text/x-rst","patch_set":76,"id":"9a30ddce_9b13525c","line":104,"range":{"start_line":104,"start_character":30,"end_line":104,"end_character":36},"in_reply_to":"9a30ddce_3d37c3b1","updated":"2017-03-07 16:59:41.000000000","message":"Done","commit_id":"73f7a063c6061d7321839e8553eb870bc1e04c5f"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7ff8a345299a924229ba54b982a3540256804dbc","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"These definitions clarify the terminology used throughout this document."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Users"},{"line_number":28,"context_line":"-----"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"The follwing feature classification documents are intended"},{"line_number":31,"context_line":"for these types of users:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Application deployer: creates and deletes servers, directly or"},{"line_number":34,"context_line":"  indirectly, via the APIs."},{"line_number":35,"context_line":"* Application developer: creates cloud applications."},{"line_number":36,"context_line":"  See `Quinn - application developer \u003chttp://docs.openstack.org/"},{"line_number":37,"context_line":"  contributor-guide/ux-ui-guidelines/ux-personas/app-developer.html\u003e`_"},{"line_number":38,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":39,"context_line":"* Cloud operator: manages the cloud. See `Rey - cloud operator"},{"line_number":40,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide/ux-ui-guidelines/"},{"line_number":41,"context_line":"  ux-personas/cloud-ops.html\u003e`_"},{"line_number":42,"context_line":"  for more details on the cloud operator role in OpenStack."},{"line_number":43,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":44,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Feature status"},{"line_number":47,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":77,"id":"9a30ddce_2acf4d80","line":44,"range":{"start_line":27,"start_character":0,"end_line":44,"end_character":75},"updated":"2017-03-08 11:21:30.000000000","message":"Comment from previous patch still applies. This is redundant if the definitions aren\u0027t used for anything. These documents will be useful to many more groups than those listed, so unless there are specific parts that apply only to the above users then this adds nothing.","commit_id":"5c8c7074c88db6eface5b274e5ef4c93eff1a449"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"b5d1c1744cf0fcd521ab14d0335b8f0ab16719a0","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"These definitions clarify the terminology used throughout this document."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Users"},{"line_number":28,"context_line":"-----"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"The follwing feature classification documents are intended"},{"line_number":31,"context_line":"for these types of users:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Application deployer: creates and deletes servers, directly or"},{"line_number":34,"context_line":"  indirectly, via the APIs."},{"line_number":35,"context_line":"* Application developer: creates cloud applications."},{"line_number":36,"context_line":"  See `Quinn - application developer \u003chttp://docs.openstack.org/"},{"line_number":37,"context_line":"  contributor-guide/ux-ui-guidelines/ux-personas/app-developer.html\u003e`_"},{"line_number":38,"context_line":"  for more details about the application developer role in OpenStack."},{"line_number":39,"context_line":"* Cloud operator: manages the cloud. See `Rey - cloud operator"},{"line_number":40,"context_line":"  \u003chttp://docs.openstack.org/contributor-guide/ux-ui-guidelines/"},{"line_number":41,"context_line":"  ux-personas/cloud-ops.html\u003e`_"},{"line_number":42,"context_line":"  for more details on the cloud operator role in OpenStack."},{"line_number":43,"context_line":"* Self-service administrator: both runs and uses the cloud."},{"line_number":44,"context_line":"  This user merges the roles of a cloud operator and application developer."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Feature status"},{"line_number":47,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":77,"id":"9a30ddce_146b5586","line":44,"range":{"start_line":27,"start_character":0,"end_line":44,"end_character":75},"in_reply_to":"9a30ddce_2acf4d80","updated":"2017-03-09 16:14:27.000000000","message":"Done","commit_id":"5c8c7074c88db6eface5b274e5ef4c93eff1a449"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"7ff8a345299a924229ba54b982a3540256804dbc","unresolved":false,"context_lines":[{"line_number":100,"context_line":"-----------------------------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"The deployment rating shows only the state of the tests for each"},{"line_number":103,"context_line":"feature group on a particular deployment."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. important::"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":77,"id":"9a30ddce_2afaedbd","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":13},"updated":"2017-03-08 11:21:30.000000000","message":"Still one more reference to groups to remove.","commit_id":"5c8c7074c88db6eface5b274e5ef4c93eff1a449"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"b5d1c1744cf0fcd521ab14d0335b8f0ab16719a0","unresolved":false,"context_lines":[{"line_number":100,"context_line":"-----------------------------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"The deployment rating shows only the state of the tests for each"},{"line_number":103,"context_line":"feature group on a particular deployment."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. important::"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":77,"id":"9a30ddce_34685987","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":13},"in_reply_to":"9a30ddce_2afaedbd","updated":"2017-03-09 16:14:27.000000000","message":"Done","commit_id":"5c8c7074c88db6eface5b274e5ef4c93eff1a449"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"bcb5e83b18749cdd15c387020f89708101541445","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The object of this document is to inform users whether or not"},{"line_number":12,"context_line":"features are complete, well-documented, stable, and tested."},{"line_number":13,"context_line":"This approach ensures a good user-experience for those well-maintained features."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. note::"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":79,"id":"1a1ced50_0c6532e0","line":13,"range":{"start_line":13,"start_character":22,"end_line":13,"end_character":23},"updated":"2017-03-20 18:39:22.000000000","message":"remove","commit_id":"c0130c57e5138a8906fad7cab9cf820b88064d72"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"bcb5e83b18749cdd15c387020f89708101541445","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The object of this document is to inform users whether or not"},{"line_number":12,"context_line":"features are complete, well-documented, stable, and tested."},{"line_number":13,"context_line":"This approach ensures a good user-experience for those well-maintained features."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. note::"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":79,"id":"1a1ced50_ec69b6bf","line":13,"range":{"start_line":13,"start_character":29,"end_line":13,"end_character":44},"updated":"2017-03-20 18:39:22.000000000","message":"user experience","commit_id":"c0130c57e5138a8906fad7cab9cf820b88064d72"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"bcb5e83b18749cdd15c387020f89708101541445","unresolved":false,"context_lines":[{"line_number":61,"context_line":"--------"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Required features are core networking principles that have been thoroughly"},{"line_number":64,"context_line":"tested and have been implemented in real-world use cases."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In addition they satisfy the same criteria for any mature features."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":79,"id":"1a1ced50_acf41ef2","line":64,"range":{"start_line":64,"start_character":36,"end_line":64,"end_character":46},"updated":"2017-03-20 18:39:22.000000000","message":"real world","commit_id":"c0130c57e5138a8906fad7cab9cf820b88064d72"}],"doc/source/feature_classification/general_feature_support_matrix.ini":[{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"62e0499c45adc90191cf6f6f69059cba2400e7e3","unresolved":false,"context_lines":[{"line_number":20,"context_line":"[operation.Networks]"},{"line_number":21,"context_line":"title\u003dNetworks"},{"line_number":22,"context_line":"status\u003drequired"},{"line_number":23,"context_line":"api\u003dnetworks"},{"line_number":24,"context_line":"cli\u003dopenstack network *"},{"line_number":25,"context_line":"notes\u003dThe ability to create, modify and delete networks."},{"line_number":26,"context_line":"   Other OpenStack Client commands are create, delete, list,"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_8066adb8","line":23,"range":{"start_line":23,"start_character":4,"end_line":23,"end_character":12},"updated":"2017-02-01 11:38:28.000000000","message":"Based on Armando\u0027s comments on PS66, should this be \u0027core\u0027 for the core resources?","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"330dd731b572b1c10222151a8fc86140e73db7e0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"[operation.Networks]"},{"line_number":21,"context_line":"title\u003dNetworks"},{"line_number":22,"context_line":"status\u003drequired"},{"line_number":23,"context_line":"api\u003dnetworks"},{"line_number":24,"context_line":"cli\u003dopenstack network *"},{"line_number":25,"context_line":"notes\u003dThe ability to create, modify and delete networks."},{"line_number":26,"context_line":"   Other OpenStack Client commands are create, delete, list,"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_61f7f28c","line":23,"range":{"start_line":23,"start_character":4,"end_line":23,"end_character":12},"in_reply_to":"3a461143_8066adb8","updated":"2017-02-01 19:26:15.000000000","message":"Done","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"62e0499c45adc90191cf6f6f69059cba2400e7e3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"[operation.Subnets]"},{"line_number":35,"context_line":"title\u003dSubnets"},{"line_number":36,"context_line":"status\u003drequired"},{"line_number":37,"context_line":"api\u003dsubnets"},{"line_number":38,"context_line":"cli\u003dopenstack subnet *"},{"line_number":39,"context_line":"notes\u003dThe ability to create and manipulate subnets and subnet pools."},{"line_number":40,"context_line":"    Other OpenStack Client commands are create, delete, list,"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_c00a75d1","line":37,"range":{"start_line":37,"start_character":4,"end_line":37,"end_character":11},"updated":"2017-02-01 11:38:28.000000000","message":"ditto","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"330dd731b572b1c10222151a8fc86140e73db7e0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"[operation.Subnets]"},{"line_number":35,"context_line":"title\u003dSubnets"},{"line_number":36,"context_line":"status\u003drequired"},{"line_number":37,"context_line":"api\u003dsubnets"},{"line_number":38,"context_line":"cli\u003dopenstack subnet *"},{"line_number":39,"context_line":"notes\u003dThe ability to create and manipulate subnets and subnet pools."},{"line_number":40,"context_line":"    Other OpenStack Client commands are create, delete, list,"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_a1f1da97","line":37,"range":{"start_line":37,"start_character":4,"end_line":37,"end_character":11},"in_reply_to":"3a461143_c00a75d1","updated":"2017-02-01 19:26:15.000000000","message":"Done","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"62e0499c45adc90191cf6f6f69059cba2400e7e3","unresolved":false,"context_lines":[{"line_number":49,"context_line":"[operation.Ports]"},{"line_number":50,"context_line":"title\u003dPorts"},{"line_number":51,"context_line":"status\u003drequired"},{"line_number":52,"context_line":"api\u003dports"},{"line_number":53,"context_line":"cli\u003dopenstack port *"},{"line_number":54,"context_line":"notes\u003dThe ability to create and manipulate ports."},{"line_number":55,"context_line":"    Other OpenStack Client commands are create, delete, list, set,"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_e00db1e8","line":52,"range":{"start_line":52,"start_character":4,"end_line":52,"end_character":9},"updated":"2017-02-01 11:38:28.000000000","message":"ditto","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"330dd731b572b1c10222151a8fc86140e73db7e0","unresolved":false,"context_lines":[{"line_number":49,"context_line":"[operation.Ports]"},{"line_number":50,"context_line":"title\u003dPorts"},{"line_number":51,"context_line":"status\u003drequired"},{"line_number":52,"context_line":"api\u003dports"},{"line_number":53,"context_line":"cli\u003dopenstack port *"},{"line_number":54,"context_line":"notes\u003dThe ability to create and manipulate ports."},{"line_number":55,"context_line":"    Other OpenStack Client commands are create, delete, list, set,"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_21340a49","line":52,"range":{"start_line":52,"start_character":4,"end_line":52,"end_character":9},"in_reply_to":"3a461143_e00db1e8","updated":"2017-02-01 19:26:15.000000000","message":"Done","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"62e0499c45adc90191cf6f6f69059cba2400e7e3","unresolved":false,"context_lines":[{"line_number":63,"context_line":"[operation.Router]"},{"line_number":64,"context_line":"title\u003dRouters"},{"line_number":65,"context_line":"status\u003drequired"},{"line_number":66,"context_line":"api\u003drouters"},{"line_number":67,"context_line":"cli\u003dopenstack router *"},{"line_number":68,"context_line":"notes\u003dThe ability to create and manipulate routers."},{"line_number":69,"context_line":"    Other OpenStack Client commands are create, add port,"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_20fc19b7","line":66,"range":{"start_line":66,"start_character":4,"end_line":66,"end_character":11},"updated":"2017-02-01 11:38:28.000000000","message":"router","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"330dd731b572b1c10222151a8fc86140e73db7e0","unresolved":false,"context_lines":[{"line_number":63,"context_line":"[operation.Router]"},{"line_number":64,"context_line":"title\u003dRouters"},{"line_number":65,"context_line":"status\u003drequired"},{"line_number":66,"context_line":"api\u003drouters"},{"line_number":67,"context_line":"cli\u003dopenstack router *"},{"line_number":68,"context_line":"notes\u003dThe ability to create and manipulate routers."},{"line_number":69,"context_line":"    Other OpenStack Client commands are create, add port,"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_41391641","line":66,"range":{"start_line":66,"start_character":4,"end_line":66,"end_character":11},"in_reply_to":"3a461143_20fc19b7","updated":"2017-02-01 19:26:15.000000000","message":"Done","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"62e0499c45adc90191cf6f6f69059cba2400e7e3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"[operation.Security_Groups]"},{"line_number":79,"context_line":"title\u003dSecurity Groups"},{"line_number":80,"context_line":"status\u003dmature"},{"line_number":81,"context_line":"api\u003dsecurity-groups"},{"line_number":82,"context_line":"cli\u003dopenstack security group *"},{"line_number":83,"context_line":"notes\u003dSecurity groups are set by default, and can be modified to control"},{"line_number":84,"context_line":"    ingress \u0026 egress traffic."}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_6002a1b5","line":81,"range":{"start_line":81,"start_character":13,"end_line":81,"end_character":19},"updated":"2017-02-01 11:38:28.000000000","message":"group","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"330dd731b572b1c10222151a8fc86140e73db7e0","unresolved":false,"context_lines":[{"line_number":78,"context_line":"[operation.Security_Groups]"},{"line_number":79,"context_line":"title\u003dSecurity Groups"},{"line_number":80,"context_line":"status\u003dmature"},{"line_number":81,"context_line":"api\u003dsecurity-groups"},{"line_number":82,"context_line":"cli\u003dopenstack security group *"},{"line_number":83,"context_line":"notes\u003dSecurity groups are set by default, and can be modified to control"},{"line_number":84,"context_line":"    ingress \u0026 egress traffic."}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_813bfe37","line":81,"range":{"start_line":81,"start_character":13,"end_line":81,"end_character":19},"in_reply_to":"3a461143_6002a1b5","updated":"2017-02-01 19:26:15.000000000","message":"Done","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"62e0499c45adc90191cf6f6f69059cba2400e7e3","unresolved":false,"context_lines":[{"line_number":148,"context_line":"[operation.DNS]"},{"line_number":149,"context_line":"title\u003dDNS"},{"line_number":150,"context_line":"status\u003dmature"},{"line_number":151,"context_line":"api\u003ddns"},{"line_number":152,"context_line":"notes\u003dThe ability to integrate with an external DNS"},{"line_number":153,"context_line":"    as a Service. http://docs.openstack.org/newton/"},{"line_number":154,"context_line":"    networking-guide/config-dns-int.html"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_00b63df8","line":151,"range":{"start_line":151,"start_character":4,"end_line":151,"end_character":7},"updated":"2017-02-01 11:38:28.000000000","message":"dns-integration ?","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"330dd731b572b1c10222151a8fc86140e73db7e0","unresolved":false,"context_lines":[{"line_number":148,"context_line":"[operation.DNS]"},{"line_number":149,"context_line":"title\u003dDNS"},{"line_number":150,"context_line":"status\u003dmature"},{"line_number":151,"context_line":"api\u003ddns"},{"line_number":152,"context_line":"notes\u003dThe ability to integrate with an external DNS"},{"line_number":153,"context_line":"    as a Service. http://docs.openstack.org/newton/"},{"line_number":154,"context_line":"    networking-guide/config-dns-int.html"}],"source_content_type":"text/x-properties","patch_set":72,"id":"3a461143_e11042ae","line":151,"range":{"start_line":151,"start_character":4,"end_line":151,"end_character":7},"in_reply_to":"3a461143_00b63df8","updated":"2017-02-01 19:26:15.000000000","message":"Done","commit_id":"b7f38ba7f93ce4111a93a0527a89a69bba89f926"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"2b1803f58a0112b58dc3dd031b489811244afee6","unresolved":false,"context_lines":[{"line_number":165,"context_line":"networking-ovs\u003dcomplete"},{"line_number":166,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":167,"context_line":"networking-odl\u003dincomplete"},{"line_number":168,"context_line":"networking-midonet\u003dunknown"},{"line_number":169,"context_line":"networking-ovn\u003dcomplete"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"[operation.Metering]"}],"source_content_type":"text/x-properties","patch_set":74,"id":"1a430d35_e7e38731","line":168,"range":{"start_line":168,"start_character":19,"end_line":168,"end_character":26},"updated":"2017-02-07 03:31:13.000000000","message":"incomplete","commit_id":"ed937b615d1ec5c928428965ae5220f117662000"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"d850b38b58aa2e051a71b457d48915067a9ac3d6","unresolved":false,"context_lines":[{"line_number":165,"context_line":"networking-ovs\u003dcomplete"},{"line_number":166,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":167,"context_line":"networking-odl\u003dincomplete"},{"line_number":168,"context_line":"networking-midonet\u003dunknown"},{"line_number":169,"context_line":"networking-ovn\u003dcomplete"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"[operation.Metering]"}],"source_content_type":"text/x-properties","patch_set":74,"id":"1a430d35_5bf89449","line":168,"range":{"start_line":168,"start_character":19,"end_line":168,"end_character":26},"in_reply_to":"1a430d35_e7e38731","updated":"2017-02-07 17:22:45.000000000","message":"Done","commit_id":"ed937b615d1ec5c928428965ae5220f117662000"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"2b1803f58a0112b58dc3dd031b489811244afee6","unresolved":false,"context_lines":[{"line_number":175,"context_line":"networking-ovs\u003dcomplete"},{"line_number":176,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":177,"context_line":"networking-odl\u003dincomplete"},{"line_number":178,"context_line":"networking-midonet\u003dunknown"},{"line_number":179,"context_line":"networking-ovn\u003dunknown"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"[operations.Routed_Provider_Networks]"}],"source_content_type":"text/x-properties","patch_set":74,"id":"1a430d35_a7d97f85","line":178,"range":{"start_line":178,"start_character":19,"end_line":178,"end_character":26},"updated":"2017-02-07 03:31:13.000000000","message":"midonet provides metering but it isn\u0027t compatible with neutron metering extension.","commit_id":"ed937b615d1ec5c928428965ae5220f117662000"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"d850b38b58aa2e051a71b457d48915067a9ac3d6","unresolved":false,"context_lines":[{"line_number":175,"context_line":"networking-ovs\u003dcomplete"},{"line_number":176,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":177,"context_line":"networking-odl\u003dincomplete"},{"line_number":178,"context_line":"networking-midonet\u003dunknown"},{"line_number":179,"context_line":"networking-ovn\u003dunknown"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"[operations.Routed_Provider_Networks]"}],"source_content_type":"text/x-properties","patch_set":74,"id":"1a430d35_fb8b00c1","line":178,"range":{"start_line":178,"start_character":19,"end_line":178,"end_character":26},"in_reply_to":"1a430d35_a7d97f85","updated":"2017-02-07 17:22:45.000000000","message":"In relation to Neutron extension.","commit_id":"ed937b615d1ec5c928428965ae5220f117662000"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"bcb5e83b18749cdd15c387020f89708101541445","unresolved":false,"context_lines":[{"line_number":161,"context_line":"[operation.Trunk_Ports]"},{"line_number":162,"context_line":"title\u003dTrunk Ports"},{"line_number":163,"context_line":"status\u003dmature"},{"line_number":164,"context_line":"api\u003dtrunk"},{"line_number":165,"context_line":"networking-ovs\u003dcomplete"},{"line_number":166,"context_line":"networking-linux-bridge\u003dcomplete"},{"line_number":167,"context_line":"networking-odl\u003dincomplete"}],"source_content_type":"text/x-properties","patch_set":79,"id":"1a1ced50_ac597e00","line":164,"updated":"2017-03-20 18:39:22.000000000","message":"should probably have had notes\u003d section too; same for Metering","commit_id":"c0130c57e5138a8906fad7cab9cf820b88064d72"}],"doc/source/feature_classification/network_isolation_support_matrix.ini":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"2b1803f58a0112b58dc3dd031b489811244afee6","unresolved":false,"context_lines":[{"line_number":50,"context_line":"networking-ovs\u003dcomplete"},{"line_number":51,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":52,"context_line":"networking-odl\u003dincomplete"},{"line_number":53,"context_line":"networking-midonet\u003dunknown"},{"line_number":54,"context_line":"networking-ovn\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":74,"id":"1a430d35_07833357","line":53,"range":{"start_line":53,"start_character":19,"end_line":53,"end_character":26},"updated":"2017-02-07 03:31:13.000000000","message":"incomplete, if it matters.\n\nmidonet provides network isolation based on vxlan or geneve. but it isn\u0027t compatible with ovs-agent\u0027s way to use these protocols.","commit_id":"ed937b615d1ec5c928428965ae5220f117662000"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"d850b38b58aa2e051a71b457d48915067a9ac3d6","unresolved":false,"context_lines":[{"line_number":50,"context_line":"networking-ovs\u003dcomplete"},{"line_number":51,"context_line":"networking-linux-bridge\u003dunknown"},{"line_number":52,"context_line":"networking-odl\u003dincomplete"},{"line_number":53,"context_line":"networking-midonet\u003dunknown"},{"line_number":54,"context_line":"networking-ovn\u003dcomplete"}],"source_content_type":"text/x-properties","patch_set":74,"id":"1a430d35_fbb22093","line":53,"range":{"start_line":53,"start_character":19,"end_line":53,"end_character":26},"in_reply_to":"1a430d35_07833357","updated":"2017-02-07 17:22:45.000000000","message":"Interesting/cool\n\nDone","commit_id":"ed937b615d1ec5c928428965ae5220f117662000"}],"doc/source/feature_classification/network_isolation_support_matrix.rst":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"9452ba03a38416edf799bdb2730ca38622c813ff","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Network Isolation Support"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":".. warning::"}],"source_content_type":"text/x-rst","patch_set":73,"id":"3a461143_cf47e449","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":25},"updated":"2017-02-02 02:57:48.000000000","message":"supported protocols for provider network extension?\n\n\"network isolation\" sounds too generic.","commit_id":"f001bede782480635a6b61ff9253fa29c3dd6e4d"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"aff3258b5c0a0e8ae2148ecac7e8d2e454a60a1b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Network Isolation Support"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":".. warning::"}],"source_content_type":"text/x-rst","patch_set":73,"id":"1a430d35_27510f0f","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":25},"in_reply_to":"3a461143_59547753","updated":"2017-02-07 03:26:29.000000000","message":"how about \"provider network support\" then?","commit_id":"f001bede782480635a6b61ff9253fa29c3dd6e4d"},{"author":{"_account_id":18332,"name":"Ankur","email":"ankur.gupta@intel.com","username":"ankur-gupta-f"},"change_message_id":"0a16205116fcbd34d0151e86dbd51941a21d1752","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Network Isolation Support"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":".. warning::"}],"source_content_type":"text/x-rst","patch_set":73,"id":"3a461143_59547753","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":25},"in_reply_to":"3a461143_cf47e449","updated":"2017-02-02 22:22:32.000000000","message":"\"Network Provider Support\" ?\n\nNeed to keep title shorter than what you suggested. For readability.","commit_id":"f001bede782480635a6b61ff9253fa29c3dd6e4d"}],"doc/source/index.rst":[{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"659a540e0cee2ddc82e1d8e03f112529d1d91d22","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"   feature_classification/index"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Developer Docs"},{"line_number":68,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":71,"id":"3a461143_72510536","line":66,"updated":"2017-01-28 17:50:26.000000000","message":"nit: extra space","commit_id":"8b5e3b0bafd8cad74666920ae03544aef74c487f"}]}
