-
Notifications
You must be signed in to change notification settings - Fork 30
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
Do not freeze requirements #120
Conversation
freezing requirements is for images, applications. Not for libraries
ffd83f2
to
122c163
Compare
An approach I've taken in some of my projects is to have general requirements in |
That's a bummer :( I so liked the idea of having new releases alerts and PRs from dependabot.
@manics, this sounds like a great idea for discovering possible incompatibilities with newer pkg version, before somebody bumps into it and opens a bug report issue. But, to be honest, traefik-proxy doesn't have so many direct dependencies, and the ones that could cause big issues are not updated very often (the python clients for etcd and consul). But this also means that if one of their dependencies is updated and becomes incompatible, we should pin versions until the python client releases a new version (this is what happened with @minrk, do you think we should use this for traefik-proxy or it might be an overkill for this project? |
I'll go ahead and merge this now. Thanks again @minrk. |
Ohhh yeah that does make sense =/ Thank you @minrk!! I'm sorry for sidetracking you @GeorgianaElena but I'm glad you ended up appreciating the general strategy! |
For the reproducible test env strategy, I personally like to not pin dependencies, and in fact install the latest pre-releases of dependencies with You can combine these approaches, by having the 'always-latest' tests run in one matrix entry and dependabot-frozen reproducible envs run in a different matrix entry. I'm not sure if that's worth it here or not. Additionaly, the number of prereleases we are likely to depend on here is pretty low, so the dependabot approach is almost identical. I checked, and couldn't see an obvious way to make dependabot include |
reverts #116, #117
Freezing requirements is for images or applications, not for libraries.
Sorry for not catching this in review! It is not generally appropriate to use dependabot and frozen requirements with packages. This creates unsolvable dependencies, as each package would have strict dependencies, but they would be different for each package depending on when they ran
In general, for libraries you want to only apply pinnings when:
Javascript-style semver-pinning doesn't make sense in Python libraries, where they rapidly create impossible-to-install environments and force a massive increase in maintenance and releases.