)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"3c7f58c7005c078322f24a4ebe838e482febd94d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"adjustments needed, using duck-typing to check if the"},{"line_number":12,"context_line":"URL object is of the new style."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"WIP as I am still cross-testing the patch on the"},{"line_number":15,"context_line":"SQLAlchemy side."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id2f0663b13ed0f81e91a8d44f73d8541015bf844"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9f560f44_6296fa96","line":15,"range":{"start_line":14,"start_character":0,"end_line":15,"end_character":16},"updated":"2020-09-04 11:25:09.000000000","message":"Still WIP?","commit_id":"1ec90f4997bc3125499cb781492413068f7cb194"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"03fa634b57617a4f12192db4eebb680f9857009a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"adjustments needed, using duck-typing to check if the"},{"line_number":12,"context_line":"URL object is of the new style."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"WIP as I am still cross-testing the patch on the"},{"line_number":15,"context_line":"SQLAlchemy side."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id2f0663b13ed0f81e91a8d44f73d8541015bf844"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f560f44_db588832","line":14,"updated":"2020-09-04 18:57:24.000000000","message":"Is this still the case?","commit_id":"3724bdc16f735ad057a479fe06c8fff08054fbf8"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"1864801c20208aee03285e6f1ae0615ab88ab252","unresolved":false,"context_lines":[{"line_number":11,"context_line":"adjustments needed, using duck-typing to check if the"},{"line_number":12,"context_line":"URL object is of the new style."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"WIP as I am still cross-testing the patch on the"},{"line_number":15,"context_line":"SQLAlchemy side."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id2f0663b13ed0f81e91a8d44f73d8541015bf844"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f560f44_9bd3b05f","line":14,"in_reply_to":"9f560f44_db588832","updated":"2020-09-04 19:11:07.000000000","message":"the change has merged to SQLAlchemy master and will by all accounts be part SQLAlchemy 1.4 starting with the beta releases.\n\nso the simple answer is, \"no, this is not WIP anymore\".\n\nThe more complex answer is where I\u0027m kind of inviting people to look at the upstream change as I haven\u0027t gotten much feedback on it, both in terms of a breaking change being made as well as the proposed (and now implemented) API design.\n\nI try to stay away from breaking changes as much as possible but I made an exception here.  I was expecting some skepticism but everyone I asked seemed OK with it and nobody has said much about the new API.\n\nBackground on the change is published at https://docs.sqlalchemy.org/en/14/changelog/migration_14.html#the-url-object-is-now-immutable and the URL class documentation is at https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL . The original gerrit was at https://gerrit.sqlalchemy.org/c/sqlalchemy/sqlalchemy/+/2172 .","commit_id":"3724bdc16f735ad057a479fe06c8fff08054fbf8"}],"oslo_db/sqlalchemy/engines.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"faaaa8f19297ab09fe6a0273e22bff978608978d","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                \"and will make use of a default driver.  \""},{"line_number":134,"context_line":"                \"A full dbname+drivername:// protocol is recommended. \""},{"line_number":135,"context_line":"                \"For MySQL, it is strongly recommended that mysql+pymysql:// \""},{"line_number":136,"context_line":"                \"be specified for maximum service compatibility\", (url, )"},{"line_number":137,"context_line":"            )"},{"line_number":138,"context_line":"        else:"},{"line_number":139,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_050e23e4","line":136,"updated":"2020-09-04 16:47:35.000000000","message":"I don\u0027t think this is correct. Is there a reason we want a tuple formatted into the string rather than just the url itself?","commit_id":"1ec90f4997bc3125499cb781492413068f7cb194"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"f52c546c2860a97beb8479afec513d8cb8244a65","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                \"and will make use of a default driver.  \""},{"line_number":134,"context_line":"                \"A full dbname+drivername:// protocol is recommended. \""},{"line_number":135,"context_line":"                \"For MySQL, it is strongly recommended that mysql+pymysql:// \""},{"line_number":136,"context_line":"                \"be specified for maximum service compatibility\", (url, )"},{"line_number":137,"context_line":"            )"},{"line_number":138,"context_line":"        else:"},{"line_number":139,"context_line":"            LOG.warning("}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_a59657ee","line":136,"in_reply_to":"9f560f44_050e23e4","updated":"2020-09-04 17:16:25.000000000","message":"this raised an error however the problem is in the test that is mocking LOG.warning, not here.","commit_id":"1ec90f4997bc3125499cb781492413068f7cb194"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"eb15b87102810ed0a9a4461141f52449898bf401","unresolved":true,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"def _extend_url_parameters(url, connection_parameters):"},{"line_number":108,"context_line":"    # 1.4"},{"line_number":109,"context_line":"    if hasattr(url, \"update_query_string\"):"},{"line_number":110,"context_line":"        return url.update_query_string(connection_parameters, append\u003dTrue)"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3984091e_3190f7f3","line":108,"range":{"start_line":108,"start_character":6,"end_line":108,"end_character":9},"updated":"2020-12-11 14:26:14.000000000","message":"sqlalchemy \u003e\u003d 1.4\n\nMaybe add a todo to remove this when our minimum version \u003e\u003d 1.4 ?","commit_id":"8f887f657cd869ec431464046f218d9e62129ccc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96864102e92f509fad24b4740765dac32f68fec6","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"def _extend_url_parameters(url, connection_parameters):"},{"line_number":108,"context_line":"    # 1.4"},{"line_number":109,"context_line":"    if hasattr(url, \"update_query_string\"):"},{"line_number":110,"context_line":"        return url.update_query_string(connection_parameters, append\u003dTrue)"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ee5d50c_f9fe7990","line":108,"range":{"start_line":108,"start_character":6,"end_line":108,"end_character":9},"in_reply_to":"1a8183ba_1edb2b6b","updated":"2020-12-11 16:51:33.000000000","message":"Yup, exactly. I see you\u0027ve done in the next patchset. Thanks!","commit_id":"8f887f657cd869ec431464046f218d9e62129ccc"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"db77ed18506398e332e621aee85df0b36102e62a","unresolved":true,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"def _extend_url_parameters(url, connection_parameters):"},{"line_number":108,"context_line":"    # 1.4"},{"line_number":109,"context_line":"    if hasattr(url, \"update_query_string\"):"},{"line_number":110,"context_line":"        return url.update_query_string(connection_parameters, append\u003dTrue)"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a8183ba_1edb2b6b","line":108,"range":{"start_line":108,"start_character":6,"end_line":108,"end_character":9},"in_reply_to":"3984091e_3190f7f3","updated":"2020-12-11 16:03:54.000000000","message":"you mean the \"hasattr()\" part, I assume?   update_query_string() is new in 1.4 and will be required.","commit_id":"8f887f657cd869ec431464046f218d9e62129ccc"}],"oslo_db/sqlalchemy/provision.py":[{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"5334cc15783bf829d400cb32f5b3a445ec4aa8f8","unresolved":false,"context_lines":[{"line_number":497,"context_line":"        url \u003d sa_url.make_url(str(base_url))"},{"line_number":498,"context_line":"        if hasattr(url, \"set\"):"},{"line_number":499,"context_line":"            return url.set(database\u003dident)"},{"line_number":500,"context_line":"        else:"},{"line_number":501,"context_line":"            url.database \u003d ident"},{"line_number":502,"context_line":"            return url"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_27fab241","line":500,"updated":"2020-10-14 09:49:53.000000000","message":"The else is not necessary here, because you have a return in the if.","commit_id":"3724bdc16f735ad057a479fe06c8fff08054fbf8"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"891479541142938626c3ab67da7fd1f25cc72732","unresolved":false,"context_lines":[{"line_number":497,"context_line":"        url \u003d sa_url.make_url(str(base_url))"},{"line_number":498,"context_line":"        if hasattr(url, \"set\"):"},{"line_number":499,"context_line":"            return url.set(database\u003dident)"},{"line_number":500,"context_line":"        else:"},{"line_number":501,"context_line":"            url.database \u003d ident"},{"line_number":502,"context_line":"            return url"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f6b1bfe_182b9794","line":500,"in_reply_to":"7f6b1bfe_27fab241","updated":"2020-10-14 13:13:08.000000000","message":"Done","commit_id":"3724bdc16f735ad057a479fe06c8fff08054fbf8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"eb15b87102810ed0a9a4461141f52449898bf401","unresolved":true,"context_lines":[{"line_number":496,"context_line":""},{"line_number":497,"context_line":"        url \u003d sa_url.make_url(str(base_url))"},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"        if hasattr(url, \"set\"):"},{"line_number":500,"context_line":"            url \u003d url.set(database\u003dident)"},{"line_number":501,"context_line":"        else:"},{"line_number":502,"context_line":"            url.database \u003d ident"}],"source_content_type":"text/x-python","patch_set":5,"id":"c339987d_541564cd","line":499,"updated":"2020-12-11 14:26:14.000000000","message":"Ditto. Let\u0027s call out why we do this and add a prompt to remove it in the future","commit_id":"8f887f657cd869ec431464046f218d9e62129ccc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96864102e92f509fad24b4740765dac32f68fec6","unresolved":false,"context_lines":[{"line_number":496,"context_line":""},{"line_number":497,"context_line":"        url \u003d sa_url.make_url(str(base_url))"},{"line_number":498,"context_line":""},{"line_number":499,"context_line":"        if hasattr(url, \"set\"):"},{"line_number":500,"context_line":"            url \u003d url.set(database\u003dident)"},{"line_number":501,"context_line":"        else:"},{"line_number":502,"context_line":"            url.database \u003d ident"}],"source_content_type":"text/x-python","patch_set":5,"id":"66af3d0b_3da22e7b","line":499,"in_reply_to":"c339987d_541564cd","updated":"2020-12-11 16:51:33.000000000","message":"Done in PS6","commit_id":"8f887f657cd869ec431464046f218d9e62129ccc"}],"oslo_db/tests/sqlalchemy/test_exc_filters.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"eb15b87102810ed0a9a4461141f52449898bf401","unresolved":true,"context_lines":[{"line_number":386,"context_line":"        super(TestNonExistentDatabase, self).setUp()"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        url \u003d sqla_url.make_url(str(self.engine.url))"},{"line_number":389,"context_line":"        if hasattr(url, \"set\"):"},{"line_number":390,"context_line":"            self.url \u003d url.set(database\u003d\"non_existent_database\")"},{"line_number":391,"context_line":"        else:"},{"line_number":392,"context_line":"            url.database \u003d \u0027non_existent_database\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"7b157db1_b12f4308","line":389,"updated":"2020-12-11 14:26:14.000000000","message":"As before. TODO needed","commit_id":"8f887f657cd869ec431464046f218d9e62129ccc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96864102e92f509fad24b4740765dac32f68fec6","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        super(TestNonExistentDatabase, self).setUp()"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        url \u003d sqla_url.make_url(str(self.engine.url))"},{"line_number":389,"context_line":"        if hasattr(url, \"set\"):"},{"line_number":390,"context_line":"            self.url \u003d url.set(database\u003d\"non_existent_database\")"},{"line_number":391,"context_line":"        else:"},{"line_number":392,"context_line":"            url.database \u003d \u0027non_existent_database\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"93935dd2_c00817a8","line":389,"in_reply_to":"7b157db1_b12f4308","updated":"2020-12-11 16:51:33.000000000","message":"Done in PS6","commit_id":"8f887f657cd869ec431464046f218d9e62129ccc"}]}
