Rename inheritStrictVersions() -> endorseStrictVersions() (#10755) This name change more clearly communicates the semantics of the feature from a users point of view.
This commit also removes all mentions of 'inheriting' AND 'forSubgraph'. There have been some leftovers in documentation/comments that would have been misleading in the future. To make sure we catch all, this also updates all variable/method/package names.
Rework `forSubgraph` as implied by `strictly` This commit removes a dedicated `forSubgraph` flag on version constraints, so that it is _implied_ by strict version constraints. This simplifies the behavior of `strictly`, making it closer to the intuitive semantics, while maintaining the ability to fail the build if a consumer brings an incompatible version in the graph.
As a consequence, _strict dependencies_ now express that the producer preference overrides whatever is found in its own dependency graph. It is closer to the "nearest first" semantics of Maven, while not having its drawbacks (ordering in particular).