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

Use '>=' for versions #45

Merged
merged 1 commit into from
Feb 27, 2016
Merged

Use '>=' for versions #45

merged 1 commit into from
Feb 27, 2016

Conversation

max-sixty
Copy link
Contributor

So package upgrades don't cause breaks

So package upgrades don't cause breaks
@max-sixty
Copy link
Contributor Author

Resolves #44

@msiemens
Copy link
Owner

This is complicated. Except for docopt, which uses semantic versioning, no package makes any claims about compatibility between releases (as far as I can see at least).

For docopt we definitely can adopt this version comparison, for the other ones I don't know what the best option is -- having the recent version at risk of running into incompatibilities, or always having to release a new version when the dependencies are updated but on the other hand not risking breakage.

@max-sixty
Copy link
Contributor Author

Yes those points make sense.

But I think the biggest issue here is that the current model forbids people from upgrading their packages, which is not OK - particularly for something like six, which lots of other libraries depend on.

Other libraries that I work with (pandas, xarray), all do the >= model, and then fix breakages if they occur.

Separately, I'm not sure why the code breaks at runtime, but that's more of a curiosity than anything else

@msiemens
Copy link
Owner

But I think the biggest issue here is that the current model forbids people from upgrading their packages, which is not OK - particularly for something like six, which lots of other libraries depend on.

Point taken. The deeper issue is a lack of isolation of dependencies with Python applications. When working on Python projects, you usually use virtualenv to install dependencies locally without affecting other projects. Sadly, there is no such habbit with distributed Python applications. (Actually, there is an attempt called pipsi, but it's definitely not common practice). But in the end that's a cultural problem and propably we won't be able to change that.

Long story short: I'm merging this.

msiemens added a commit that referenced this pull request Feb 27, 2016
@msiemens msiemens merged commit 74d8178 into msiemens:master Feb 27, 2016
@msiemens
Copy link
Owner

Just for curiosity: This issue really highlights what Rust is doing in that regard: exported symbols (mainly functions AFAIK) always include a hash that is calculated based on the version number. So applications not only depend on a specific library, but a specific version as well, eliminating conflicts like encountered here.

@max-sixty max-sixty deleted the requirements-version branch February 27, 2016 22:13
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 this pull request may close these issues.

3 participants