Description
Use of dependency_configuration
is evidently supported, but lacks documentation in the Digger user documentation.
I'm not sure if #782 is supposed to address this.
Furthermore dependency_configuration
could potetially have the wrong default behaviour, based on the definition of the two available modes (hard
and soft
).
digger/libs/digger_config/converters.go
Lines 12 to 17 in d9ac240
My experience is that without specifying anything for dependency_configuration.mode, the following happens
We have 2 projects, A and B
B is dependent on A (using 'depends_on')We want to make a change that only affects B
- If we commit a change that only affects B, nothing happens.
- If we then add a commit with change affecting A, then a plan run starts for A and B.
The way I observe this, in regards to adjusting dependency_configuration
and how it currently functions
- The
hard
(default) mode requires all projects in a dependency chain to become affected by change. - The
soft
mode will e.g. allow a change only to B. This is what we want.
However, the definition from the source code tell us the opposite.
// soft - if dependency project wasn't changed, it will be skipped
So seemingly the actual observed default behaviour is that of "soft", by definition.
Is the issue perhaps on this line in the orchestrator code?
digger/libs/orchestrator/github/github.go
Line 476 in d9ac240
Perhaps change the condition to
diggerConfig.DependencyConfiguration.Mode == digger_config.DependencyConfigurationSoft
?
I have discussed this with and demonstrated it on video call to @motatoes. In those discussions I've described a transitive dependency C -> B -> A, but that doesn't seem to matter at all. With the default behaviour, for C to plan, I have to make a change affecting A aswell.