)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"4db083a30326a9b1926c0c9a6a751f00878709d6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Support unique labels for alembic branches"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We to have all projects that integrate with Neutron use the same"},{"line_number":10,"context_line":"alembic environment (Neutron\u0027s) instead of having a separate alembic"},{"line_number":11,"context_line":"env.py in each repo. This means that each project will need to label"},{"line_number":12,"context_line":"their contract and expand branches uniquely."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_e4338560","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":5},"updated":"2016-06-24 00:27:29.000000000","message":"We plan to","commit_id":"3582a0e96713b82da86bbaefd9798af6ddd20baf"}],"doc/source/devref/alembic_migrations.rst":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8ffd8eb664e2440d19d43262bd924c57790e1361","unresolved":false,"context_lines":[{"line_number":430,"context_line":"To be compatible with the Newton release of neutron, all projects must use"},{"line_number":431,"context_line":"unique alembic branch labels of the form ``\u003cproject\u003e-contract`` and"},{"line_number":432,"context_line":"``\u003cproject\u003e-expand``. Support for these new labels has been back-ported to the"},{"line_number":433,"context_line":"Mitaka and Liberty releases of neutron, allowing sub-projects to be backwards"},{"line_number":434,"context_line":"compatible if needed."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_81e5e839","line":433,"updated":"2016-07-01 15:26:40.000000000","message":"How can you claim that since it did not happen yet?","commit_id":"1da5d1864c5dc4a5d452d3353b37d0ce4b8f9788"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"23d2c4f0ebe146dc9e1e38e089822e5153d8daa6","unresolved":false,"context_lines":[{"line_number":430,"context_line":"To be compatible with the Newton release of neutron, all projects must use"},{"line_number":431,"context_line":"unique alembic branch labels of the form ``\u003cproject\u003e-contract`` and"},{"line_number":432,"context_line":"``\u003cproject\u003e-expand``. Support for these new labels has been back-ported to the"},{"line_number":433,"context_line":"Mitaka and Liberty releases of neutron, allowing sub-projects to be backwards"},{"line_number":434,"context_line":"compatible if needed."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_56cc618a","line":433,"in_reply_to":"3aaa91ec_81e5e839","updated":"2016-07-01 16:13:05.000000000","message":"I\u0027ll move this doc change to a follow-up patch that depends on the stable backports.","commit_id":"1da5d1864c5dc4a5d452d3353b37d0ce4b8f9788"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8ffd8eb664e2440d19d43262bd924c57790e1361","unresolved":false,"context_lines":[{"line_number":431,"context_line":"unique alembic branch labels of the form ``\u003cproject\u003e-contract`` and"},{"line_number":432,"context_line":"``\u003cproject\u003e-expand``. Support for these new labels has been back-ported to the"},{"line_number":433,"context_line":"Mitaka and Liberty releases of neutron, allowing sub-projects to be backwards"},{"line_number":434,"context_line":"compatible if needed."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"HEAD files for conflict management"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_013f3888","line":434,"updated":"2016-07-01 15:26:40.000000000","message":"Can you elaborate which compat scenario you envision?","commit_id":"1da5d1864c5dc4a5d452d3353b37d0ce4b8f9788"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"23d2c4f0ebe146dc9e1e38e089822e5153d8daa6","unresolved":false,"context_lines":[{"line_number":431,"context_line":"unique alembic branch labels of the form ``\u003cproject\u003e-contract`` and"},{"line_number":432,"context_line":"``\u003cproject\u003e-expand``. Support for these new labels has been back-ported to the"},{"line_number":433,"context_line":"Mitaka and Liberty releases of neutron, allowing sub-projects to be backwards"},{"line_number":434,"context_line":"compatible if needed."},{"line_number":435,"context_line":""},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"HEAD files for conflict management"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3aaa91ec_f60e2d8b","line":434,"in_reply_to":"3aaa91ec_013f3888","updated":"2016-07-01 16:13:05.000000000","message":"It seems that some (many?) of the networking-foo projects are currently compatible with multiple neutron releases, like L and M, because they don\u0027t depend on any new changes.\n\nI think they would appreciate it if they could make themselves compatible with N and still keep compatible with L and M.\n\nDoes that answer your question?","commit_id":"1da5d1864c5dc4a5d452d3353b37d0ce4b8f9788"}],"neutron/db/migration/cli.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8ffd8eb664e2440d19d43262bd924c57790e1361","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    # validate that the script has expected labels only"},{"line_number":274,"context_line":"    bad_labels \u003d revision.branch_labels - expected_labels"},{"line_number":275,"context_line":"    if bad_labels:"},{"line_number":276,"context_line":"        # NOTE(ihrachyshka): this hack is temporary to accommodate those"},{"line_number":277,"context_line":"        # projects that already initialized their branches with liberty_*"},{"line_number":278,"context_line":"        # labels. Let\u0027s notify them about the deprecation for now and drop it"},{"line_number":279,"context_line":"        # later."}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_817fa8aa","side":"PARENT","line":276,"updated":"2016-07-01 15:26:40.000000000","message":"Maybe worth mentioning in the commit message that clean up.","commit_id":"4449d1b8256a74a8bacd971191e9a41a87439409"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"23d2c4f0ebe146dc9e1e38e089822e5153d8daa6","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    # validate that the script has expected labels only"},{"line_number":274,"context_line":"    bad_labels \u003d revision.branch_labels - expected_labels"},{"line_number":275,"context_line":"    if bad_labels:"},{"line_number":276,"context_line":"        # NOTE(ihrachyshka): this hack is temporary to accommodate those"},{"line_number":277,"context_line":"        # projects that already initialized their branches with liberty_*"},{"line_number":278,"context_line":"        # labels. Let\u0027s notify them about the deprecation for now and drop it"},{"line_number":279,"context_line":"        # later."}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_69ec22f4","side":"PARENT","line":276,"in_reply_to":"3aaa91ec_817fa8aa","updated":"2016-07-01 16:13:05.000000000","message":"Done","commit_id":"4449d1b8256a74a8bacd971191e9a41a87439409"}],"neutron/tests/functional/db/test_migrations.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8ffd8eb664e2440d19d43262bd924c57790e1361","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            script \u003d alembic_script.ScriptDirectory.from_config("},{"line_number":238,"context_line":"                self.alembic_config)"},{"line_number":239,"context_line":"            for m in list(script.walk_revisions(base\u003d\u0027base\u0027, head\u003d\u0027heads\u0027)):"},{"line_number":240,"context_line":"                branches \u003d {migration.CONTRACT_BRANCH"},{"line_number":241,"context_line":"                            if bl.endswith(migration.CONTRACT_BRANCH) else"},{"line_number":242,"context_line":"                            migration.EXPAND_BRANCH"},{"line_number":243,"context_line":"                            if bl.endswith(migration.EXPAND_BRANCH) else"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_814cc8c9","line":240,"updated":"2016-07-01 15:26:40.000000000","message":"that is not the easiest python code I read.","commit_id":"1da5d1864c5dc4a5d452d3353b37d0ce4b8f9788"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"23d2c4f0ebe146dc9e1e38e089822e5153d8daa6","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            script \u003d alembic_script.ScriptDirectory.from_config("},{"line_number":238,"context_line":"                self.alembic_config)"},{"line_number":239,"context_line":"            for m in list(script.walk_revisions(base\u003d\u0027base\u0027, head\u003d\u0027heads\u0027)):"},{"line_number":240,"context_line":"                branches \u003d {migration.CONTRACT_BRANCH"},{"line_number":241,"context_line":"                            if bl.endswith(migration.CONTRACT_BRANCH) else"},{"line_number":242,"context_line":"                            migration.EXPAND_BRANCH"},{"line_number":243,"context_line":"                            if bl.endswith(migration.EXPAND_BRANCH) else"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_49116653","line":240,"in_reply_to":"3aaa91ec_814cc8c9","updated":"2016-07-01 16:13:05.000000000","message":"Done","commit_id":"1da5d1864c5dc4a5d452d3353b37d0ce4b8f9788"}],"neutron/tests/unit/db/test_migration.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"4db083a30326a9b1926c0c9a6a751f00878709d6","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                                                  attrs\u003dattrs)"},{"line_number":149,"context_line":"            cli.migration_entrypoints[project] \u003d entrypoint"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _main_test_helper(self, argv, func_name, exp_kwargs\u003d[{}]):"},{"line_number":152,"context_line":"        with mock.patch.object(sys, \u0027argv\u0027, argv),\\"},{"line_number":153,"context_line":"                mock.patch.object(cli, \u0027run_sanity_checks\u0027),\\"},{"line_number":154,"context_line":"                mock.patch.object(cli, \u0027validate_revisions\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_84f56158","side":"PARENT","line":151,"range":{"start_line":151,"start_character":60,"end_line":151,"end_character":64},"updated":"2016-06-24 00:27:29.000000000","message":"Unrelated fix. Nasty though.","commit_id":"b9c2f5444d57df93c933322ff2409666c2691ce8"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"4db083a30326a9b1926c0c9a6a751f00878709d6","unresolved":false,"context_lines":[{"line_number":658,"context_line":""},{"line_number":659,"context_line":"    @mock.patch(\u0027alembic.script.ScriptDirectory.walk_revisions\u0027)"},{"line_number":660,"context_line":"    def test__get_branch_points(self, walk_mock):"},{"line_number":661,"context_line":"        revisions \u003d [FakeRevision(is_branch_point\u003dtools.get_random_boolean())"},{"line_number":662,"context_line":"                     for i in range(50)]"},{"line_number":663,"context_line":"        walk_mock.return_value \u003d revisions"},{"line_number":664,"context_line":"        script_dir \u003d alembic_script.ScriptDirectory.from_config("}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_448ff9cb","line":661,"range":{"start_line":661,"start_character":74,"end_line":661,"end_character":76},"updated":"2016-06-24 00:27:29.000000000","message":"Unrelated fix. But a rather nasty bug.","commit_id":"3582a0e96713b82da86bbaefd9798af6ddd20baf"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8ffd8eb664e2440d19d43262bd924c57790e1361","unresolved":false,"context_lines":[{"line_number":658,"context_line":""},{"line_number":659,"context_line":"    @mock.patch(\u0027alembic.script.ScriptDirectory.walk_revisions\u0027)"},{"line_number":660,"context_line":"    def test__get_branch_points(self, walk_mock):"},{"line_number":661,"context_line":"        revisions \u003d [FakeRevision(is_branch_point\u003dtools.get_random_boolean())"},{"line_number":662,"context_line":"                     for i in range(50)]"},{"line_number":663,"context_line":"        walk_mock.return_value \u003d revisions"},{"line_number":664,"context_line":"        script_dir \u003d alembic_script.ScriptDirectory.from_config("}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_93325bf1","line":661,"updated":"2016-07-01 15:26:40.000000000","message":"ouch","commit_id":"1da5d1864c5dc4a5d452d3353b37d0ce4b8f9788"}]}
