Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JDiff report does not contain HTML report anymore #22942

Closed
snicoll opened this issue May 10, 2019 · 3 comments
Closed

JDiff report does not contain HTML report anymore #22942

snicoll opened this issue May 10, 2019 · 3 comments
Assignees
Labels
type: task A general task
Milestone

Comments

@snicoll
Copy link
Member

snicoll commented May 10, 2019

Our release process includes a command to run to be able to generate the binary diff between two releases.

First step is to get a repo with the previous release, e.g.

cd /tmp
mkdir spr-5.2.0.M1
cd spr-5.2.0.M1
git clone https://github.com/spring-projects/spring-framework/
cd spring-framework
git fetch origin --tags
git checkout v5.2.0.M1

Then, from the repo at the target (about to release version) we can run the following:

./gradlew jdiff -D OLD_VERSION=5.2.0.M1 -D OLD_VERSION_ROOT=/tmp/spr-5.2.0.M1

This generates a report with the diff (here's an example for 5.1). Running that command on master does not generate the changes.html file anymore.

@snicoll snicoll added the type: task A general task label May 10, 2019
@snicoll snicoll added this to the 5.2 M3 milestone May 10, 2019
@jhoeller jhoeller modified the milestones: 5.2 M3, 5.2 RC1 Jun 11, 2019
@fodil-a
Copy link
Contributor

fodil-a commented Jun 16, 2019

After investigation, it seems to be from the signatures:

  • org.springframework.transaction.reactive.TransactionalOperator#transactional(Flux),
  • org.springframework.transaction.reactive.TransactionalOperator#transactional(Mono).

JDiff doesn't figure out the difference because of the generic types of Flux and Mono arguments, and gives them the type <any> which ends up with a duplicate error and Jdiff does not create the report...

Logs:

[ant:Comparing versions] JDiff: reading the new API in from file '[...]/spring-framework/build/reports/jdiff/5.2.0.M1_to_5.2.0.BUILD-SNAPSHOT/Spring_Framework_5.2.0.BUILD-SNAPSHOT.xml'...Error: duplicate comment id: org.springframework.transaction.reactive.TransactionalOperator.transactional_changed(<any>)

> Task :jdiff
 Report location: [...]/spring-framework/build/reports/jdiff/5.2.0.M1_to_5.2.0.BUILD-SNAPSHOT/changes.html

As a workaround, you can (before generation) remove the generic types for Mono and Flux in both org.springframework.transaction.reactive.TransactionalOperator#transactional(Flux) and, org.springframework.transaction.reactive.TransactionalOperator#transactional(Mono). Then rollback the change after the generation.

@snicoll
Copy link
Member Author

snicoll commented Jul 9, 2019

Thanks for the investigation @fodil-a - JDiff is not maintained anymore so we're looking for an alternative now.

@bclozel
Copy link
Member

bclozel commented Jul 15, 2019

I'm working on refactoring our Gradle build in #23282; in the process, I'm testing Japicmp.
The output format is not the same but at least it seems maintained and we wouldn't have to store binaries in our repo anymore...
I'll sync up with @snicoll to check whether the new output format works out for our needs.

@bclozel bclozel self-assigned this Jul 17, 2019
@snicoll snicoll modified the milestones: 5.2 RC1, 5.2 RC2 Jul 31, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: task A general task
Projects
None yet
Development

No branches or pull requests

4 participants