-
Notifications
You must be signed in to change notification settings - Fork 129
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
Consider adding lower bounds to nbconvert
#645
Comments
Just to make sure there's no misunderstanding: You are suggesting to add
But I'd like them to be able to use the latest And why should
Yeah, I'd expect that. But I haven't tested it, so it's probably not the case.
Sorry, I mistyped! I meant if it's possible to defined a dependency like this:
I guess not.
No, not at all! I appreciate your suggestions! I'm far from a packaging expert and I'm still learning, but in the last few years I've learned at least one thing: it's complicated. In general I try not to impose too many restrictions on versions, because users can easily add their own restrictions, but they cannot that easily remove my restrictions. Also, I'm not so sure if this will affect anyone from now on, who hasn't been affected already. I think all new installations will work, the problem is only with users who have updated their packages before Having said that, if there is a concrete enough reason to add a lower bound, I'm still open to hearing it. I guess the question is hard to answer: will it help more people than it harms? |
Not necessarily and probably not. I would more specifically suggest to emperically evaluate the lower bounds for all the core dependencies of As tests run in CI will have the core dependencies unconstrainted, then you're naturally already testing the extremes of the new APIs that come up. If those require you to alter the This all, along with not setting uppper bounds, ensures that users will have the best chance of their dependency solver giving them a working environment upon install. If a new version of any of So my guess it that I fully appreciate that emperically finding out what are the minimum lower bounds that work with your API is a slow and uninteresting process (I've done it) and it is totally reasonable to say that it isn't a high enough priority to warrant core dev time right now.
Hm. I'm not sure how this is an obstacle for contributing. Here I was saying that a user has an explicit requirement that they need an older version of a core dependnecy of
If so, that's great and very impressive! 👏
Yeah, it isn't possible to do staged dependency resolution like this. What you're currently doing with disallowing specific versions of a dependency that are known to have a problem that breaks everything is the best thing. Line 19 in 80d9b26
Though all the suggestions that I'm making here I should also be making to
Same. Here are three blogs that I have found to be truly helpful in helping me understand a lot of this better for the packages I maintain.
👍 This is why lower bounds are important and equally why upper bounds should really be avoided.
My response is pretty rambly, but in my mind setting lower bounds can only help. It might make some users realize that they have been installing slightly broken environments this whole time, but it will also help them fix them and guard them from breaking in the future. |
Hm, maybe I'm missing your point here, but this seems to be the exact reason that I would suggest lower bounds. Keeping lower bounds that are regularly tested and updated allows you to update without breaking users, as if they have restrictions on the dependencies of
nbsphinx
the environment solver would then know to roll back to an older version ofnbsphinx
that can support that restriction.nbconvert
has quite a few versions out on PyPIbut the only constraint on it from
nbsphinx
is thatnbsphinx/setup.py
Line 19 in 80d9b26
So does
nbsphinx
atHEAD
of 80d9b26 work with thenbconvert
all the way back tov4.0.0
with the singular exception ofv5.4.0
? If not, it would be important to reflect this in theinstall_requires
so that solvers know where to impose restrictions.No,
conf.py
can't enforce version restrictions as that's the user's responsibility to setup a working environment.If I'm missing the point here I apologize, as I'm not trying to be annoying.
Original motivation for Issue posted by @mgeier in #641 (comment)
The text was updated successfully, but these errors were encountered: