catalyst-cooperative / pudl

The Public Utility Data Liberation Project provides analysis-ready energy system data to climate advocates, researchers, policymakers, and journalists.
https://catalyst.coop/pudl
MIT License
471 stars 108 forks source link

pip incompatibilities...what trouble are we asking for? #1352

Closed MichaelTiemannOSC closed 2 years ago

MichaelTiemannOSC commented 2 years ago

For the environment we are building, pip install catalystcoop.pudl resulted in these messages:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
jupyter-server 1.6.4 requires anyio<3,>=2.0.2, but you have anyio 3.3.4 which is incompatible.
elyra 2.2.4 requires jinja2<3.0,>=2.11, but you have jinja2 3.0.3 which is incompatible.

Can anybody say what trouble we are asking for and how much to bend one side of our environment vs. the other? Things seem to work ok with light testing of the notebooks.

zaneselvans commented 2 years ago

We're not doing anything crazy with Jinja, and it's only used in the docs build (to output RST based on the metadata) so I imagine that version is fine.

I'm not sure where the anyio dependency is coming from though. In our pudl-dev conda environment it shows up as required by jupyter-server, but that shouldn't impact a pip install, since all the jupyter stuff is only in our conda environment.

On Sat, Nov 20, 2021 at 7:25 AM Michael Tiemann @.***> wrote:

For the environment we are building, pip install catalystcoop.pudl resulted in these messages:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. jupyter-server 1.6.4 requires anyio<3,>=2.0.2, but you have anyio 3.3.4 which is incompatible. elyra 2.2.4 requires jinja2<3.0,>=2.11, but you have jinja2 3.0.3 which is incompatible.

Can anybody say what trouble we are asking for and how much to bend one side of our environment vs. the other? Things seem to work ok with light testing of the notebooks.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/catalyst-cooperative/pudl/issues/1352, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAERSN2AI63WJX4ZNSSN5IDUM6OVXANCNFSM5IN6XCMA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Zane A. Selvans, PhD Chief Data Wrangler Catalyst Cooperative https://catalyst.coop @.*** Signal/WhatsApp/SMS: +1 720 443 1363 Twitter: @ZaneSelvans https://twitter.com/ZaneSelvans PGP https://www.gnupg.org/: 0x64F7B56F3A127B04

MichaelTiemannOSC commented 2 years ago

Well, I just hit my first biggie, but not with the above. PUDL has some dependencies on SQLalchemy 1.4 that are not immediately apparent, but definitely show up when you try to the pudl_out.own_eia860 output generator. OTOH, my environment falls to bits immediately if I replace SQLalchemy 1.3 with 1.4.7. So we have some version skew to resolve. Not your fault...

zaneselvans commented 2 years ago

Hmm, that's odd. SQLAlchemy 1.4 is explicitly listed as one of the PUDL dependencies, isn't it? But also I thought that the only difference between 1.3 and 1.4 was a ton of deprecation warnings (which are going to turn into errors as of 2.0).

On Wed, Nov 24, 2021 at 6:34 PM Michael Tiemann @.***> wrote:

Well, I just hit my first biggie, but not with the above. PUDL has some dependencies on SQLalchemy 1.4 that are not immediately apparent, but definitely show up when you try to the pudl_out.own_eia860 output generator. OTOH, my environment falls to bits immediately if I replace SQLalchemy 1.3 with 1.4.7. So we have some version skew to resolve. Not your fault...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/catalyst-cooperative/pudl/issues/1352#issuecomment-978573850, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAERSN7JME5EOO552AZ2J53UNWAA5ANCNFSM5IN6XCMA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Zane A. Selvans, PhD Chief Data Wrangler Catalyst Cooperative https://catalyst.coop @.*** Signal/WhatsApp/SMS: +1 720 443 1363 Twitter: @ZaneSelvans https://twitter.com/ZaneSelvans PGP https://www.gnupg.org/: 0x64F7B56F3A127B04

MichaelTiemannOSC commented 2 years ago

No oddness at all: when PUDL is installed into an environment with SQLalchemy 1.3, it cheerfully (and silently) updates it to 1.4.7. It's the downgrades the installer squawks about.

SQLalchemy 1.4 uses auth keywords in places that 1.3 did not, leading 1.3 to become confused.

zaneselvans commented 2 years ago

Hmm. I tried running our tests with SQLAlchemy 1.3.x and they did indeed fail because we're using conn.exec_driver_sql() rather than the now deprecated conn.execute()