)]}'
{"tools/test-requires":[{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"3d64958b6d7326ce91f34a4cde66a0bb27ca32fa","unresolved":false,"context_lines":[{"line_number":3,"context_line":"pyflakes\u003d\u003d0.7.2"},{"line_number":4,"context_line":"flake8\u003d\u003d2.0"},{"line_number":5,"context_line":"hacking\u003e\u003d0.5.3,\u003c0.6"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cliff-tablib\u003e\u003d1.0"},{"line_number":8,"context_line":"coverage"},{"line_number":9,"context_line":"discover"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAOn%2F%2FYAQ%3D","line":6,"updated":"2013-05-13 07:22:53.000000000","message":"I think all the libs are arranged in alphabetic order, Do we need to put these at the top of the list?","commit_id":"ce11f7e859a5068e52655c94224273283353c255"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":3,"context_line":"pyflakes\u003d\u003d0.7.2"},{"line_number":4,"context_line":"flake8\u003d\u003d2.0"},{"line_number":5,"context_line":"hacking\u003e\u003d0.5.3,\u003c0.6"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cliff-tablib\u003e\u003d1.0"},{"line_number":8,"context_line":"coverage"},{"line_number":9,"context_line":"discover"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAOn%2F%2FVlo%3D","line":6,"in_reply_to":"AAAAOn%2F%2FXDE%3D","updated":"2013-05-14 09:01:09.000000000","message":"Sounds reasonable.\n\nIt is useful comment and I pasted it to the bug report. \nhttps://bugs.launchpad.net/openstack-ci/+bug/1172444","commit_id":"ce11f7e859a5068e52655c94224273283353c255"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"4450d86ecefdc37f12965a6f0b870b4e2bf53a87","unresolved":false,"context_lines":[{"line_number":3,"context_line":"pyflakes\u003d\u003d0.7.2"},{"line_number":4,"context_line":"flake8\u003d\u003d2.0"},{"line_number":5,"context_line":"hacking\u003e\u003d0.5.3,\u003c0.6"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"cliff-tablib\u003e\u003d1.0"},{"line_number":8,"context_line":"coverage"},{"line_number":9,"context_line":"discover"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAOn%2F%2FXDE%3D","line":6,"in_reply_to":"AAAAOn%2F%2FYAQ%3D","updated":"2013-05-13 17:07:24.000000000","message":"Unfortunately pip finds and installs dependencies by performing a depth first search across this list. What that means is while we can strive to put dependencies in alphabetic order we may not be able to when the actual order pip installs things matters.\n\nThis is one of those cases. We want pep8 and pyflakes to be installed before flake8 so that we can control their versions. If we let flake8 pull them in as dependencies we will get whatever version flake8 has deemed appropriate. By putting this set of things at the top of the list we also avoid other test dependencies potentially pulling in versions we don\u0027t want.","commit_id":"ce11f7e859a5068e52655c94224273283353c255"}]}
