Replies: 3 comments 6 replies
-
|
Odd, specifying So it seems to be impossible to have different versioning strategies for dependency types. 🤔 Why should this not be allowed? 🤷 |
Beta Was this translation helpful? Give feedback.
-
|
I agree to update all, and not only direct dependencies. However that will mean having more Dependabot PRs. Not really a big problem, but it would be nice to automerge if green somehow. I'd like to keep the current strategy. It seems correct to me to update just the lock file if possible, but to update the manifest if needed. That's happening in #1243 for example. Lower bounds in dev dependencies are not really used, but also not harmful. We could leave them as they are, or just use |
Beta Was this translation helpful? Give feedback.
-
|
@yajo Are you aware that Renovate Bot supports updating Nix dependencies? Dependabot doesn't. Just thinking whether checking out Renovate Bot might be worth some time, also regarding the original topic, but also because of Nix support. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I've stumbled over Dependabot's current behavior in this project and wonder whether it should be revised.
As far as I can tell (it's difficult to verify), Dependabot's behavior given our quite minimal configuration
copier/.github/dependabot.yml
Lines 8 to 11 in a5da81c
(with regard to the relevant settings) is this:
allowdefaults todirect. This means, all (runtime and dev) dependencies listed inpyproject.tomlare checked for new versions, but indirect/transitive dependencies are ignored.versioning-strategydefaults tolockfile-only. This means, onlypoetry.lockis updated andpyproject.tomlis never updated.The combination of those two settings means, all (runtime and dev) dependencies listed in
pyproject.tomlare checked and their versions are updated only inpoetry.lockwhen new versions are available. It also means, none of the indirect/transitive dependencies are updated (unless Dependabot detects security vulnerabilities), so while the direct dependencies remain up-to-date, (typically) the majority of dependencies in the dependency tree remains outdated. I fail to see the rationale for such behavior.Also, I wonder about the motivation for using a version specifier other than
==(or equivalently, none), i.e. exact pinning, for all dev dependencies because dev dependencies are always installed from the lock file, i.e. pinned versions, so specifying lower bounds has little meaning except it increases the search space of the dependency resolver when the minimum version isn't the most recent version. And for code quality tools like formatters or linters, which may introduce, e.g., new rules even in non-major releases resulting in different formatting/linting output, pinning in combination with explicit version updates (assisted by Dependabot), which require/incur changes in the code to satisfy, e.g., new rules, seems much more sensible to me than using lower bounds and having thepoetry.lockversions diverge from the minimum versions inpyproject.toml.To summarize, I wonder whether the following changes would be sensible:
Use pinned versions for dev dependencies in
pyproject.toml.Update
.github/dependabot.ymlpoetry.lock, andpyproject.tomlwhich might look like this (untested):
- package-ecosystem: "pip" directory: "/" schedule: interval: "daily" + allow: + - dependency-type: all + versioning-strategy: lockfile-only + +- package-ecosystem: "pip" + directory: "/" + schedule: + interval: "daily" + allow: + - dependency-type: development + versioning-strategy: increaseHere, I assume that
versioning-strategy: increaseincreases also pinned versions and also to new major versions. If pinning inpyproject.tomlblocksversioning-strategy: increasefrom doing anything, then we could resort to using lower bounds.Beta Was this translation helpful? Give feedback.
All reactions