)]}'
{"doc/source/conf.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0bd2ea93768109df738d74c441bf958448b49659","unresolved":false,"context_lines":[{"line_number":83,"context_line":"#today_fmt \u003d \u0027%B %d, %Y\u0027"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"# List of documents that shouldn\u0027t be included in the build."},{"line_number":86,"context_line":"unused_docs \u003d ["},{"line_number":87,"context_line":"]"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"# List of directories, relative to source directory, that shouldn\u0027t be searched"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_66d03154","side":"PARENT","line":86,"updated":"2015-07-07 21:18:07.000000000","message":"Removed because it\u0027s deprecated:\n\nhttps://github.com/sphinx-doc/sphinx/blob/1.2.3/sphinx/config.py#L54","commit_id":"a6024b57fab9b2478cf16411c555adf95ccf54cf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0bd2ea93768109df738d74c441bf958448b49659","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"# List of directories, relative to source directory, that shouldn\u0027t be searched"},{"line_number":90,"context_line":"# for source files."},{"line_number":91,"context_line":"exclude_trees \u003d []"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"# The reST default role (used for this markup: `text`) to use"},{"line_number":94,"context_line":"# for all documents."}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_46cdedb5","side":"PARENT","line":91,"updated":"2015-07-07 21:18:07.000000000","message":"ditto","commit_id":"a6024b57fab9b2478cf16411c555adf95ccf54cf"}],"doc/source/development.environment.rst":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"ec332cb0e4ec46c6f748548294156662a7202061","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Building the Documentation"},{"line_number":128,"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"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Install the prerequisite packages: graphviz"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"To do a full documentation build, issue the following command while"},{"line_number":133,"context_line":"the nova directory is current."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_a44dd49a","line":130,"updated":"2015-07-27 16:15:06.000000000","message":"Is this related to this change?","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"40cae3eabfa7988cb19e7966a8a4ab54ae634ab6","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Building the Documentation"},{"line_number":128,"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"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Install the prerequisite packages: graphviz"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"To do a full documentation build, issue the following command while"},{"line_number":133,"context_line":"the nova directory is current."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_c25f783f","line":130,"in_reply_to":"3a50d1a3_26ce9a2d","updated":"2015-07-28 15:54:20.000000000","message":"Well, it\u0027s also called out in the \"Install the prerequisite packages\" section above, it\u0027s a distro package, so it can\u0027t live in tox.  I added it here since this section is specifically about building the documentation using \u0027tox -e docs\u0027 which is going to fail if you don\u0027t have graphviz installed from the distro first.","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"352258cfea4cc4aa4a78e8e5872f4b07f2561750","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Building the Documentation"},{"line_number":128,"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"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Install the prerequisite packages: graphviz"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"To do a full documentation build, issue the following command while"},{"line_number":133,"context_line":"the nova directory is current."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_26ce9a2d","line":130,"in_reply_to":"3a50d1a3_8f1d49c0","updated":"2015-07-27 21:04:19.000000000","message":"ugh so this is a build dependency that we don\u0027t account for :( - I\u0027m sure this has been discussed and agreed upon previously so I will just assume it\u0027s ok...","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9ab1f0a047ffca57d9d52756d79a106c08efc234","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Building the Documentation"},{"line_number":128,"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"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Install the prerequisite packages: graphviz"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"To do a full documentation build, issue the following command while"},{"line_number":133,"context_line":"the nova directory is current."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_8f1d49c0","line":130,"in_reply_to":"3a50d1a3_a44dd49a","updated":"2015-07-27 19:04:47.000000000","message":"Yeah, it\u0027s in the commit message:\n\n6. Update the developer docs to explicitly point out that graphviz must\n   be installed prior to running tox -e docs.\n\nBecause otherwise tox -e docs will fail on you if you don\u0027t have the graphviz sphinx extension loaded.","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"}],"nova/compute/monitors/base.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c21a0afb2b5485c9dc54f92f51135f4780786659","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        Get available metric names, which are represented by a set of keys"},{"line_number":42,"context_line":"        that can be used to check conflicts and duplications"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        :returns: set containing one or more values from"},{"line_number":45,"context_line":"            :py:attr: nova.objects.fields.MonitorMetricType.ALL"},{"line_number":46,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_7f6fe45f","line":43,"updated":"2015-07-10 13:28:56.000000000","message":"Note: this is intentional to make sphinx not fail.","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"}],"nova/objects/base.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d9e29da525bbd6dcfccab716825f060039e2c6a","unresolved":false,"context_lines":[{"line_number":474,"context_line":"                          any sub-objects within the list of fields"},{"line_number":475,"context_line":"                          being reset."},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        NOTE: This is NOT \"revert to previous values\""},{"line_number":478,"context_line":"        NOTE: Specifying fields on recursive resets will only be honored at the"},{"line_number":479,"context_line":"        top level. Everything below the top will reset all."},{"line_number":480,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_06228501","line":477,"updated":"2015-07-07 21:30:04.000000000","message":"This doesn\u0027t format properly, we should use .. note:: instead.","commit_id":"e59d87200db0163c720159e7b4e1d85b08122aa0"}],"nova/utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d9e29da525bbd6dcfccab716825f060039e2c6a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"               help\u003d\u0027Explicitly specify the temporary working directory\u0027),"},{"line_number":83,"context_line":"]"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"\"\"\" This group is for very specific reasons."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If you\u0027re:"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_c6f7bd57","line":85,"updated":"2015-07-07 21:30:04.000000000","message":"This shows up under utils_opts, it needs to be moved under workarounds_opts.","commit_id":"e59d87200db0163c720159e7b4e1d85b08122aa0"}],"setup.cfg":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"ec332cb0e4ec46c6f748548294156662a7202061","unresolved":false,"context_lines":[{"line_number":225,"context_line":"# Exclude modules that won\u0027t build with autodoc (or that we don\u0027t want doc\u0027ed);"},{"line_number":226,"context_line":"# this requires updating the exclude_patterns variable in doc/source/conf.py"},{"line_number":227,"context_line":"autodoc_exclude_modules \u003d nova.wsgi.nova-*"},{"line_number":228,"context_line":"                          nova.tests.*"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"# Treat sphinx warnings as errors during the docs build; this helps us keep"},{"line_number":231,"context_line":"# the documentation clean."}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3a50d1a3_74ff7701","line":228,"updated":"2015-07-27 16:15:06.000000000","message":"so why is this needed? I can\u0027t find it by greping pbr code, and if pbr requires it it\u0027s almost certainly a bug (duplicating a straithgforward sphinx config) and should be fixed.","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9ab1f0a047ffca57d9d52756d79a106c08efc234","unresolved":false,"context_lines":[{"line_number":225,"context_line":"# Exclude modules that won\u0027t build with autodoc (or that we don\u0027t want doc\u0027ed);"},{"line_number":226,"context_line":"# this requires updating the exclude_patterns variable in doc/source/conf.py"},{"line_number":227,"context_line":"autodoc_exclude_modules \u003d nova.wsgi.nova-*"},{"line_number":228,"context_line":"                          nova.tests.*"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"# Treat sphinx warnings as errors during the docs build; this helps us keep"},{"line_number":231,"context_line":"# the documentation clean."}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3a50d1a3_af71250e","line":228,"in_reply_to":"3a50d1a3_74ff7701","updated":"2015-07-27 19:04:47.000000000","message":"Do you mean excluding the tests?  Because API auto-doc\u0027ing the test modules seems rather pointless, so I\u0027m excluding them.  I\u0027m not getting the reference to sphinx config here.","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"41515add50ed519a9130db7f68383531e45a1995","unresolved":false,"context_lines":[{"line_number":225,"context_line":"# Exclude modules that won\u0027t build with autodoc (or that we don\u0027t want doc\u0027ed);"},{"line_number":226,"context_line":"# this requires updating the exclude_patterns variable in doc/source/conf.py"},{"line_number":227,"context_line":"autodoc_exclude_modules \u003d nova.wsgi.nova-*"},{"line_number":228,"context_line":"                          nova.tests.*"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"# Treat sphinx warnings as errors during the docs build; this helps us keep"},{"line_number":231,"context_line":"# the documentation clean."}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3a50d1a3_c6ec96bd","line":228,"in_reply_to":"3a50d1a3_af71250e","updated":"2015-07-27 21:02:33.000000000","message":"The question is - why do we need to do this both here and in the sphinx\u0027s conf.py\n\nit seems that it is either not needed (it seems to me that pbr reads the doc/source/conf.py) or if it is and I can\u0027t understand pbr, but regardless it should be fixed to not need this.","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"28fc6c27edca49dccde502183a67888139ead084","unresolved":false,"context_lines":[{"line_number":225,"context_line":"# Exclude modules that won\u0027t build with autodoc (or that we don\u0027t want doc\u0027ed);"},{"line_number":226,"context_line":"# this requires updating the exclude_patterns variable in doc/source/conf.py"},{"line_number":227,"context_line":"autodoc_exclude_modules \u003d nova.wsgi.nova-*"},{"line_number":228,"context_line":"                          nova.tests.*"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"# Treat sphinx warnings as errors during the docs build; this helps us keep"},{"line_number":231,"context_line":"# the documentation clean."}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3a50d1a3_e53dde2b","line":228,"in_reply_to":"3a50d1a3_c5d22200","updated":"2015-07-28 15:55:56.000000000","message":"BTW, if the excludes really bother you, we could just avoid excludes altogether and doc the test modules and add an __init__.py to nova/wsgi/nova-* modules so those build as modules, but I figured the excludes was easier and faster since we don\u0027t care about building docs for test modules.","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"40cae3eabfa7988cb19e7966a8a4ab54ae634ab6","unresolved":false,"context_lines":[{"line_number":225,"context_line":"# Exclude modules that won\u0027t build with autodoc (or that we don\u0027t want doc\u0027ed);"},{"line_number":226,"context_line":"# this requires updating the exclude_patterns variable in doc/source/conf.py"},{"line_number":227,"context_line":"autodoc_exclude_modules \u003d nova.wsgi.nova-*"},{"line_number":228,"context_line":"                          nova.tests.*"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"# Treat sphinx warnings as errors during the docs build; this helps us keep"},{"line_number":231,"context_line":"# the documentation clean."}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3a50d1a3_c5d22200","line":228,"in_reply_to":"3a50d1a3_c6ec96bd","updated":"2015-07-28 15:54:20.000000000","message":"There are two ways to generate autodocs from pbr, one is autodoc_index_modules which is actually pbr generating the doc files, the other is autodoc_tree_index_modules which calls out to sphinx-apidoc on the command line.  There are exclude options to pbr in both cases, like what\u0027s used here.\n\nWhen you build the docs, it\u0027s actually sphinx that\u0027s building the docs, not pbr, so pbr isn\u0027t reading doc/source.conf.py - you could actually call it whatever you wanted or have no sphinx config file at all.\n\nThe reason we have to exclude in both places is (1) in setup.cfg so that pbr doesn\u0027t generate docs for these modules and (2) in conf.py so that sphinx doesn\u0027t error out when those docs aren\u0027t in the toc tree - which is what the warnerrors\u003dTrue flag does, turns sphinx build warnings into errors. The reason we want warnerrors\u003dTrue is so we actually have clean docs, otherwise you\u0027ll get warnings on improper ReST format but it won\u0027t fail the build and no one will ever notice.\n\nThere is more info on the pbr / sphinx docs stuff here:\n\nhttp://docs.openstack.org/developer/pbr/#pbr\n\nThe fact that pbr generates docs at all is maybe kind of weird, I\u0027ve thought that myself before, and there are some other openstack projects that don\u0027t use pbr to build docs, they have wrapper scripts for doing sphinx apidoc builds themselves, but since this is pretty easy to hook into pbr to do it for us (and is what we were doing before this was disabled via the commit referenced in the commit message) I don\u0027t see it as a major issue.","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7b9053a3c89662ab93c89a94df0a2e14fae2e92","unresolved":false,"context_lines":[{"line_number":225,"context_line":"# Exclude modules that won\u0027t build with autodoc (or that we don\u0027t want doc\u0027ed);"},{"line_number":226,"context_line":"# this requires updating the exclude_patterns variable in doc/source/conf.py"},{"line_number":227,"context_line":"autodoc_exclude_modules \u003d nova.wsgi.nova-*"},{"line_number":228,"context_line":"                          nova.tests.*"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"# Treat sphinx warnings as errors during the docs build; this helps us keep"},{"line_number":231,"context_line":"# the documentation clean."}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"3a50d1a3_8800b1ac","line":228,"in_reply_to":"3a50d1a3_e53dde2b","updated":"2015-07-28 16:09:34.000000000","message":"So I retract a tad, I guess when you run with warnerrors\u003dTrue it does go down this other path in pbr which checks for conf.py specifically:\n\nhttp://git.openstack.org/cgit/openstack-dev/pbr/tree/pbr/builddoc.py#n120\n\nAnd in there we could probably be smarter about updating that confoverrides dict passed to Sphinx before building the docs which makes sure the exclude_patterns are matching what\u0027s in autodoc_exclude_modules.  I feel like I messed with that a bit when working through this originally and couldn\u0027t get it to work, but honestly I can\u0027t remember at this point.  I\u0027m certainly open to reporting a bug against pbr that you shouldn\u0027t have to duplicate this in setup.cfg and conf.py if pbr can handle that for us.","commit_id":"6965172375f6884a1880142c5eacc8625e330c85"}]}
