Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pymc3: unexpected minor version effect from 3.10.0 to 3.11.0 #4430

Closed
zeroaltitude opened this issue Jan 22, 2021 · 8 comments · Fixed by #4432
Closed

pymc3: unexpected minor version effect from 3.10.0 to 3.11.0 #4430

zeroaltitude opened this issue Jan 22, 2021 · 8 comments · Fixed by #4432

Comments

@zeroaltitude
Copy link

If you have questions about a specific use case, or you are not sure whether this is a bug or not, please post it to our discourse channel: https://discourse.pymc.io

Description of your problem

In pymc3==3.10.0, it was valid to say

import pymc3 as pm
pm.summary(...)

That is, the summary method existed.

As of version 3.11.0, this is no longer the case: calling pm.summary() gives a no method found error.

The semantic versioning specification (https://semver.org/) seems to indicate that minor version updates should not break backwards compatibility. This is important because many projects pin versions using a fragment that looks like this pymc3>=3,<4 to "band pin", which allows us to take minor and patch updates that are inevitable because of the perils of conflicts with exact version matches in complex projects, while still safely anticipating backwards compatibility.

Versions and main components

  • PyMC3 Version: 3.11.0
  • Python Version: 3.8
  • How did you install PyMC3: pip
@ricardoV94
Copy link
Member

It seems this change was also missed in the Release Notes

@twiecki
Copy link
Member

twiecki commented Jan 22, 2021

Ouch, sorry about that @zeroaltitude! You can just use az.summary() instead. We definitely need to adjust release notes for that. I even wonder if we should undo this change and cut a new release :-/.

@zeroaltitude
Copy link
Author

@twiecki No worries -- I suspect that overall, it's better to eat this one. I mention it merely so that the team can move forward with this in mind. Undoing a release can be even more disruptive. But thank you so much for your future sensitivity to the issue -- I'm psyched to know this community is so thoughtful.

@zeroaltitude
Copy link
Author

Also, do you mean that pm.summary() is an alias to arviz.summary()?

@michaelosthege
Copy link
Member

Ouch, sorry about that @zeroaltitude! You can just use az.summary() instead. We definitely need to adjust release notes for that. I even wonder if we should undo this change and cut a new release :-/.

We'll likely cut a 3.11.1 release soon, because of un-silenced warnings from Theano-PyMC (updating to Theano-PyMC 1.1.1).
However, this is just one of the ArviZ-delegated functions that we removed with #4397. Maybe this was a bit too fast, but it is certainly not the only change that was not preceeded by deprecation warnings. So I would actually not revert this change.

Unfortunately, we do not follow a semantic versioning scheme.

@twiecki
Copy link
Member

twiecki commented Jan 22, 2021

@zeroaltitude Yes, all analysis and plotting functions were aliases that we now removed.

@twiecki
Copy link
Member

twiecki commented Jan 22, 2021

At least we need to update the release information.

@zeroaltitude
Copy link
Author

@michaelosthege It's worth considering whether using semver would be valuable -- your version identifiers are certainly in the format that would suggest it. Thanks for all the help and information!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants