)]}'
{"scripts/setup-clienttools":[{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"ea241fd97482dc17f06384f35f2e7c28f0912998","unresolved":false,"context_lines":[{"line_number":34,"context_line":"pip install $PYPI_MIRROR -U \u0027setuptools\u003e\u003d1.0\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Work around bug #1288942"},{"line_number":37,"context_line":"pip install $PYPI_MIRROR -U \u0027six\u003e\u003d1.4.1\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"pip install $PYPI_MIRROR -U python-cinderclient python-novaclient python-glanceclient python-heatclient python-keystoneclient python-neutronclient python-swiftclient python-ironicclient os-apply-config"},{"line_number":40,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"AAAAWH%2F%2FfpM%3D","line":37,"updated":"2014-03-17 15:18:37.000000000","message":"Current six requirement is six\u003e\u003d1.5.2","commit_id":"09cfe94e1cfe341e29c07de922082f71490c246e"},{"author":{"_account_id":7579,"name":"jan grant","email":"jan.grant@hpe.com","username":"jang"},"change_message_id":"3eb213fbe3736521104d4046d952bbe8263555b5","unresolved":false,"context_lines":[{"line_number":34,"context_line":"pip install $PYPI_MIRROR -U \u0027setuptools\u003e\u003d1.0\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Work around bug #1288942"},{"line_number":37,"context_line":"pip install $PYPI_MIRROR -U \u0027six\u003e\u003d1.4.1\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"pip install $PYPI_MIRROR -U python-cinderclient python-novaclient python-glanceclient python-heatclient python-keystoneclient python-neutronclient python-swiftclient python-ironicclient os-apply-config"},{"line_number":40,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"AAAAWH%2F%2FX%2BY%3D","line":37,"in_reply_to":"AAAAWH%2F%2FfpM%3D","updated":"2014-03-18 09:38:44.000000000","message":"Need to meet the requirement for cryptography to install only. Pip\u0027ll upgrade this if it needs to. Nevertheless, I\u0027ll bump it now - but we don\u0027t generally need to chase this - just get past the easy_install of cryptography.","commit_id":"09cfe94e1cfe341e29c07de922082f71490c246e"},{"author":{"_account_id":9453,"name":"James Polley","email":"jp@jamezpolley.com","username":"tchaypo"},"change_message_id":"498ce683ee61cfab93964ab1674d1a104b293ddc","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"# If there\u0027s a specified a PYPI_MIRROR_URL, use it here."},{"line_number":12,"context_line":"if [[ -n \"$PYPI_MIRROR_URL\" ]] ; then"},{"line_number":13,"context_line":"  PYPI_MIRROR\u003d\"--index-url $PYPI_MIRROR_URL\""},{"line_number":14,"context_line":"  if [ -e ~/.pydistutils.cfg ]; then"},{"line_number":15,"context_line":"    mv ~/.pydistutils.cfg{,.orig}"},{"line_number":16,"context_line":"  else"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAWH%2F%2BrTo%3D","line":13,"updated":"2014-03-25 05:53:47.000000000","message":"It seems to me that this will fail if PYPI_MIRROR_URL isn\u0027t set at all. Do we have some guarantee that this will always be set? If not, I think it\u0027s worth changing this to use ${PYPI_MIRROR_URL:-} to make it -u safe","commit_id":"b9adcdd4351e854e86a5f04c8c7be6bd61d299e4"},{"author":{"_account_id":9453,"name":"James Polley","email":"jp@jamezpolley.com","username":"tchaypo"},"change_message_id":"498ce683ee61cfab93964ab1674d1a104b293ddc","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  if [ -e ~/.pydistutils.cfg ]; then"},{"line_number":15,"context_line":"    mv ~/.pydistutils.cfg{,.orig}"},{"line_number":16,"context_line":"  else"},{"line_number":17,"context_line":"    rm -f ~/.pydistutils.cfg.orig"},{"line_number":18,"context_line":"  fi"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"  cat \u003c\u003c-EOF \u003e ~/.pydistutils.cfg"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAWH%2F%2BrTY%3D","line":17,"updated":"2014-03-25 05:53:47.000000000","message":"I don\u0027t like the way this tramples on the user\u0027s environment. I can imagine a user having manually made a copy of the file with the .orig suffix that gets trampled by this process.\n\nIf there\u0027s an error in the script between line 12 and line 41, the original config won\u0027t be restored. If we really have to do this, I\u0027d prefer to use a more distinctive name for the backup of the file - maybe .cfg.tripleo-orig - and use of a trap to try to ensure that we can put the file back as it was.\n\nFWIW, https://review.openstack.org/#/c/82705/1/elements/pypi/pre-install.d/00-configure-pypi-mirror also makes changes to ~/.pydisutils.cfg, and it takes even less care to prevent trampling on the user\u0027s environment. Maybe I\u0027m being too picky here.","commit_id":"b9adcdd4351e854e86a5f04c8c7be6bd61d299e4"},{"author":{"_account_id":9453,"name":"James Polley","email":"jp@jamezpolley.com","username":"tchaypo"},"change_message_id":"40dce477f7cba0b5f4a8d6468687951ff260c9f2","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  if [ -e ~/.pydistutils.cfg ]; then"},{"line_number":15,"context_line":"    mv ~/.pydistutils.cfg{,.orig}"},{"line_number":16,"context_line":"  else"},{"line_number":17,"context_line":"    rm -f ~/.pydistutils.cfg.orig"},{"line_number":18,"context_line":"  fi"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"  cat \u003c\u003c-EOF \u003e ~/.pydistutils.cfg"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAWH%2F%2BrNw%3D","line":17,"in_reply_to":"AAAAWH%2F%2BrTY%3D","updated":"2014-03-25 06:01:50.000000000","message":"lifeless points out that 82705 runs inside a chroot, it doesn\u0027t trample the user\u0027s actual homedir.","commit_id":"b9adcdd4351e854e86a5f04c8c7be6bd61d299e4"},{"author":{"_account_id":9453,"name":"James Polley","email":"jp@jamezpolley.com","username":"tchaypo"},"change_message_id":"498ce683ee61cfab93964ab1674d1a104b293ddc","unresolved":false,"context_lines":[{"line_number":34,"context_line":"pip install $PYPI_MIRROR -U \u0027setuptools\u003e\u003d1.0\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# Work around bug #1288942"},{"line_number":37,"context_line":"pip install $PYPI_MIRROR -U \u0027six\u003e\u003d1.5.2\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"pip install $PYPI_MIRROR -U python-cinderclient python-novaclient python-glanceclient python-heatclient python-keystoneclient python-neutronclient python-swiftclient python-ironicclient os-apply-config"},{"line_number":40,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAWH%2F%2BrRk%3D","line":37,"updated":"2014-03-25 05:53:47.000000000","message":"My understanding is that pip -U will upgrade a package \"to the newest available version\". If my understanding is correct, having a version number specified here seems redundant.","commit_id":"b9adcdd4351e854e86a5f04c8c7be6bd61d299e4"}]}
