Skip to content

ci: add showcase-clirr check#1805

Merged
burkedavison merged 3 commits intomainfrom
showcase-clirr
Jun 23, 2023
Merged

ci: add showcase-clirr check#1805
burkedavison merged 3 commits intomainfrom
showcase-clirr

Conversation

@burkedavison
Copy link
Member

This check compares the Showcase client against the target branch for binary incompatible changes.

Previous binary incompatibilities have been caught with the java-iam client, but:

  • Showcase covers proto, grpc, and gapic artifacts. The java-iam client covers only proto and grpc.
  • Showcase is intended to provide broad feature coverage, thus it will be a more robust binary compatibility check.
  • Since this check compares against the target branch, it works with LTS branches.

See #1804 for an example of this check catching a binary incompatible change.

@burkedavison burkedavison requested a review from a team June 23, 2023 14:50
@product-auto-label product-auto-label bot added the size: s Pull request size is small. label Jun 23, 2023
run: mvn versions:set -B -ntp -DnewVersion=0.0.2-SNAPSHOT
- name: Clirr Check
working-directory: showcase
run: mvn -B -ntp clirr:check -Dclirr.skip=false -DcomparisonVersion=0.0.1-SNAPSHOT
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we eliminate the assumption about the exact version numbers using something like
mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. Verified in #1804 that new logic continues to catch the binary incompatibility.

run: |
SHOWCASE_CLIENT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
mvn versions:set -B -ntp -DnewVersion=local
mvn clirr:check -B -ntp -Dclirr.skip=false -DcomparisonVersion=$SHOWCASE_CLIENT_VERSION
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I though that comparisonVersion is the previous "released" version that we should be comparing against, but here it's the PR version. So, I'm a bit confused.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess it works as long as the project version in the PR is the same as the one in the target branch, which should almost always be the case.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah. Yes. You're right. I'll make sure it is always true... sec...

@sonarqubecloud
Copy link

[gapic-generator-java-root] Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@sonarqubecloud
Copy link

[java_showcase_integration_tests] Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@sonarqubecloud
Copy link

[java_showcase_unit_tests] Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@burkedavison burkedavison merged commit 355b713 into main Jun 23, 2023
@burkedavison burkedavison deleted the showcase-clirr branch June 23, 2023 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size: s Pull request size is small.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants