Details
-
Improvement
-
Status: Accepted
-
Normal
-
Resolution: Unresolved
-
PUP 7.3.0, PUP 6.23.0, PUP 7.8.0
-
None
-
None
-
Night's Watch
-
5
-
Needs Assessment
Description
Puppet Version: 7.3.0
In PUP-9176 we included unmet dependencies in the output of puppet module install. We handled two cases:
- when the new module depends on an already installed module and its version is not satisfiable
e.g. puppetlabs-stdlib 6.6.0 is installed, and the user wants to install puppetlabs-puppet_authorization version 0.4.0, which depends on stdlib "< 5.0.0" - when the dependency graph is broken prior to installing the new module (we only handled this partially)
e.g.1. Install a module with fixed upper dependencies:
> puppet module install --target-dir tmpdir trepasi-debnet -v 1.5.1
This version has puppetlabs-stdlib bound to `>= 3.2.0 < 5.0.0`
2. Forcibly remove the `stdlib` module
> rm -rf tmpdir/stdlib
3. Attempt to install a version of stdlib that breaks the above-stated
dependency
> puppet module install --target-dir tmpdir puppetlabs-stdlib -v "> 5"
Turns out there's another case. Suppose puppet module list returns the following:
Warning: Module 'puppetlabs-stdlib' (v6.6.0) fails to meet some dependencies:
|
'jaxxstorm-teleport' (v0.1.0) requires 'puppetlabs-stdlib' (>=3.2.0 <5.0.0)
|
/home/gabi/.puppetlabs/etc/code/environments/production/modules
|
├── jaxxstorm-teleport (v0.1.0)
|
└── puppetlabs-stdlib (v6.6.0) invalid
|
Trying to install something like puppetlabs-concat version 7.0.1 would fail with the following:
Error: Could not install module 'puppetlabs-concat' (v7.0.1)
|
The requested version cannot satisfy one or more of the following installed modules:
|
puppetlabs-stdlib, installed: 6.6.0, expected: >= 4.13.1 < 8.0.0
|
|
Use `puppet module install 'puppetlabs-concat' --ignore-dependencies` to install only this module
|
Note the wrong error message, since 6.6.0 does satisfy the >= 4.13.1 < 8.0.0 range.
We need to find a way to also handle this case. Maybe we can rely on how puppet module list generates the list of unmet dependencies.
Attachments
Issue Links
- is duplicated by
-
PUP-11553 puppet module dependancy check problem
-
- Closed
-
- relates to
-
PUP-11193 SemanticPuppet does not solve nested dependencies
-
- Accepted
-
-
PUP-11203 puppet module upgrade often reports the wrong module when resolving dependency issues
-
- Accepted
-
-
PUP-11172 undefined method `[]' for nil:NilClass when handling SemanticPuppet::Dependency::UnsatisfiableGraph
-
- Resolved
-
-
PUP-9176 puppet module install should list unsatisfiable dependencies if installation fails
-
- Resolved
-