nebula-plugins / nebula-plugins/gradle-dependency-lock-plugin

Add the option to ignore version locks on the transitive dependencies of an overridden dependency.

Open
#83 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Groovy
Stars
303
Forks
46
PR merge metrics
No merged PRs in 30d

Description

Here's the scenario:

A project has a direct dependency and a transitive dependency. They are both locked to a specific version in the project's lock file. I run gradle with dependencyLock.override=directDependency:[new version].

What currently happens:

The direct dependency version is overridden but the transitive dependency version stays locked, regardless of what version the new direct dependency requests.

What I want an option for:

The direct dependency version is overridden and the lock on the transitive dependency is ignored, so the transitive version will be resolved properly in relation to the new direct dependency.

My proposal is that we add an alternative to the 'override' option like 'overrideAndIgnoreTransitiveLocks'. Another option would be that when the existing 'override' parameter is used with includeTransitives=true , then we ignore the transitive locks. But that seems like overloading includeTransitives.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how dependencyLock.override and includeTransitives are parsed and applied during dependency resolution. Compare the proposed separate option with the includeTransitives alternative, then inspect existing tests for override behavior. Done means the selected option allows transitive locks to be ignored while resolving versions required by the overridden direct dependency.

Written by the indexing model from the issue text.

Assessment

Tech stack
groovy
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.