-
Notifications
You must be signed in to change notification settings - Fork 86
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
[Bug]: Content of version 2.8.2 on PyPI changed unexpectedly #2030
Comments
That's already a danger zone.
Do you pin all dependencies of pynwb or only pnwb? I had an issue a while ago where a newer hdmf version was released and when that broke the old pynwb version. And looks like hdmf got also an update on Jan 22 2025 1. |
Hi @benjamin-heasly, thanks for raising this issue. As @t-b mentioned above, I believe the ImportError you reported began to occur due to a new release of hdmf (one of the main pynwb dependencies) on Jan 22, 2025. The pynwb 2.8.2 version contents on PyPi should not have been changed.
It sounds like you were able to resolve this issue by updating to the latest version of pynwb. I wanted to note that the other option is to pin the hdmf version to <4 if you would like to continue to use pynwb 2.8.2 (or earlier pynwb versions):
|
Thank you, this makes sense to me now and I'm glad that the content of 2.8.2 didn't change! Thanks for pointing out the hdmf dependency. I'll restate my understanding, in case this is useful to someone else who finds this issue in a search.
Users can defensively pin hdmf to an earlier version, for example |
@stephprince Not sure I agree with just closing the issue. Wouldn't it make sense to change the dependency on hdmf from |
@t-b since hdmf 4.0 is supported by pynwb>=2.8.3, the hdmf dependency should not be restricted to However to prevent similar issues with future major releases of hdmf, there are a couple potential options:
For now I made an issue to add additional documentation about hdmf/pynwb compatibility (#2034), but we can discuss these options further. |
I vote for some version of 1.
What are the drawbacks of such a proposal? |
This article, "Should You Use Upper Bound Version Constraints", discusses some of the general drawbacks of upper bounds. However it also mentions that two related libraries that are maintained and released together can be an ok exception. I think in this case we could set the upper bound 2-3 major releases in advance, and as long as we deprecate functions and classes in HDMF before removing them entirely, this should be ok for future library installation and use. |
What happened?
I have local code and automated builds for a project that uses pynwb as a dependency. I use a mix of Conda and pip to resolve eg
pynwb==2.8.2
.Builds and local scripts that depend on
pynwb==2.8.2
were working up until 17 January 2025. Starting on 3 February 2025 the same automated builds started failing. There was no change to the build process, but apparently a change to thepynwb==2.8.2
obtained from PyPi.This required an unexpected upgrade to
pynwb==2.8.3
to work around.Steps to Reproduce
Traceback
Operating System
Linux
Python Executable
Conda
Python Version
3.11
Package Versions
Please don't change the content of versioned distributions, after they are made public on PyPI. This can have ripple effects and defeats the purpose of versioning!
Better to create a new version (version numbers are unlimited and cheap!) and to report the reason as a release note and/or Issue.
Code of Conduct
The text was updated successfully, but these errors were encountered: