)]}'
{"doc/source/devref/development.environment.rst":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"3e68f543a238d7dfb3a73d1cce7344ce3e79205e","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Python_ 2.7 and 3.4, as the programming language;"},{"line_number":37,"context_line":"- git_, as the version control tool;"},{"line_number":38,"context_line":"- msgfmt_, part of the gettext package, as checker for translation files."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"**Reminder**: If you are successfully using a different platform, or a"},{"line_number":41,"context_line":"different version of the above, please document your configuration here!"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_dd600538","line":38,"updated":"2015-11-17 15:04:30.000000000","message":"I kinda think a link to http://pip.readthedocs.org/en/stable/installing/#install-pip might be useful to let people know how to install pip correctly.","commit_id":"42d38a0a706c851cea79b8cedddcab157ba50f9b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d31c02431bc0bc92fa10b79e0366917a2d23c2a8","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Python_ 2.7 and 3.4, as the programming language;"},{"line_number":37,"context_line":"- git_, as the version control tool;"},{"line_number":38,"context_line":"- msgfmt_, part of the gettext package, as checker for translation files."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"**Reminder**: If you are successfully using a different platform, or a"},{"line_number":41,"context_line":"different version of the above, please document your configuration here!"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_4347564b","line":38,"in_reply_to":"ba8a016a_dd600538","updated":"2015-11-17 15:57:03.000000000","message":"Done in the pip link at line 75","commit_id":"42d38a0a706c851cea79b8cedddcab157ba50f9b"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"3e68f543a238d7dfb3a73d1cce7344ce3e79205e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    # Install the dependencies for developing, testing, and running keystone"},{"line_number":97,"context_line":"    $ pip install -r test-requirements.txt"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    # Use \u0027python setup.py\u0027 to link keystone into Python\u0027s site-packages"},{"line_number":100,"context_line":"    $ python setup.py develop"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":".. _virtualenv: http://www.virtualenv.org/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_dd79e5fd","line":99,"updated":"2015-11-17 15:04:30.000000000","message":"should be pip install -e . (note the trailing .)","commit_id":"42d38a0a706c851cea79b8cedddcab157ba50f9b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d31c02431bc0bc92fa10b79e0366917a2d23c2a8","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    # Install the dependencies for developing, testing, and running keystone"},{"line_number":97,"context_line":"    $ pip install -r test-requirements.txt"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    # Use \u0027python setup.py\u0027 to link keystone into Python\u0027s site-packages"},{"line_number":100,"context_line":"    $ python setup.py develop"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":".. _virtualenv: http://www.virtualenv.org/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_c3f6e6f8","line":99,"in_reply_to":"ba8a016a_dd79e5fd","updated":"2015-11-17 15:57:03.000000000","message":"Done","commit_id":"42d38a0a706c851cea79b8cedddcab157ba50f9b"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"3e68f543a238d7dfb3a73d1cce7344ce3e79205e","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Fedora 19+:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":".. code-block:: bash"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    $ sudo yum install python-lxml python-greenlet-devel python-ldap \\"},{"line_number":130,"context_line":"        sqlite-devel openldap-devel python-devel libxslt-devel openssl-devel \\"},{"line_number":131,"context_line":"        libffi-devel"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_9d359d47","line":128,"updated":"2015-11-17 15:04:30.000000000","message":"python-lxml python-ldap and python-greenlet-devel all are not needed - they get installed by tox in the virtualenv","commit_id":"42d38a0a706c851cea79b8cedddcab157ba50f9b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d31c02431bc0bc92fa10b79e0366917a2d23c2a8","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Fedora 19+:"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":".. code-block:: bash"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    $ sudo yum install python-lxml python-greenlet-devel python-ldap \\"},{"line_number":130,"context_line":"        sqlite-devel openldap-devel python-devel libxslt-devel openssl-devel \\"},{"line_number":131,"context_line":"        libffi-devel"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_435196d7","line":128,"in_reply_to":"ba8a016a_9d359d47","updated":"2015-11-17 15:57:03.000000000","message":"Nice catch, thanks!","commit_id":"42d38a0a706c851cea79b8cedddcab157ba50f9b"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"3e68f543a238d7dfb3a73d1cce7344ce3e79205e","unresolved":false,"context_lines":[{"line_number":135,"context_line":".. code-block:: bash"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    $ sudo zypper install libxslt-devel openldap2-devel libopenssl-devel \\"},{"line_number":138,"context_line":"        python-devel python-greenlet-devel python-ldap python-lxml \\"},{"line_number":139,"context_line":"        python-pysqlite sqlite3-devel"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":".. _`Python infra documentation`: http://docs.openstack.org/infra/manual/python.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_5d4095a5","line":138,"updated":"2015-11-17 15:04:30.000000000","message":"Same thing here - also python-pysqlite is not needed","commit_id":"42d38a0a706c851cea79b8cedddcab157ba50f9b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d31c02431bc0bc92fa10b79e0366917a2d23c2a8","unresolved":false,"context_lines":[{"line_number":135,"context_line":".. code-block:: bash"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    $ sudo zypper install libxslt-devel openldap2-devel libopenssl-devel \\"},{"line_number":138,"context_line":"        python-devel python-greenlet-devel python-ldap python-lxml \\"},{"line_number":139,"context_line":"        python-pysqlite sqlite3-devel"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":".. _`Python infra documentation`: http://docs.openstack.org/infra/manual/python.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_63213a4d","line":138,"in_reply_to":"ba8a016a_5d4095a5","updated":"2015-11-17 15:57:03.000000000","message":"Done","commit_id":"42d38a0a706c851cea79b8cedddcab157ba50f9b"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1fe99fc2fea0d11a2c5a4d3e08d0b5c01c44b8c7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Prerequisites"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This document assumes you are using an Ubuntu, Fedora or openSUSE platform and"},{"line_number":34,"context_line":"that you have the following tools pre-installed on your system:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Python_ 2.7 and 3.4, as the programming language;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_b4851608","line":33,"updated":"2015-11-17 16:19:45.000000000","message":"Better to use openSUSE to consistent with L133, I assume the dependencies on openSUSE and SUSE should be different.","commit_id":"e1098b6fa7de94973cdb1ad2c1da9a382e923522"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"50e4de31533d22513ac924a3988254e88515c955","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Prerequisites"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This document assumes you are using an Ubuntu, Fedora or openSUSE platform and"},{"line_number":34,"context_line":"that you have the following tools pre-installed on your system:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Python_ 2.7 and 3.4, as the programming language;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_41918b98","line":33,"in_reply_to":"ba8a016a_4f21b74c","updated":"2015-11-17 16:48:09.000000000","message":"looks like it has been updated in this version, just went through your second version (https://review.openstack.org/#/c/246400/2), cool!","commit_id":"e1098b6fa7de94973cdb1ad2c1da9a382e923522"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"ceb8bf0474fc7008bf83cb9f3d44d6917e7d1504","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Prerequisites"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This document assumes you are using an Ubuntu, Fedora or openSUSE platform and"},{"line_number":34,"context_line":"that you have the following tools pre-installed on your system:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Python_ 2.7 and 3.4, as the programming language;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_4f21b74c","line":33,"in_reply_to":"ba8a016a_b4851608","updated":"2015-11-17 16:33:04.000000000","message":"I am using openSUSE in both places, I don\u0027t see the issue; am I missing something ?","commit_id":"e1098b6fa7de94973cdb1ad2c1da9a382e923522"},{"author":{"_account_id":12972,"name":"Daniele Pizzolli","email":"dpizzolli@fbk.eu","username":"dancn"},"change_message_id":"af9b07ae6d89ddef906744d6d0a89eeb5ae5cdea","unresolved":false,"context_lines":[{"line_number":82,"context_line":"dependencies, thus it is useful to keep a clean working environment."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The test automation tool, tox_, will use a virtual environment to install"},{"line_number":85,"context_line":"test dependencies when running testing environments."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If you want to run a keystone server or simply run the tests manually without"},{"line_number":88,"context_line":"using the provided `tox` environments, we recommend establishing a `virtualenv`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_014aa383","line":85,"updated":"2015-11-23 15:08:49.000000000","message":"I do not think that the virtualenv is a strict requirement.\nBut it is suggested for a clean dev environment and mandatory for tox.\nDoes it make sense to have a dev environment without being able to run the tests?\n\nSo, would you mind to add explicit instuction on how to install it?\n\nI prefer documentation where every step is also provided as a command, so there is no need to search other documentation.\n\nMy idea for the older doc: https://review.openstack.org/#/c/248617/\n\nThanks!","commit_id":"e1098b6fa7de94973cdb1ad2c1da9a382e923522"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"8d3ce3cc3ca48f9b4c23354d20f12f5d17bb6553","unresolved":false,"context_lines":[{"line_number":82,"context_line":"dependencies, thus it is useful to keep a clean working environment."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The test automation tool, tox_, will use a virtual environment to install"},{"line_number":85,"context_line":"test dependencies when running testing environments."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If you want to run a keystone server or simply run the tests manually without"},{"line_number":88,"context_line":"using the provided `tox` environments, we recommend establishing a `virtualenv`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa69d971_d78bea1c","line":85,"in_reply_to":"7a740942_9dd97df5","updated":"2016-01-08 14:06:25.000000000","message":"I improved the ordering of sections and only kept the configuration by tox in the next patch set. Thanks for the feedback. I think now it\u0027s much clear and easy with the next version.","commit_id":"e1098b6fa7de94973cdb1ad2c1da9a382e923522"},{"author":{"_account_id":12972,"name":"Daniele Pizzolli","email":"dpizzolli@fbk.eu","username":"dancn"},"change_message_id":"bf9753cacafbe90d7e119667c36e8c22bae0f2e0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"dependencies, thus it is useful to keep a clean working environment."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The test automation tool, tox_, will use a virtual environment to install"},{"line_number":85,"context_line":"test dependencies when running testing environments."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If you want to run a keystone server or simply run the tests manually without"},{"line_number":88,"context_line":"using the provided `tox` environments, we recommend establishing a `virtualenv`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_9dd97df5","line":85,"in_reply_to":"7a740942_f4c36555","updated":"2015-12-09 08:25:52.000000000","message":"Thanks for the clarification.\n\nHowever something is still unclear to me.\n\nThe “Python and testing environments” seems\noptional, but the section “Verifying keystone is set up”\nrefers to an installed tox.\n\nAlso this section “PyPI packages and virtualenv” seems\nto be indipendent from the next “Python and testing environments”.\n\nBut you really need some (not sure if all) the system packages\nmentioned in “Python and testing environments” to  get keystone\nrunning in a virtualenv.  Also please add the test for virtualenv only:\n\n$VIRTUAL_ENV/bin/python -c \u0027import keystone\u0027\n\nMy suggestion is to reorder the sections so the instruction can\nbe followed sequentially leving out the pain to jump back and forth.\n\nThanks again.\n\nSide note:\nI am now in the situation where:\npip install -r requirements.txt\nfailed:\n    In file included from greenlet.c:5:0:\n    greenlet.h:8:20: fatal error: Python.h: No such file or directory\n     #include \u003cPython.h\u003e\n                        ^\n    compilation terminated.\n compilation terminated.\n    error: command \u0027x86_64-linux-gnu-gcc\u0027 failed with exit status 1\n    \n    ----------------------------------------\nCommand \"/home/vagrant/.venv/bin/python -c \"import setuptools, tokenize;__file__\u003d\u0027/tmp/pip-build-Mb2oZA/greenlet/setup.py\u0027;exec(compile(getattr(tokenize, \u0027open\u0027, open)(__file__).read().replace(\u0027\\r\\n\u0027, \u0027\\n\u0027), __file__, \u0027exec\u0027))\" install --record /tmp/pip-xeSBhR-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/vagrant/.venv/include/site/python2.7/greenlet\" failed with error code 1 in /tmp/pip-build-Mb2oZA/greenlet\n\nBut:\n\n$VIRTUAL_ENV/bin/python -c \u0027import keystone\u0027\n\nWorks!\n\nI guess this test is not enough for a telling if the developer environment is\nproperly working. Or the developer should be reassured that some errors in pip install are not fatal.","commit_id":"e1098b6fa7de94973cdb1ad2c1da9a382e923522"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"de12255951cce00f18baa17734d0c15ffd4deec5","unresolved":false,"context_lines":[{"line_number":82,"context_line":"dependencies, thus it is useful to keep a clean working environment."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The test automation tool, tox_, will use a virtual environment to install"},{"line_number":85,"context_line":"test dependencies when running testing environments."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If you want to run a keystone server or simply run the tests manually without"},{"line_number":88,"context_line":"using the provided `tox` environments, we recommend establishing a `virtualenv`"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a740942_f4c36555","line":85,"in_reply_to":"ba8a016a_014aa383","updated":"2015-12-07 15:26:38.000000000","message":"Hi Daniele, in the section \"Python and testing environments\" below we talk about it. We make a link to the infra documentation on how to set the python env up.(http://docs.openstack.org/infra/manual/python.html)\n\nNotice that this change depends on I697af934aaca002da0be3555d1e1829099ead4b3 which is updating that doc too","commit_id":"e1098b6fa7de94973cdb1ad2c1da9a382e923522"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"66f113ba704312827d8935cff5980add60d36570","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Verifying keystone is set up"},{"line_number":143,"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"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Once set up, you should be able to invoke Python and import the libraries. If"},{"line_number":146,"context_line":"you are using a virtual environment, you need to make sure to use the Python"},{"line_number":147,"context_line":"available within it; hence you need to activate it prior to calling the"},{"line_number":148,"context_line":"interpreter, or use it directly."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8a016a_8496a14a","line":145,"updated":"2015-11-17 17:22:47.000000000","message":"setup ^","commit_id":"e1098b6fa7de94973cdb1ad2c1da9a382e923522"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"3d89a7fabb57bccd28da3fff8427d56c2b076874","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Prerequisites"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This document assumes you are using an Ubuntu, Fedora or openSUSE platform and"},{"line_number":34,"context_line":"that you have the following tools pre-installed on your system:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Python_ 2.7 and 3.4, as the programming language;"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9ad45d7e_cfffb6ff","line":33,"range":{"start_line":33,"start_character":47,"end_line":33,"end_character":53},"updated":"2016-08-09 18:12:59.000000000","message":"Fedora,","commit_id":"c12c13e266fe309c2111256b5fd4daed0441c9aa"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1231af23ef73287048425ae965a7d96a18380260","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Prerequisites"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"This document assumes you are using an Ubuntu, Fedora or openSUSE platform and"},{"line_number":34,"context_line":"that you have the following tools pre-installed on your system:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Python_ 2.7 and 3.4, as the programming language;"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9ad45d7e_d6d1ce58","line":33,"range":{"start_line":33,"start_character":22,"end_line":33,"end_character":78},"updated":"2016-08-10 19:44:57.000000000","message":"There\u0027s nothing left that really makes these platform assumptions anymore.","commit_id":"c12c13e266fe309c2111256b5fd4daed0441c9aa"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"1231af23ef73287048425ae965a7d96a18380260","unresolved":false,"context_lines":[{"line_number":60,"context_line":"the OpenStack guide on wide standard practices around the use of Python."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"That documentation will guide you to configure your development environment"},{"line_number":63,"context_line":"and run keystone tests using `tox`, which uses virtualenv_ to limit the Python"},{"line_number":64,"context_line":"environment. After running it, notice the existence of a `.tox` directory."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":".. _`Project Team Guide: Python Project Guide`: http://docs.openstack.org/project-team-guide/project-setup/python.html"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9ad45d7e_769aa26f","line":63,"range":{"start_line":63,"start_character":62,"end_line":63,"end_character":67},"updated":"2016-08-10 19:44:57.000000000","message":"\"isolate\" or \"contain\"","commit_id":"c12c13e266fe309c2111256b5fd4daed0441c9aa"}]}
