)]}'
{"openstack_releases/cmds/validate.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5e1e44760d5d73aee66f8a6f6f71efc7f5faa077","unresolved":false,"context_lines":[{"line_number":884,"context_line":"            # Leverage the cache from @skip_existing_tags to see if we"},{"line_number":885,"context_line":"            # actually need to check this tag."},{"line_number":886,"context_line":"            if release.version in existing_tag_cache[project.repo.name]:"},{"line_number":887,"context_line":"                continue"},{"line_number":888,"context_line":""},{"line_number":889,"context_line":"            # Check the SHA specified for the tag."},{"line_number":890,"context_line":"            LOG.debug(\u0027{} SHA {}\u0027.format(project.repo.name, project.hash))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_fad281cf","line":887,"updated":"2018-09-21 23:54:40.000000000","message":"Do we still need to test that the SHA matches, or are we protected for that somewhere else?","commit_id":"8ba76826d5ffc684deac92e601c487cfcad684c5"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"59abb1b0480be5282298236b6539fdb9df275ebf","unresolved":false,"context_lines":[{"line_number":884,"context_line":"            # Leverage the cache from @skip_existing_tags to see if we"},{"line_number":885,"context_line":"            # actually need to check this tag."},{"line_number":886,"context_line":"            if release.version in existing_tag_cache[project.repo.name]:"},{"line_number":887,"context_line":"                continue"},{"line_number":888,"context_line":""},{"line_number":889,"context_line":"            # Check the SHA specified for the tag."},{"line_number":890,"context_line":"            LOG.debug(\u0027{} SHA {}\u0027.format(project.repo.name, project.hash))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_5b14d44d","line":887,"in_reply_to":"3f79a3b5_bbdf28d6","updated":"2018-09-22 21:45:42.000000000","message":"The issue usually comes up when we import old history.","commit_id":"8ba76826d5ffc684deac92e601c487cfcad684c5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cfecc79e337cf1a53e56a92f5fb15b406628de54","unresolved":false,"context_lines":[{"line_number":884,"context_line":"            # Leverage the cache from @skip_existing_tags to see if we"},{"line_number":885,"context_line":"            # actually need to check this tag."},{"line_number":886,"context_line":"            if release.version in existing_tag_cache[project.repo.name]:"},{"line_number":887,"context_line":"                continue"},{"line_number":888,"context_line":""},{"line_number":889,"context_line":"            # Check the SHA specified for the tag."},{"line_number":890,"context_line":"            LOG.debug(\u0027{} SHA {}\u0027.format(project.repo.name, project.hash))"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_bbdf28d6","line":887,"in_reply_to":"3f79a3b5_fad281cf","updated":"2018-09-22 20:13:09.000000000","message":"You mean if someone changes the deliverable file so a previous release now points to a different sha? I was thinking that would be easy to spot looking at the review since this validation was one that takes an inordinate amount of time for repos with a large number of previous releases. But I guess that does kind of defeat the purpose of this validation.","commit_id":"8ba76826d5ffc684deac92e601c487cfcad684c5"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5e1e44760d5d73aee66f8a6f6f71efc7f5faa077","unresolved":false,"context_lines":[{"line_number":1003,"context_line":"                continue"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"            if not gitutils.safe_clone_repo(context.workdir, project.repo.name,"},{"line_number":1006,"context_line":"                                            project.hash, context):"},{"line_number":1007,"context_line":"                continue"},{"line_number":1008,"context_line":""},{"line_number":1009,"context_line":"            LOG.debug(\u0027Found new version {} for {}\u0027.format("}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_bdc16351","line":1006,"updated":"2018-09-21 23:54:40.000000000","message":"I think commit_exists() is going to be more efficient than safe_clone_repo(). The former only does a \u0027git show\u0027.","commit_id":"8ba76826d5ffc684deac92e601c487cfcad684c5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"cfecc79e337cf1a53e56a92f5fb15b406628de54","unresolved":false,"context_lines":[{"line_number":1003,"context_line":"                continue"},{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"            if not gitutils.safe_clone_repo(context.workdir, project.repo.name,"},{"line_number":1006,"context_line":"                                            project.hash, context):"},{"line_number":1007,"context_line":"                continue"},{"line_number":1008,"context_line":""},{"line_number":1009,"context_line":"            LOG.debug(\u0027Found new version {} for {}\u0027.format("}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_7bc2f004","line":1006,"in_reply_to":"3f79a3b5_bdc16351","updated":"2018-09-22 20:13:09.000000000","message":"This is keeping the existing workflow, just skipping the commit_exists call since we already know it does by virtue of it being in existing_tag_cache.\n\nMaybe we can get of the safe_clone_repo call too? I\u0027m not seeing anything below that should require it to be checked out to the project.hash.","commit_id":"8ba76826d5ffc684deac92e601c487cfcad684c5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"d9aee0676124a4ff27bd0906a23aa44e2e11bd26","unresolved":false,"context_lines":[{"line_number":1812,"context_line":"            continue"},{"line_number":1813,"context_line":""},{"line_number":1814,"context_line":"        checks \u003d ["},{"line_number":1815,"context_line":"            clone_deliverable,"},{"line_number":1816,"context_line":"            validate_bugtracker,"},{"line_number":1817,"context_line":"            validate_team,"},{"line_number":1818,"context_line":"            validate_release_notes,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_bbf8884a","line":1815,"range":{"start_line":1815,"start_character":12,"end_line":1815,"end_character":29},"updated":"2018-09-22 20:18:10.000000000","message":"This makes sure the repo always exists. I think we can probably optimize things elsewhere by just skipping clone_repo calls.","commit_id":"8ba76826d5ffc684deac92e601c487cfcad684c5"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"59abb1b0480be5282298236b6539fdb9df275ebf","unresolved":false,"context_lines":[{"line_number":1812,"context_line":"            continue"},{"line_number":1813,"context_line":""},{"line_number":1814,"context_line":"        checks \u003d ["},{"line_number":1815,"context_line":"            clone_deliverable,"},{"line_number":1816,"context_line":"            validate_bugtracker,"},{"line_number":1817,"context_line":"            validate_team,"},{"line_number":1818,"context_line":"            validate_release_notes,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_fb08402f","line":1815,"range":{"start_line":1815,"start_character":12,"end_line":1815,"end_character":29},"in_reply_to":"3f79a3b5_bbf8884a","updated":"2018-09-22 21:45:42.000000000","message":"*Some* of the calls are needed. If we read anything out of the repo, like the zuul config or gitreview, then we need it checked out at the commit being tagged. And the step that tries to build a package also needs it checked out there.","commit_id":"8ba76826d5ffc684deac92e601c487cfcad684c5"}],"openstack_releases/tests/test_validate.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"324452df51c2ef06dcbcfd5fe7ef2d3fcf6b6c9b","unresolved":false,"context_lines":[{"line_number":593,"context_line":"        validate.validate_release_sha_exists(deliv, self.ctx)"},{"line_number":594,"context_line":"        self.ctx.show_summary()"},{"line_number":595,"context_line":"        self.assertEqual(0, len(self.ctx.warnings))"},{"line_number":596,"context_line":"        self.assertEqual(0, len(self.ctx.errors))"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    def test_no_such_hash(self):"},{"line_number":599,"context_line":"        deliv \u003d deliverable.Deliverable("}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_3efb067c","line":596,"updated":"2018-09-23 03:21:35.000000000","message":"I couldn\u0027t tell the reason we were expecting an error on a valid hash.","commit_id":"bb81a80fd0f895128488463effb6cf3049830cc0"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"198e7256579503a29f106234b34279db8a66a405","unresolved":false,"context_lines":[{"line_number":593,"context_line":"        validate.validate_release_sha_exists(deliv, self.ctx)"},{"line_number":594,"context_line":"        self.ctx.show_summary()"},{"line_number":595,"context_line":"        self.assertEqual(0, len(self.ctx.warnings))"},{"line_number":596,"context_line":"        self.assertEqual(0, len(self.ctx.errors))"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    def test_no_such_hash(self):"},{"line_number":599,"context_line":"        deliv \u003d deliverable.Deliverable("}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_a05b68f7","line":596,"in_reply_to":"3f79a3b5_3efb067c","updated":"2018-09-24 13:22:57.000000000","message":"I think that was a bug in the test before. I get an error when clone_repo runs because the fetch operation fails because the repo has no origin remote.","commit_id":"bb81a80fd0f895128488463effb6cf3049830cc0"}]}
