On Wed, 12 Jun 2024 at 17:50, Andres Freund <and...@anarazel.de> wrote: > > The OAuth pytest suite makes extensive use of > > - psycopg, to easily drive libpq; > > That's probably not going to fly. It introduces painful circular dependencies > between building postgres (for libpq), building psycopg (requiring libpq) and > testing postgres (requiring psycopg). > > You *can* solve such issues, but we've debated that in the past, and I doubt > we'll find agreement on the awkwardness it introduces.
psycopg has a few implementations binary, c, & pure python. The pure python one can be linked to a specific libpq.so file at runtime[1]. As long as we don't break the libpq API (which we shouldn't), we can just point it to the libpq compiled by meson/make. We wouldn't be able to use the newest libpq features that way (because psycopg wouldn't know about them), but that seems totally fine for most usages (i.e. sending a query over a connection). If we really want to use those from the python tests we could write our own tiny CFFI layer specifically for those. > One thing worth thinking about is that such dependencies have to work on a > relatively large number of platforms / architectures. A lot of projects > don't... Do they really? A bunch of the Perl tests we just skip on windows or uncommon platforms. I think we could do the same for these.