)]}'
{"openstack_releases/hound.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"df634f6c02cbed9b67f0ffff9ccf606efc47ffcb","unresolved":false,"context_lines":[{"line_number":41,"context_line":"def get_dependency_listings(package_name):"},{"line_number":42,"context_line":"    return _query("},{"line_number":43,"context_line":"        q\u003dpackage_name,"},{"line_number":44,"context_line":"        # files\u003d\u0027(.*requirements.txt|setup.cfg)\u0027,  # including setup.cfg shows lots for oslo.config"},{"line_number":45,"context_line":"        files\u003d\u0027(.*requirements.txt|.*constraint.*.txt)\u0027,"},{"line_number":46,"context_line":"    )"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_a79f9301","line":44,"updated":"2018-02-08 16:59:31.000000000","message":"Did you mean to leave this line in?","commit_id":"77b1f67130ec6fc2b7b6f9394c46f28f43bd685f"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"52cdf34c92e1f6c22bbe7e524f3d62329256b4cd","unresolved":false,"context_lines":[{"line_number":41,"context_line":"def get_dependency_listings(package_name):"},{"line_number":42,"context_line":"    return _query("},{"line_number":43,"context_line":"        q\u003dpackage_name,"},{"line_number":44,"context_line":"        # files\u003d\u0027(.*requirements.txt|setup.cfg)\u0027,  # including setup.cfg shows lots for oslo.config"},{"line_number":45,"context_line":"        files\u003d\u0027(.*requirements.txt|.*constraint.*.txt)\u0027,"},{"line_number":46,"context_line":"    )"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_8a461e21","line":44,"in_reply_to":"3fa0c359_a79f9301","updated":"2018-02-08 17:12:25.000000000","message":"Fixed","commit_id":"77b1f67130ec6fc2b7b6f9394c46f28f43bd685f"},{"author":{"_account_id":14288,"name":"Matthew Thode","display_name":"prometheanfire","email":"mthode@mthode.org","username":"prometheanfire"},"change_message_id":"296f24ae0c2519a6ec4b803ce3a2509f364fbcbf","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # for oslo.config because of the plugins for the config"},{"line_number":46,"context_line":"        # generator. It would be nice to figure out how to filter"},{"line_number":47,"context_line":"        # those."},{"line_number":48,"context_line":"        files\u003d\u0027(.*requirements.txt|.*constraint.*.txt)\u0027,"},{"line_number":49,"context_line":"    )"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_e58fd320","line":48,"updated":"2018-02-08 17:54:00.000000000","message":"I think we also want to know about setup.py/setup.cfg\n\nthis should catch all the constraints/requirements files though, so that\u0027s 95% of things if it\u0027s too hard to process those.","commit_id":"ef2d7e39086e55a63c2d2e4a25eea0f5e7c1c449"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"eafb2acd2ea59166d250a93a81fa727de8be2be0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # for oslo.config because of the plugins for the config"},{"line_number":46,"context_line":"        # generator. It would be nice to figure out how to filter"},{"line_number":47,"context_line":"        # those."},{"line_number":48,"context_line":"        files\u003d\u0027(.*requirements.txt|.*constraint.*.txt)\u0027,"},{"line_number":49,"context_line":"    )"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_dc1a77ca","line":48,"in_reply_to":"3fa0c359_e506f386","updated":"2018-02-12 06:03:52.000000000","message":"I\u0027m pretty sure with a big comment we can change the search to:\n\n q\u003d\"%s(\u003e|\u003d)\" % package_name \n\nand the file pattern to:\n\n (.*requirements.txt|.*constraint.*.txt|setup.cfg)\n\nAnd you\u0027ll limit the false positives in setup.cfg to an acceptable number.\n\nThis works as we ensure that the first specification on a library is the minimum (\u003e or \u003e\u003d) and or an exact pin (\u003d) the pin more or less looks like a constraint.","commit_id":"ef2d7e39086e55a63c2d2e4a25eea0f5e7c1c449"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"0e9c16d965f24f051f4cb1523fb0eff44ddf3ba7","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # for oslo.config because of the plugins for the config"},{"line_number":46,"context_line":"        # generator. It would be nice to figure out how to filter"},{"line_number":47,"context_line":"        # those."},{"line_number":48,"context_line":"        files\u003d\u0027(.*requirements.txt|.*constraint.*.txt)\u0027,"},{"line_number":49,"context_line":"    )"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_e506f386","line":48,"in_reply_to":"3fa0c359_e58fd320","updated":"2018-02-08 18:00:37.000000000","message":"Yeah, I need to give the setup.cfg handling a bit more thought to try to filter out the entry points.","commit_id":"ef2d7e39086e55a63c2d2e4a25eea0f5e7c1c449"}]}
