[
https://issues.apache.org/jira/browse/MENFORCER-360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17198284#comment-17198284
]
Guy Veraghtert commented on MENFORCER-360:
------------------------------------------
[~rfscholte] Thank you for your response. You are mainly talking about (public)
libraries. We are working on a large international internal project with
different teams. Of course breaking an API should be avoided. However in
practice, from time to time, it's not feasible to maintain backwards
compatibility (or it would be too costly). Therefor all teams follow the rules
of semantic versioning ([https://semver.org/|https://semver.org/).]) strictly,
we use the proposed option to check for equal major versions in the build of
the overarching application (where all different components of the teams come
together) to have a final check that all components depend on compatible
versions. (Note that also a class binary compatible change, can be breaking
(different functional behavior)).
Note that spring-framework until now was not following the rules of semantic
versioning, they are rather bad at modularity and API management (but rather
good at backwards compatibility). Checking spring compatibility is not the
target of this change, we place it in the exclude tag.
We use this check for almost a year now, and it works very well for us. As I
also heard of other projects doing something similar and the change is very
small, I thought it would be a nice addition to this rule.
> requireUpperBoundDeps should have option to check for same major version
> ------------------------------------------------------------------------
>
> Key: MENFORCER-360
> URL: https://issues.apache.org/jira/browse/MENFORCER-360
> Project: Maven Enforcer Plugin
> Issue Type: Improvement
> Components: Standard Rules
> Affects Versions: 3.0.0-M3
> Reporter: Guy Veraghtert
> Priority: Trivial
>
> In our project we use semantic versioning for our dependencies
> ([https://semver.org/|https://semver.org/).])
> The requireUpperBoundDeps rule already checks for compatible versions, but we
> would like to have the option to specify that no major (i.e. breaking)
> versions are mixed.
> So a (transitive) dependency on groupId:artifactId:1.0.0 and on
> groupId:artifactId:2.0.0 means that we have a conflict.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)