maven-scm icon indicating copy to clipboard operation
maven-scm copied to clipboard

Backwards incompatibility in SvnCommandLineUtils introduced with 2.2.1

Open kwin opened this issue 3 months ago • 8 comments

Affected version

2.2.1

Bug description

The commit SvnCommandLineUtils broke backwards compatibility as it removed the old method only taking two arguments. For example https://github.com/apache/maven-changelog-plugin is affected.

kwin avatar Sep 29 '25 13:09 kwin

Probably time to introduce japicmp-maven-plugin to prevent his kind of issues in an automatic fashion.

kwin avatar Sep 29 '25 13:09 kwin

@michael-o Any opinion on what should be considered API and what should probably be considered internal SCM use only?

kwin avatar Sep 29 '25 13:09 kwin

@michael-o Any opinion on what should be considered API and what should probably be considered internal SCM use only?

Will check next month

michael-o avatar Sep 29 '25 13:09 michael-o

I do not even know whether SvnCommandLineUtils are considered public API at all. Which method has been removed?

michael-o avatar Sep 30 '25 08:09 michael-o

getBaseSvnCommandLine(…) now takes three arguments instead of two as before.

kwin avatar Sep 30 '25 10:09 kwin

This class really looks like an implementation detail because only the Maven SCM API is public. IMHO we are good to break it.

WDYT?

michael-o avatar Sep 30 '25 11:09 michael-o

Can we use some annotations to mark certain APIs internal only? If so, which ones? I don't see anything suitable in https://github.com/apache/maven/tree/master/api/maven-api-annotations/src/main/java/org/apache/maven/api/annotations.

kwin avatar Sep 30 '25 11:09 kwin

We don't have them. Javadoc for the moment

michael-o avatar Sep 30 '25 12:09 michael-o