)]}'
{"oslosphinx/__init__.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"d7f9ff6f7772b28c4f3bf904c54ea11d739fcc64","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    # Insert the cgit link into the template context."},{"line_number":45,"context_line":"    context[\u0027cgit_link\u0027] \u003d app.config.oslosphinx_cgit_link"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    git_cmd \u003d [\"git\", \"tag\"]"},{"line_number":48,"context_line":"    try:"},{"line_number":49,"context_line":"        raw_version_list \u003d subprocess.Popen("},{"line_number":50,"context_line":"            git_cmd, stdout\u003dsubprocess.PIPE).communicate()[0]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_5b3bba9c","line":47,"range":{"start_line":47,"start_character":14,"end_line":47,"end_character":28},"updated":"2016-06-10 07:42:22.000000000","message":"How about adding \u0027--sort\u003dtaggerdate\u0027 option here?\n\nI think this is better when a project has semvers, 20xx.x format and/or more version tags like nova, tempest.","commit_id":"c2cd46425439fd15c536758bde2a12534d2dcf2a"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"4f5662779d554ce860088ee8a8fe472615fd1870","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    # Insert the cgit link into the template context."},{"line_number":45,"context_line":"    context[\u0027cgit_link\u0027] \u003d app.config.oslosphinx_cgit_link"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    git_cmd \u003d [\"git\", \"tag\"]"},{"line_number":48,"context_line":"    try:"},{"line_number":49,"context_line":"        raw_version_list \u003d subprocess.Popen("},{"line_number":50,"context_line":"            git_cmd, stdout\u003dsubprocess.PIPE).communicate()[0]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_bb07571c","line":47,"range":{"start_line":47,"start_character":14,"end_line":47,"end_character":28},"in_reply_to":"7aa08908_5b3bba9c","updated":"2016-06-15 17:58:25.000000000","message":"That\u0027s a good enhancement.","commit_id":"c2cd46425439fd15c536758bde2a12534d2dcf2a"},{"author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"change_message_id":"1ee5ae856ddddebbefc88f46e5536af50000ca4c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    # Insert the cgit link into the template context."},{"line_number":45,"context_line":"    context[\u0027cgit_link\u0027] \u003d app.config.oslosphinx_cgit_link"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    git_cmd \u003d [\"git\", \"tag\"]"},{"line_number":48,"context_line":"    try:"},{"line_number":49,"context_line":"        raw_version_list \u003d subprocess.Popen("},{"line_number":50,"context_line":"            git_cmd, stdout\u003dsubprocess.PIPE).communicate()[0]"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_ede0fa98","line":47,"range":{"start_line":47,"start_character":14,"end_line":47,"end_character":28},"in_reply_to":"7aa08908_bb07571c","updated":"2016-06-15 21:26:52.000000000","message":"Ok, I\u0027ll add that to a follow up patch.","commit_id":"c2cd46425439fd15c536758bde2a12534d2dcf2a"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"bb4b81bde63c446ddb4625b69f3e19aa39dfdf7d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    # Try to guess at the default value for where the cgit repository"},{"line_number":88,"context_line":"    # is."},{"line_number":89,"context_line":"    cgit_link \u003d _guess_cgit_link()"},{"line_number":90,"context_line":"    app.add_config_value(\u0027oslosphinx_cgit_link\u0027, cgit_link, \u0027env\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_13a3b29f","line":90,"updated":"2016-06-16 18:36:04.000000000","message":"This is an example of registering a configuration value.","commit_id":"c2cd46425439fd15c536758bde2a12534d2dcf2a"},{"author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"change_message_id":"8a042e2b2a5adeece810a18e2ad31257a7efdb4b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    # Try to guess at the default value for where the cgit repository"},{"line_number":88,"context_line":"    # is."},{"line_number":89,"context_line":"    cgit_link \u003d _guess_cgit_link()"},{"line_number":90,"context_line":"    app.add_config_value(\u0027oslosphinx_cgit_link\u0027, cgit_link, \u0027env\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_beb265e3","line":90,"in_reply_to":"7aa08908_13a3b29f","updated":"2016-06-16 18:46:51.000000000","message":"Oh ok, I see what you mean here. When I was testing this addition I expected the configuration to be project specific, so I was adding it to the sphinx environment in swift/conf.py\n\nI imagine that any projects that want to override the documentation location would do it at a project specific level, does that seem reasonable?\n\nI suppose I could add the code to set the doc_root to a default value here in __init__.py rather than in the template.","commit_id":"c2cd46425439fd15c536758bde2a12534d2dcf2a"}],"oslosphinx/theme/openstack/layout.html":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"9f351a447025a1afe8177e68be789569acfcfa05","unresolved":false,"context_lines":[{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- for ver in other_versions: %}"},{"line_number":39,"context_line":"                      \u003cli\u003e\u003ca href\u003d\"/developer/{{ project }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":40,"context_line":"                  {%- endfor %}"},{"line_number":41,"context_line":"              \u003c/ul\u003e"},{"line_number":42,"context_line":"            {%- endif %}"}],"source_content_type":"text/html","patch_set":1,"id":"9abb7d3a_174e7dc0","line":39,"range":{"start_line":39,"start_character":36,"end_line":39,"end_character":69},"updated":"2016-06-01 17:03:54.000000000","message":"This works for all developer projects but not for http://docs.openstack.org/infra/manual/.\n\nFortunately that one does not have versions yet ;)\n\nBut this is a generic problem that might hit us elsewhere.","commit_id":"4fbcb7170f88339ad02b7b182a1f8a05051db769"},{"author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"change_message_id":"a8573b6869e0df77284d50d4796f21058093bd56","unresolved":false,"context_lines":[{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- for ver in other_versions: %}"},{"line_number":39,"context_line":"                      \u003cli\u003e\u003ca href\u003d\"/developer/{{ project }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":40,"context_line":"                  {%- endfor %}"},{"line_number":41,"context_line":"              \u003c/ul\u003e"},{"line_number":42,"context_line":"            {%- endif %}"}],"source_content_type":"text/html","patch_set":1,"id":"7aa08908_443df98d","line":39,"range":{"start_line":39,"start_character":36,"end_line":39,"end_character":69},"in_reply_to":"7aa08908_2149bfd0","updated":"2016-06-08 17:15:28.000000000","message":"That would probably work to get us from the root to one of the previous versions, but we would then be unable to use the version links, and the version links would never work unless we\u0027re at the root of the project folder.\n\nFor example, how would we get from\n\n    /developer/swift/2.7.0\n\nto \n\n    /developer/swift/2.6.0\n\n?\n\nSadly it\u0027s not a general purpose solution.","commit_id":"4fbcb7170f88339ad02b7b182a1f8a05051db769"},{"author":{"_account_id":19686,"name":"Ramamani Yeleswarapu","email":"ramamani.yeleswarapu@intel.com","username":"Rama_Y"},"change_message_id":"37c88a5d3e7dcaeabfcc7152d2660ff29d3e7ec2","unresolved":false,"context_lines":[{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- for ver in other_versions: %}"},{"line_number":39,"context_line":"                      \u003cli\u003e\u003ca href\u003d\"/developer/{{ project }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":40,"context_line":"                  {%- endfor %}"},{"line_number":41,"context_line":"              \u003c/ul\u003e"},{"line_number":42,"context_line":"            {%- endif %}"}],"source_content_type":"text/html","patch_set":1,"id":"7aa08908_5f0826da","line":39,"range":{"start_line":39,"start_character":36,"end_line":39,"end_character":69},"in_reply_to":"7aa08908_443df98d","updated":"2016-06-08 17:35:31.000000000","message":"Actually, there is no sidebar link from /developer/swift/2.7.0 to other versions. It appears the same model for all projects.","commit_id":"4fbcb7170f88339ad02b7b182a1f8a05051db769"},{"author":{"_account_id":19686,"name":"Ramamani Yeleswarapu","email":"ramamani.yeleswarapu@intel.com","username":"Rama_Y"},"change_message_id":"d2ccce6745a0119a90d1f74d81c69d90c3e713c3","unresolved":false,"context_lines":[{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- for ver in other_versions: %}"},{"line_number":39,"context_line":"                      \u003cli\u003e\u003ca href\u003d\"/developer/{{ project }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":40,"context_line":"                  {%- endfor %}"},{"line_number":41,"context_line":"              \u003c/ul\u003e"},{"line_number":42,"context_line":"            {%- endif %}"}],"source_content_type":"text/html","patch_set":1,"id":"7aa08908_5e84fa5c","line":39,"range":{"start_line":39,"start_character":36,"end_line":39,"end_character":69},"in_reply_to":"7aa08908_5b97eceb","updated":"2016-06-07 17:21:31.000000000","message":"Pl ignore the above \u0027Done\u0027.","commit_id":"4fbcb7170f88339ad02b7b182a1f8a05051db769"},{"author":{"_account_id":19686,"name":"Ramamani Yeleswarapu","email":"ramamani.yeleswarapu@intel.com","username":"Rama_Y"},"change_message_id":"9fe219d6bbb3d17ad5373cd44145de5f544231ae","unresolved":false,"context_lines":[{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- for ver in other_versions: %}"},{"line_number":39,"context_line":"                      \u003cli\u003e\u003ca href\u003d\"/developer/{{ project }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":40,"context_line":"                  {%- endfor %}"},{"line_number":41,"context_line":"              \u003c/ul\u003e"},{"line_number":42,"context_line":"            {%- endif %}"}],"source_content_type":"text/html","patch_set":1,"id":"7aa08908_2149bfd0","line":39,"range":{"start_line":39,"start_character":36,"end_line":39,"end_character":69},"in_reply_to":"7aa08908_5e84fa5c","updated":"2016-06-08 17:03:55.000000000","message":"Will this work?\n\n\u003cli\u003e\u003ca href\u003d\"{{ pathto(\u0027./\u0027 + ver, 1) }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e","commit_id":"4fbcb7170f88339ad02b7b182a1f8a05051db769"},{"author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"change_message_id":"79158d04ccad120314dabbb91ac3ec2477e10c31","unresolved":false,"context_lines":[{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- for ver in other_versions: %}"},{"line_number":39,"context_line":"                      \u003cli\u003e\u003ca href\u003d\"/developer/{{ project }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":40,"context_line":"                  {%- endfor %}"},{"line_number":41,"context_line":"              \u003c/ul\u003e"},{"line_number":42,"context_line":"            {%- endif %}"}],"source_content_type":"text/html","patch_set":1,"id":"7aa08908_7a59b034","line":39,"range":{"start_line":39,"start_character":36,"end_line":39,"end_character":69},"in_reply_to":"7aa08908_5f0826da","updated":"2016-06-08 17:55:17.000000000","message":"I\u0027d imagine that\u0027s because the 2.7.0 docs were created before patch landed that adds links to other versions in the sidebar. We may need to address issues there as well when we have these links working, but we certainly want to be able to link back to the current (i.e. /developer/swift) URL from any of the older versions.","commit_id":"4fbcb7170f88339ad02b7b182a1f8a05051db769"},{"author":{"_account_id":19686,"name":"Ramamani Yeleswarapu","email":"ramamani.yeleswarapu@intel.com","username":"Rama_Y"},"change_message_id":"cd565b26f963437c5da629255bb25e2e6b6e5abc","unresolved":false,"context_lines":[{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- for ver in other_versions: %}"},{"line_number":39,"context_line":"                      \u003cli\u003e\u003ca href\u003d\"/developer/{{ project }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":40,"context_line":"                  {%- endfor %}"},{"line_number":41,"context_line":"              \u003c/ul\u003e"},{"line_number":42,"context_line":"            {%- endif %}"}],"source_content_type":"text/html","patch_set":1,"id":"7aa08908_5b97eceb","line":39,"range":{"start_line":39,"start_character":36,"end_line":39,"end_character":69},"in_reply_to":"9abb7d3a_174e7dc0","updated":"2016-06-07 17:17:59.000000000","message":"Done","commit_id":"4fbcb7170f88339ad02b7b182a1f8a05051db769"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"4f5662779d554ce860088ee8a8fe472615fd1870","unresolved":false,"context_lines":[{"line_number":35,"context_line":"              \u003ch3\u003e{{ _(\u0027Other Versions\u0027) }}\u003c/h3\u003e"},{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- if project_doc_root %}"},{"line_number":39,"context_line":"                    {%- for ver in other_versions: %}"},{"line_number":40,"context_line":"                        \u003cli\u003e\u003ca href\u003d\"{{ project_doc_root }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":41,"context_line":"                    {%- endfor %}"}],"source_content_type":"text/html","patch_set":3,"id":"7aa08908_a6a3baff","line":38,"updated":"2016-06-15 17:58:25.000000000","message":"I don\u0027t see anything setting this value or passing it to the template. Is this a sphinx built-in or do we need a new configuration option defined?","commit_id":"c2cd46425439fd15c536758bde2a12534d2dcf2a"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"bb4b81bde63c446ddb4625b69f3e19aa39dfdf7d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"              \u003ch3\u003e{{ _(\u0027Other Versions\u0027) }}\u003c/h3\u003e"},{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- if project_doc_root %}"},{"line_number":39,"context_line":"                    {%- for ver in other_versions: %}"},{"line_number":40,"context_line":"                        \u003cli\u003e\u003ca href\u003d\"{{ project_doc_root }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":41,"context_line":"                    {%- endfor %}"}],"source_content_type":"text/html","patch_set":3,"id":"7aa08908_f3cb8648","line":38,"in_reply_to":"7aa08908_4dc5ce08","updated":"2016-06-16 18:36:04.000000000","message":"Yes, you have to declare configuration values for Sphinx to recognize them and add them to the template environment for you. I\u0027ve highlighted an existing option we have as an example in a comment on __init__.py.\n\nHowever, if the purpose of the option is to find where the documentation is going to be published so we can generate a link, I think we can do that using pathto() like this:\n\n  {{pathto(ver, 1)}}\n\nThat should produce a relative link from the current page to the \"ver\" subdirectory of the root of the project.\n\nUsing that should let you remove the conditional and separate loops.","commit_id":"c2cd46425439fd15c536758bde2a12534d2dcf2a"},{"author":{"_account_id":9216,"name":"Joel Wright","email":"joel.wright@gmail.com","username":"jjw-sohonet"},"change_message_id":"1ee5ae856ddddebbefc88f46e5536af50000ca4c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"              \u003ch3\u003e{{ _(\u0027Other Versions\u0027) }}\u003c/h3\u003e"},{"line_number":36,"context_line":"              \u003cul class\u003d\"this-page-menu\"\u003e"},{"line_number":37,"context_line":"                  \u003cli\u003e\u003ca href\u003d\"{{ pathto(master_doc) }}\" rel\u003d\"nofollow\"\u003eCurrent\u003c/a\u003e\u003c/li\u003e"},{"line_number":38,"context_line":"                  {%- if project_doc_root %}"},{"line_number":39,"context_line":"                    {%- for ver in other_versions: %}"},{"line_number":40,"context_line":"                        \u003cli\u003e\u003ca href\u003d\"{{ project_doc_root }}/{{ ver }}\" rel\u003d\"nofollow\"\u003e{{ ver }}\u003c/a\u003e\u003c/li\u003e"},{"line_number":41,"context_line":"                    {%- endfor %}"}],"source_content_type":"text/html","patch_set":3,"id":"7aa08908_4dc5ce08","line":38,"in_reply_to":"7aa08908_a6a3baff","updated":"2016-06-15 21:26:52.000000000","message":"This is a new configuration option, I couldn\u0027t see any other way to do it... Do I need to document/define this new option somewhere?","commit_id":"c2cd46425439fd15c536758bde2a12534d2dcf2a"}]}
