Skip to content

Add CI Test Run using Latest JDK - #31003

Merged
alzimmermsft merged 58 commits into
Azure:mainfrom
alzimmermsft:AzEng_AddLatestJavaVersionToTestMatrix
Oct 31, 2022
Merged

Add CI Test Run using Latest JDK#31003
alzimmermsft merged 58 commits into
Azure:mainfrom
alzimmermsft:AzEng_AddLatestJavaVersionToTestMatrix

Conversation

@alzimmermsft

@alzimmermsft alzimmermsft commented Sep 16, 2022

Copy link
Copy Markdown
Member

Description

Fixes #30865

Adds an additional CI test run using the latest released JDK version.

All SDK Contribution checklist:

  • The pull request does not introduce [breaking changes]
  • CHANGELOG is updated for new features, bug fixes or other significant changes.
  • I have read the contribution guidelines.

General Guidelines and Best Practices

  • Title of the pull request is clear and informative.
  • There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

  • Pull request includes test coverage for the included changes.

@alzimmermsft alzimmermsft added the EngSys This issue is impacting the engineering system. label Sep 16, 2022
@alzimmermsft alzimmermsft self-assigned this Sep 16, 2022
@check-enforcer

Copy link
Copy Markdown

This pull request is protected by Check Enforcer.

What is Check Enforcer?

Check Enforcer helps ensure all pull requests are covered by at least one check-run (typically an Azure Pipeline). When all check-runs associated with this pull request pass then Check Enforcer itself will pass.

Why am I getting this message?

You are getting this message because Check Enforcer did not detect any check-runs being associated with this pull request within five minutes. This may indicate that your pull request is not covered by any pipelines and so Check Enforcer is correctly blocking the pull request being merged.

What should I do now?

If the check-enforcer check-run is not passing and all other check-runs associated with this PR are passing (excluding license-cla) then you could try telling Check Enforcer to evaluate your pull request again. You can do this by adding a comment to this pull request as follows:
/check-enforcer evaluate
Typically evaulation only takes a few seconds. If you know that your pull request is not covered by a pipeline and this is expected you can override Check Enforcer using the following command:
/check-enforcer override
Note that using the override command triggers alerts so that follow-up investigations can occur (PRs still need to be approved as normal).

What if I am onboarding a new service?

Often, new services do not have validation pipelines associated with them, in order to bootstrap pipelines for a new service, you can issue the following command as a pull request comment:
/azp run prepare-pipelines
This will run a pipeline that analyzes the source tree and creates the pipelines necessary to build and validate your pull request. Once the pipeline has been created you can trigger the pipeline using the following comment:
/azp run java - [service] - ci

@alzimmermsft

Copy link
Copy Markdown
Member Author

/azp run java - search

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines failed to run 1 pipeline(s).

@alzimmermsft

Copy link
Copy Markdown
Member Author

/azp run java - search

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines failed to run 1 pipeline(s).

@alzimmermsft

Copy link
Copy Markdown
Member Author

/azp run java - search

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines failed to run 1 pipeline(s).

@alzimmermsft

Copy link
Copy Markdown
Member Author

/azp run java - search

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@alzimmermsft

Copy link
Copy Markdown
Member Author

/azp run java - search

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@alzimmermsft

Copy link
Copy Markdown
Member Author

/azp run java - search

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@alzimmermsft

Copy link
Copy Markdown
Member Author

/azp run java - search

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

"TestFromSource": false,
"TestGoals": "surefire:test",
"TestOptions": ""
},

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'll have to look, but I wonder if there are some opportunities to consolidate the matrix again.

Comment thread eng/pipelines/templates/steps/install-latest-jdk.yml Outdated
@alzimmermsft
alzimmermsft requested a review from benbp October 17, 2022 19:04
Comment thread eng/pipelines/templates/stages/archetype-sdk-client.yml
Comment thread eng/pipelines/templates/stages/platform-matrix.json
* This constructor shouldn't be called as it will produce a {@link CloudEventDataFormat} which doesn't
* have a String enum value.
*/
public CloudEventDataFormat() {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We should not have public constructors for expandable enums but making this ctor private now is a breaking change. Should we consider throwing an exception in the ctor at least to prevent the enum from being invalid? We don't validate that an enum has a value anywhere, so, using this ctor can lead to issues down the road.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Both making this private and throwing in the public constructor would be breaking changes requiring code updates. Given that I'd rather make the better long-term fix in making the constructor private.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Yeah, both are breaking - one is compile-time and the other is a runtime breaking change. Making the ctor private will mean revapi flagging it, requiring a major version update and API view approval.

Ideally, we should have private ctors (which should be our guidance from now on for all new expandable enums) but not sure if we can change all existing expandable enums to have private ctors because of the problems listed above.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

As discussed offline, we'll not change the behavior of the default constructor but instead add @Deprecated annotation to these ctors.

Comment thread sdk/parents/azure-client-sdk-parent/pom.xml
* This constructor shouldn't be called as it will produce a {@link CloudEventDataFormat} which doesn't
* have a String enum value.
*/
public CloudEventDataFormat() {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

As discussed offline, we'll not change the behavior of the default constructor but instead add @Deprecated annotation to these ctors.

@alzimmermsft
alzimmermsft merged commit 1fd4c2f into Azure:main Oct 31, 2022
@alzimmermsft
alzimmermsft deleted the AzEng_AddLatestJavaVersionToTestMatrix branch October 31, 2022 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

EngSys This issue is impacting the engineering system.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a Run of the Latest JDK Version into the Test Matrix

4 participants