)]}'
{"/PATCHSET_LEVEL":[{"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":"ef0b09d34f44b3d80066a632071009924bce1bb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3bf62052_c90f77eb","updated":"2023-02-24 19:55:03.000000000","message":"OK I am working on this a bit.   those tests are still important as we have a contract for what kind of database errors we are raising, and I believe this is why we did not move to pool_pre_ping.   im looking to see now if we can have both things working.","commit_id":"34b56e3256cfdf35b9e8cbb904506d6c8c50f0c3"},{"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":"96dda037765b4c92a2d63dc9e9cae8a9db5de22a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7aeb5a3c_fcaf5ac7","updated":"2023-02-24 20:05:46.000000000","message":"OK unfortunately, this can\u0027t move forward until SQLAlchemy 2.0.5 is the base requirement.     We need to intercept these errors during ping, which is not possible in 1.4.  in 2.0, issue 5648 implemented this feature, however I completely failed to include it for mysql / postgresql.  ","commit_id":"34b56e3256cfdf35b9e8cbb904506d6c8c50f0c3"},{"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":"09d9bb41a9d95ac21cc97b0135c5f4b753394fdd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a31d4846_951028eb","updated":"2023-02-24 22:01:10.000000000","message":"sorry for messing this up.    There\u0027s a lot of little things that need to be fixed for the test suite to work with 2.0 for real, I should work on that.    Do you want me to make a new review or can I just chip away here for awhile and we can clean up after I workaround the issues ?","commit_id":"7bd677fd559c8c215fc7bb0d488ea88aca36bc2f"},{"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":"2f568afc22fbc80ad9247ba1b1dbe2cd71a01bf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d24ea853_af597a53","in_reply_to":"38b50406_fef03d63","updated":"2023-02-27 14:50:59.000000000","message":"I just need to know what directive I can use to create a gerrit that will test against the current released SQLAlchemy 2.0, that is, bypass upper-constraints.txt.   is there a comment I put in the commit message?","commit_id":"7bd677fd559c8c215fc7bb0d488ea88aca36bc2f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3275d07a4e976bd0a33489874e50ed788e874ec9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"38b50406_fef03d63","in_reply_to":"a31d4846_951028eb","updated":"2023-02-27 14:47:26.000000000","message":"Hack hack hack 🐱‍💻 Let me know if I can help out here (though I suspect you\u0027ll make far quicker progress than I will 😊)","commit_id":"7bd677fd559c8c215fc7bb0d488ea88aca36bc2f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d1037df9fde728d3a9a849f78add251656dd1263","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e4e09608_e9348ba7","in_reply_to":"d24ea853_af597a53","updated":"2023-02-28 10:20:26.000000000","message":"Couple of options. You can stick the following in the commit message:\n\n  Depends-On: https://review.opendev.org/c/openstack/requirements/+/872065\n\nYou can temporarily hack tox and stick the following into \u0027[testenv] commands\u0027.\n\n  python -m pip install --upgrade sqlalchemy\n\nOr you can simply drop the constraints file from \u0027[testenv] deps\u0027 and hope none of the other constraints are necessary.","commit_id":"7bd677fd559c8c215fc7bb0d488ea88aca36bc2f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d1037df9fde728d3a9a849f78add251656dd1263","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"819bae5e_cdfc8588","updated":"2023-02-28 10:20:26.000000000","message":"As a general aside, I wonder if any of the things we\u0027re learning here are worth including as warnings in a future 1.4.x SQLAlchemy release? To help others on their journey","commit_id":"b04ae16d5727474ac688e036689d8f16873bcf44"},{"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":"c0df372cb2b1e3fe8d09b1e8ce86c3f5c00b008c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3f8a6ae7_34f36eb6","updated":"2023-02-28 13:57:17.000000000","message":"well I think everything here is basically one of two things:\n\n1. str(url) obfuscates passwords.    This is obviously a big deal for projects that use the pattern of str(url) to make new URLs, and was my main concern about this change.   It\u0027s noted in the 2.0 what\u0027s new doc at https://docs.sqlalchemy.org/en/20/changelog/whatsnew_20.html#str-engine-url-will-obfuscate-the-password-by-default and is overall not really \"controversial\" for a 2.0 release.   \n\nInteresting thing to note however, while I was very concerned about \"use str(url) to make new URLs\", nobody else was; SQLAlchemy and Alembic (both of which I wrote) had a lot of regressions from this change (mostly in the test suite), and here we see oslo.db having a lot of regressions from it, again all within the test suite in the \"provision\" modules...which...I also wrote!   so it\u0027s possible the str(url) thing is mostly bumpy for \"code zzzeek wrote\" :)    In any case there wasn\u0027t really a way to \"warn\" for this in 1.4 without it being intrusive.\n\n2. then there\u0027s the handle_error event having to change a bit for this new case where the ping handler finds the error.   it\u0027s a small change and again not very controversial for a \"2.0\" change.   We can note it in the whatsnew-20 doc, but again, handle_error I added mostly for the benefit of oslo.db, for the exc_filters code that...I wrote anyway!  I\u0027ve not really seen other people using it much in the wild.\n\nWhat im getting at is that these two changes are mostly me running into my own code :)  but yes the str(url) thing perhaps we can also note in the 1.4 migration doc.  the only issue we had reported was flask-sqlalchemy was also using str(url) somewhere, that\u0027s fixed.\n","commit_id":"b04ae16d5727474ac688e036689d8f16873bcf44"}],"oslo_db/sqlalchemy/provision.py":[{"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":"2f568afc22fbc80ad9247ba1b1dbe2cd71a01bf8","unresolved":false,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    @classmethod"},{"line_number":261,"context_line":"    def _ensure_backend_available(cls, url):"},{"line_number":262,"context_line":"        url \u003d sa_url.make_url(str(url))"},{"line_number":263,"context_line":"        try:"},{"line_number":264,"context_line":"            eng \u003d sqlalchemy.create_engine(url)"},{"line_number":265,"context_line":"        except ImportError as i_e:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3783fa15_ae624673","side":"PARENT","line":262,"updated":"2023-02-27 14:50:59.000000000","message":"str(url) obfuscates the password now, so we can\u0027t just do this anymore.","commit_id":"7d619ae3eb2a64dadeaa9fbaeb1b9424b83414a6"},{"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":"2f568afc22fbc80ad9247ba1b1dbe2cd71a01bf8","unresolved":true,"context_lines":[{"line_number":518,"context_line":"    def create_named_database(self, engine, ident, conditional\u003dFalse):"},{"line_number":519,"context_line":"        with engine.connect() as conn:"},{"line_number":520,"context_line":"            if not conditional or not self.database_exists(conn, ident):"},{"line_number":521,"context_line":"                conn.rollback()"},{"line_number":522,"context_line":"                with conn.begin():"},{"line_number":523,"context_line":"                    conn.exec_driver_sql(\"CREATE DATABASE %s\" % ident)"},{"line_number":524,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7310ef30_fac28ea2","line":521,"updated":"2023-02-27 14:50:59.000000000","message":"this needs to be a compat.conditional_rollback or something like that.","commit_id":"7bd677fd559c8c215fc7bb0d488ea88aca36bc2f"}],"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":"eba4c03712ca71395da70d330762fc4e6cfd99ee","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import sqlalchemy as sqla"},{"line_number":22,"context_line":"from sqlalchemy.engine import url as sqla_url"},{"line_number":23,"context_line":"from sqlalchemy import event"},{"line_number":24,"context_line":"import sqlalchemy.exc"},{"line_number":25,"context_line":"from sqlalchemy.orm import declarative_base"},{"line_number":26,"context_line":"from sqlalchemy.orm import registry"}],"source_content_type":"text/x-python","patch_set":1,"id":"e23801be_5391fffd","line":23,"in_reply_to":"1bba1a51_4d6f092c","updated":"2023-02-23 19:27:26.000000000","message":"Done","commit_id":"1bfa01c288307830d71590d20cc3c318d25e9580"}]}
