-
Notifications
You must be signed in to change notification settings - Fork 355
Closed
Description
The testcontainers-* packages, e.g.:
were added as part of the last release, but it introduces a lot of complexity, for what could be just a lot of optional dependency groups in one package.
As it stands,
the dependency tree is something like:
testcontainers
+--- testcontainers-core -> *
+--- [postgres] (to represent "group" if testcontainers[postgres] or testcontainers[minio,postgres] is requested to be installed)
+--- testcontainers-postgres (*)
+--- testcontainers-core (*)
+--- sqlalchemy (*)
\--- psycopg2-binary (*)
but it could look like:
testcontainers
+--- [postgres] (to represent "group" if testcontainers[postgres] or testcontainers[minio,postgres] is requested to be installed)
+--- sqlalchemy (*)
\--- psycopg2-binary (*)
downsides:
- of course users may get import errors, and we should then wrap those to educate users on how to install
testcontainers[postgres]rather than justtestcontainers. - temporary pain while we lack 100% parity with testcontainers-java (log + port waiting, rather than importing sqlalchemy)
upsides:
- better developer experience on both sides (library and client side)
- we can publish a single package to pypi, we still have yet to hear back from Till, and he is the only maintainer on those packages.