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.
-
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:
allow
defaults todirect
. This means, all (runtime and dev) dependencies listed inpyproject.toml
are checked for new versions, but indirect/transitive dependencies are ignored.versioning-strategy
defaults tolockfile-only
. This means, onlypoetry.lock
is updated andpyproject.toml
is never updated.The combination of those two settings means, all (runtime and dev) dependencies listed in
pyproject.toml
are checked and their versions are updated only inpoetry.lock
when 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.lock
versions 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.yml
poetry.lock
, andpyproject.toml
which might look like this (untested):
Here, I assume that
versioning-strategy: increase
increases also pinned versions and also to new major versions. If pinning inpyproject.toml
blocksversioning-strategy: increase
from doing anything, then we could resort to using lower bounds.Beta Was this translation helpful? Give feedback.
All reactions