)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0e272f7201e096a61502b36a95930752e09bc56a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Introduce the use of this, starting with the \u0027server\u0027 commands."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: If701af8d5a3f78f4b173ceb476dd0c163be4b6ca"},{"line_number":18,"context_line":"Depends-On: I497e62382768ffc9668a103706001735a7d851ff"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bff0334d_e0f402d2","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":53},"updated":"2017-04-05 12:58:26.000000000","message":"change this to I3528096a1a53a51b5b45cf2ba7177041718a70a7 ?","commit_id":"802d02e6f417b12f335343864a5ac4821962e614"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bfdd3a1c4f84c70f13f0dd4beca2e922469b3dcd","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Introduce the use of this, starting with the \u0027server\u0027 commands."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: If701af8d5a3f78f4b173ceb476dd0c163be4b6ca"},{"line_number":18,"context_line":"Depends-On: I497e62382768ffc9668a103706001735a7d851ff"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bff0334d_63511c0f","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":53},"in_reply_to":"bff0334d_e0f402d2","updated":"2017-04-05 13:13:16.000000000","message":"Oops.\n\nWhile we\u0027re here, I\u0027d welcome your thoughts on whether I should support wildcarding in \u0027click-command\u0027 or use a separate \u0027click-commands\u0027 directive as I\u0027ve done. See comments in that review for more","commit_id":"802d02e6f417b12f335343864a5ac4821962e614"}],"doc/source/cliff_sphinxext.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"228649a34c728ff269e8497690a9ad5e5ba688fb","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from docutils import statemachine"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def _format_usage(parser):"},{"line_number":25,"context_line":"    \"\"\"Variant of cliff.sphinx_ext.format_usage that formats real nice."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    Used to monkey patch the original."},{"line_number":28,"context_line":"    \"\"\""},{"line_number":29,"context_line":"    fmt \u003d argparse.HelpFormatter(parser.prog)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    optionals \u003d parser._get_optional_actions()"},{"line_number":32,"context_line":"    positionals \u003d parser._get_positional_actions()"},{"line_number":33,"context_line":"    groups \u003d parser._mutually_exclusive_groups"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # hacked variant of the regex used by the actual argparse module. Unlike"},{"line_number":36,"context_line":"    # that version, this one attempts to group long and short opts with their"},{"line_number":37,"context_line":"    # optional arguments ensuring that, for example, \u0027---format \u003cFORMAT\u003e\u0027"},{"line_number":38,"context_line":"    # becomes [\u0027--format \u003cFORMAT\u003e\u0027] and not [\u0027--format\u0027, \u0027\u003cFORMAT\u003e\u0027]."},{"line_number":39,"context_line":"    # Yes, they really do use regexes to break apart and rewrap their help"},{"line_number":40,"context_line":"    # string. Don\u0027t ask me why."},{"line_number":41,"context_line":"    part_regexp \u003d r\u0027\\(.*?\\)+|\\[.*?\\]+|(?:(?:-\\w|--\\w+)(?:\\s+\u003c\\w+\u003e)?)|\\S+\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    opt_usage \u003d fmt._format_actions_usage(optionals, groups)"},{"line_number":44,"context_line":"    pos_usage \u003d fmt._format_actions_usage(positionals, groups)"},{"line_number":45,"context_line":"    opt_parts \u003d re.findall(part_regexp, opt_usage)"},{"line_number":46,"context_line":"    pos_parts \u003d re.findall(part_regexp, pos_usage)"},{"line_number":47,"context_line":"    parts \u003d opt_parts + pos_parts"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    return [parser.prog] + [sphinxext._indent(x) for x in parts]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"# monkey patch that baby"}],"source_content_type":"text/x-python","patch_set":15,"id":"df140735_48f03eca","line":49,"range":{"start_line":24,"start_character":0,"end_line":49,"end_character":64},"updated":"2017-05-30 13:06:16.000000000","message":"Upstream fix for this is here [1]. I\u0027ve included it locally as it could be months before this lands into g-r\n\n[1] https://review.openstack.org/#/c/469063/","commit_id":"dc7cceb3991a98a77c622326e9ff20c79eb3394f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2c43cbdbee8aa7d818b050a9aacf595533dc6ff8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    opt_parts \u003d re.findall(part_regexp, opt_usage)"},{"line_number":46,"context_line":"    pos_parts \u003d re.findall(part_regexp, pos_usage)"},{"line_number":47,"context_line":"    parts \u003d opt_parts + pos_parts"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    return [parser.prog] + [sphinxext._indent(x) for x in parts]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"df140735_773e95b8","line":48,"updated":"2017-06-05 19:21:48.000000000","message":"There is a 72 char length check here in the cliff review[0], is that a behaviour change we should maintain?\n\n[0] https://review.openstack.org/#/c/469063/2/cliff/sphinxext.py","commit_id":"0ea38b93f0c4ccc13ea2c83fa340459edb6df017"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6589b8ac684cc043e37b3429d1185e31e21c7bfb","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    opt_parts \u003d re.findall(part_regexp, opt_usage)"},{"line_number":46,"context_line":"    pos_parts \u003d re.findall(part_regexp, pos_usage)"},{"line_number":47,"context_line":"    parts \u003d opt_parts + pos_parts"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    return [parser.prog] + [sphinxext._indent(x) for x in parts]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"df140735_21b1e447","line":48,"in_reply_to":"df140735_773e95b8","updated":"2017-06-06 10:37:35.000000000","message":"We don\u0027t have anything that would trigger it, but let\u0027s copy it for completeness\u0027 sake","commit_id":"0ea38b93f0c4ccc13ea2c83fa340459edb6df017"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2628b5d653937c977ac9d33974f880b4f80d4220","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"df140735_18b3eaea","updated":"2017-06-06 15:26:50.000000000","message":"hmm, i was thinking we wouldn\u0027t need this if we fixed up cliff enough","commit_id":"7d5271f0e9ae62e36b0d1f40e93aa8f21f49b4c9"}],"doc/source/conf.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3539045edb9e633d4af17cfbf603fdbc337441c1","unresolved":false,"context_lines":[{"line_number":35,"context_line":"              \u0027sphinx.ext.todo\u0027,"},{"line_number":36,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":37,"context_line":"              \u0027stevedore.sphinxext\u0027,"},{"line_number":38,"context_line":"              # TODO(stephenfin): Change to cliff.sphinxext and remove the"},{"line_number":39,"context_line":"              # local file when cliff 2.7.0 is released"},{"line_number":40,"context_line":"              \u0027cliff_sphinxext\u0027,"},{"line_number":41,"context_line":"              ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ff0f0b1f_fcfd81b1","line":39,"range":{"start_line":38,"start_character":14,"end_line":39,"end_character":55},"updated":"2017-05-29 23:10:21.000000000","message":"It looks like cliff 2.6.0 is the requirement.\nChanges between 2.6.0 and 2.7.0 are not related to cliff.sphinxext.\nglobal-requirements already has cliff \u003e\u003d2.6.0 and upper-constraints.txt has cliff\u003d\u003d2.7.0. Anyway you can switch cliff.sphinxext now.\n\nUnfortunately cliff.sphinxext from 2.6.0/2.7.0 does not work as-is. I posted a patch to cliff [1] and it is better to wait for the next cliff release.\n\n[1] https://review.openstack.org/#/c/466271/","commit_id":"3c0184d576ac603814ee4ce0a8de4b2a37492cfb"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2a870330cdd77680adffefc00b74f807ae38055d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"              \u0027sphinx.ext.todo\u0027,"},{"line_number":36,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":37,"context_line":"              \u0027stevedore.sphinxext\u0027,"},{"line_number":38,"context_line":"              # TODO(stephenfin): Change to cliff.sphinxext and remove the"},{"line_number":39,"context_line":"              # local file when cliff 2.7.0 is released"},{"line_number":40,"context_line":"              \u0027cliff_sphinxext\u0027,"},{"line_number":41,"context_line":"              ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"df140735_7cb311ea","line":39,"range":{"start_line":38,"start_character":14,"end_line":39,"end_character":55},"in_reply_to":"df140735_613b2538","updated":"2017-06-06 01:31:03.000000000","message":"2.7.0 is already released. you might not be aware of it.","commit_id":"3c0184d576ac603814ee4ce0a8de4b2a37492cfb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4c130a9eeb08b056df741270ed1cfe250745e4f0","unresolved":false,"context_lines":[{"line_number":35,"context_line":"              \u0027sphinx.ext.todo\u0027,"},{"line_number":36,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":37,"context_line":"              \u0027stevedore.sphinxext\u0027,"},{"line_number":38,"context_line":"              # TODO(stephenfin): Change to cliff.sphinxext and remove the"},{"line_number":39,"context_line":"              # local file when cliff 2.7.0 is released"},{"line_number":40,"context_line":"              \u0027cliff_sphinxext\u0027,"},{"line_number":41,"context_line":"              ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"df140735_c18a2862","line":39,"range":{"start_line":38,"start_character":14,"end_line":39,"end_character":55},"in_reply_to":"df140735_7cb311ea","updated":"2017-06-06 10:35:18.000000000","message":"Correct, and it doesn\u0027t include the fixes to which I refer [1]. Hence, this should be changed to 2.8.0 now.\n\n[1] https://review.openstack.org/#/c/469063/","commit_id":"3c0184d576ac603814ee4ce0a8de4b2a37492cfb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"61ecc31792cb66df89ad59b5b9fd94df5129196e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"              \u0027sphinx.ext.todo\u0027,"},{"line_number":36,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":37,"context_line":"              \u0027stevedore.sphinxext\u0027,"},{"line_number":38,"context_line":"              # TODO(stephenfin): Change to cliff.sphinxext and remove the"},{"line_number":39,"context_line":"              # local file when cliff 2.7.0 is released"},{"line_number":40,"context_line":"              \u0027cliff_sphinxext\u0027,"},{"line_number":41,"context_line":"              ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"df140735_613b2538","line":39,"range":{"start_line":38,"start_character":14,"end_line":39,"end_character":55},"in_reply_to":"ff0f0b1f_fcfd81b1","updated":"2017-05-30 09:35:01.000000000","message":"\u003e It looks like cliff 2.6.0 is the requirement.\n\nNot quite. There are some issues with cliff 2.6.0, as you point out, so I\u0027ve included a local version of the plugin here to work around those issues. When I wrote this, cliff 2.7.0 was unreleased and therefore the next version. What I\u0027m suggesting is that we would merge those local fixes into cliff, thus removing the need to keep a local copy. Refer to the commit message for more info","commit_id":"3c0184d576ac603814ee4ce0a8de4b2a37492cfb"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2c43cbdbee8aa7d818b050a9aacf595533dc6ff8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":37,"context_line":"              \u0027stevedore.sphinxext\u0027,"},{"line_number":38,"context_line":"              # TODO(stephenfin): Change to cliff.sphinxext and remove the"},{"line_number":39,"context_line":"              # local file when cliff 2.7.0 is released"},{"line_number":40,"context_line":"              \u0027cliff_sphinxext\u0027,"},{"line_number":41,"context_line":"              ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"df140735_77ac55ec","line":39,"updated":"2017-06-05 19:21:48.000000000","message":"This should be \u0027... when cliff 2.8.0 is in global-requirements\u0027","commit_id":"0ea38b93f0c4ccc13ea2c83fa340459edb6df017"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6589b8ac684cc043e37b3429d1185e31e21c7bfb","unresolved":false,"context_lines":[{"line_number":36,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":37,"context_line":"              \u0027stevedore.sphinxext\u0027,"},{"line_number":38,"context_line":"              # TODO(stephenfin): Change to cliff.sphinxext and remove the"},{"line_number":39,"context_line":"              # local file when cliff 2.7.0 is released"},{"line_number":40,"context_line":"              \u0027cliff_sphinxext\u0027,"},{"line_number":41,"context_line":"              ]"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"df140735_a1861465","line":39,"in_reply_to":"df140735_77ac55ec","updated":"2017-06-06 10:37:35.000000000","message":"Done","commit_id":"0ea38b93f0c4ccc13ea2c83fa340459edb6df017"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"e07f8e9c37c3954eff5d98c845522d8c60d8b26d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"              \u0027sphinx.ext.todo\u0027,"},{"line_number":36,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":37,"context_line":"              \u0027stevedore.sphinxext\u0027,"},{"line_number":38,"context_line":"              # TODO(stephenfin): Change to cliff.sphinxext and remove the"},{"line_number":39,"context_line":"              # local file when cliff 2.8.0 is released and in g-r"},{"line_number":40,"context_line":"              \u0027cliff_sphinxext\u0027,"},{"line_number":41,"context_line":"              ]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Add any paths that contain templates here, relative to this directory."}],"source_content_type":"text/x-python","patch_set":17,"id":"df140735_b8d87e1d","line":40,"range":{"start_line":38,"start_character":14,"end_line":40,"end_character":32},"updated":"2017-06-06 15:28:12.000000000","message":"oh wait, here\u0027s why i thought that.\n\nwhy don\u0027t we bump g-r to 2.8.0? https://github.com/openstack/requirements/blob/master/global-requirements.txt#L22\n\ni guess it can be done later and we can delete after..","commit_id":"7d5271f0e9ae62e36b0d1f40e93aa8f21f49b4c9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a26332ec7c5273a30d76ac0a0507adb23403dc1a","unresolved":false,"context_lines":[{"line_number":35,"context_line":"              \u0027sphinx.ext.todo\u0027,"},{"line_number":36,"context_line":"              \u0027oslosphinx\u0027,"},{"line_number":37,"context_line":"              \u0027stevedore.sphinxext\u0027,"},{"line_number":38,"context_line":"              # TODO(stephenfin): Change to cliff.sphinxext and remove the"},{"line_number":39,"context_line":"              # local file when cliff 2.8.0 is released and in g-r"},{"line_number":40,"context_line":"              \u0027cliff_sphinxext\u0027,"},{"line_number":41,"context_line":"              ]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Add any paths that contain templates here, relative to this directory."}],"source_content_type":"text/x-python","patch_set":17,"id":"df140735_6e4fbc6a","line":40,"range":{"start_line":38,"start_character":14,"end_line":40,"end_character":32},"in_reply_to":"df140735_b8d87e1d","updated":"2017-06-06 15:59:02.000000000","message":"Because it\u0027s not released yet :) I\u0027ve speculating that some patches I have, which are not merged, are going to be in 2.8.0. Figured it was better to give an actual version, even if it\u0027s wrong, to make sure this is done","commit_id":"7d5271f0e9ae62e36b0d1f40e93aa8f21f49b4c9"}],"openstackclient/compute/v2/server.py":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"2c43cbdbee8aa7d818b050a9aacf595533dc6ff8","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            \u0027--volume\u0027,"},{"line_number":396,"context_line":"            metavar\u003d\u0027\u003cvolume\u003e\u0027,"},{"line_number":397,"context_line":"            help\u003d_(\u0027Create server using this volume as the boot disk (name \u0027"},{"line_number":398,"context_line":"                   \u0027or ID).\\n\u0027"},{"line_number":399,"context_line":"                   \u0027This option automatically creates a block device mapping \u0027"},{"line_number":400,"context_line":"                   \u0027with a boot index of 0. On many hypervisors (libvirt/kvm \u0027"},{"line_number":401,"context_line":"                   \u0027for example) this will be device vda. Do not create a \u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"df140735_d7268168","line":398,"updated":"2017-06-05 19:21:48.000000000","message":"The \\n appears to be stripped/ignored in both the help and HTML output.","commit_id":"0ea38b93f0c4ccc13ea2c83fa340459edb6df017"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6589b8ac684cc043e37b3429d1185e31e21c7bfb","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            \u0027--volume\u0027,"},{"line_number":396,"context_line":"            metavar\u003d\u0027\u003cvolume\u003e\u0027,"},{"line_number":397,"context_line":"            help\u003d_(\u0027Create server using this volume as the boot disk (name \u0027"},{"line_number":398,"context_line":"                   \u0027or ID).\\n\u0027"},{"line_number":399,"context_line":"                   \u0027This option automatically creates a block device mapping \u0027"},{"line_number":400,"context_line":"                   \u0027with a boot index of 0. On many hypervisors (libvirt/kvm \u0027"},{"line_number":401,"context_line":"                   \u0027for example) this will be device vda. Do not create a \u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"df140735_a1d4d448","line":398,"in_reply_to":"df140735_d7268168","updated":"2017-06-06 10:37:35.000000000","message":"I was copying what had been done on lines 457-468 below, and I don\u0027t know why it\u0027s not working here.\n\nIt\u0027s purely stylistic though, so I can look at this separately.","commit_id":"0ea38b93f0c4ccc13ea2c83fa340459edb6df017"}],"requirements.txt":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d5c9438c9ba09758848261550c2bb5aced230758","unresolved":false,"context_lines":[{"line_number":5,"context_line":"six\u003e\u003d1.9.0 # MIT"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Babel!\u003d2.4.0,\u003e\u003d2.3.4 # BSD"},{"line_number":8,"context_line":"cliff\u003e\u003d2.6.0 # Apache-2.0"},{"line_number":9,"context_line":"keystoneauth1\u003e\u003d2.18.0 # Apache-2.0"},{"line_number":10,"context_line":"openstacksdk\u003e\u003d0.9.14 # Apache-2.0"},{"line_number":11,"context_line":"osc-lib\u003e\u003d1.2.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":10,"id":"7ffa3b31_fca3e29c","line":8,"updated":"2017-04-20 15:23:21.000000000","message":"You can\u0027t do this until cliff 2.6.0 is in global-requirements.txt","commit_id":"3e87a2fbf5d5760a905789569e697c95d0016edd"}]}
