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

Generate dependency list for Develocity consumption #41482

Merged
merged 2 commits into from
Jun 27, 2024

Conversation

gsmet
Copy link
Member

@gsmet gsmet commented Jun 26, 2024

We used to build the hashes ourselves but it's best to use the Develocity infrastructure for that.

Fixes #39256

@gsmet gsmet requested a review from aloubyansky June 26, 2024 16:01
@quarkus-bot quarkus-bot bot added area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/maven labels Jun 26, 2024
@gsmet
Copy link
Member Author

gsmet commented Jun 26, 2024

/cc @jprinet for review

@quarkus-bot

This comment has been minimized.

@aloubyansky
Copy link
Member

I thought you would add an option to record just the paths. I don't mind though. There is a mention in the doc that still needs an adjustment https://quarkus.io/guides/config-reference#dump-quarkus-application-dependencies

Copy link
Contributor

@jprinet jprinet left a comment

Choose a reason for hiding this comment

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

LGTM

@jprinet
Copy link
Contributor

jprinet commented Jun 27, 2024

This change definitely helps troubleshoot a cache miss due to volatility of the Quarkus runtime dependencies, we now understand which dependencies are changing between builds.

See the screenshot (with a contrived test):
Screenshot 2024-06-27 at 10 22 36 AM

@gsmet
Copy link
Member Author

gsmet commented Jun 27, 2024

Hmmm. Why are we using a SNAPSHOT of Spotless?

We used to build the hashes ourselves but it's best to use the
Develocity infrastructure for that.

Fixes quarkusio#39256
@gsmet
Copy link
Member Author

gsmet commented Jun 27, 2024

@aloubyansky if we end up needing that back, I'll restore it and add an option but I think going the Develocity way is better.

I updated the doc.

@jprinet
Copy link
Contributor

jprinet commented Jun 27, 2024

Hmmm. Why are we using a SNAPSHOT of Spotless?

As mentioned in my initial comment @gsmet , this is an unreal scenario where I programmatically add a random dependency between two Quarkus builds.
I was working on Spotless recently and collected the absolute path from my command history 😅

@gsmet
Copy link
Member Author

gsmet commented Jun 27, 2024

Ah OK. But the arc-processor one is real?

@gsmet
Copy link
Member Author

gsmet commented Jun 27, 2024

Or you also made some changes to Quarkus?

@gsmet gsmet added the triage/waiting-for-ci Ready to merge when CI successfully finishes label Jun 27, 2024
@jprinet
Copy link
Contributor

jprinet commented Jun 27, 2024

Including a real change in my automated tests is not easily feasible.
I hooked some add/remove random libs behavior in the extension to verify the fingerprinting mechanism

Copy link

github-actions bot commented Jun 27, 2024

🙈 The PR is closed and the preview is expired.

@gsmet
Copy link
Member Author

gsmet commented Jun 27, 2024

We need to wait for the update of the Quarkus Develocity extension to 1.1.2 before merging this PR.

Copy link
Member

@aloubyansky aloubyansky left a comment

Choose a reason for hiding this comment

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

Thanks @gsmet

@gsmet
Copy link
Member Author

gsmet commented Jun 27, 2024

I pushed an additional commit to update the extension.

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 27, 2024

Status for workflow Quarkus Documentation CI

This is the status report for running Quarkus Documentation CI on commit bd97e66.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

⚠️ There are other workflow runs running, you probably need to wait for their status before merging.

@quarkus-bot
Copy link

quarkus-bot bot commented Jun 27, 2024

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit bd97e66.

Failing Jobs

Status Name Step Failures Logs Raw logs Build scan
MicroProfile TCKs Tests Verify Failures Logs Raw logs 🔍

Full information is available in the Build summary check run.
You can consult the Develocity build scans.

Failures

⚙️ MicroProfile TCKs Tests #

- Failing: tcks/microprofile-opentelemetry 

📦 tcks/microprofile-opentelemetry

org.eclipse.microprofile.telemetry.tracing.tck.async.JaxRsClientAsyncTest.testIntegrationWithJaxRsClient - History - More details - Source on GitHub

java.util.concurrent.RejectedExecutionException: event executor terminated
	at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:931)
	at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:350)
	at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:343)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:833)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:824)
	at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:814)
	at io.vertx.core.impl.EventLoopExecutor.execute(EventLoopExecutor.java:35)

Flaky tests - Develocity

⚙️ JVM Tests - JDK 17

📦 extensions/smallrye-reactive-messaging-kafka/deployment

io.quarkus.smallrye.reactivemessaging.kafka.deployment.dev.KafkaDevServicesDevModeTestCase.sseStream - History

  • Assertion condition defined as a Lambda expression in io.quarkus.smallrye.reactivemessaging.kafka.deployment.dev.KafkaDevServicesDevModeTestCase Expecting size of: [] to be greater than or equal to 2 but was 0 within 10 seconds. - org.awaitility.core.ConditionTimeoutException
org.awaitility.core.ConditionTimeoutException: 
Assertion condition defined as a Lambda expression in io.quarkus.smallrye.reactivemessaging.kafka.deployment.dev.KafkaDevServicesDevModeTestCase 
Expecting size of:
  []
to be greater than or equal to 2 but was 0 within 10 seconds.
	at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
	at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
	at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)

⚙️ JVM Tests - JDK 21

📦 integration-tests/reactive-messaging-kafka

io.quarkus.it.kafka.KafkaConnectorTest.testFruits - History

  • Assertion condition defined as a Lambda expression in io.quarkus.it.kafka.KafkaConnectorTest expected: <6> but was: <5> within 10 seconds. - org.awaitility.core.ConditionTimeoutException
org.awaitility.core.ConditionTimeoutException: Assertion condition defined as a Lambda expression in io.quarkus.it.kafka.KafkaConnectorTest expected: <6> but was: <5> within 10 seconds.
	at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
	at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
	at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
	at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1006)
	at org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:790)
	at io.quarkus.it.kafka.KafkaConnectorTest.testFruits(KafkaConnectorTest.java:63)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)

@gsmet gsmet merged commit 6621c6a into quarkusio:main Jun 27, 2024
55 of 56 checks passed
@quarkus-bot quarkus-bot bot removed the triage/waiting-for-ci Ready to merge when CI successfully finishes label Jun 27, 2024
@quarkus-bot quarkus-bot bot added this to the 3.13 - main milestone Jun 27, 2024
@quarkus-bot quarkus-bot bot added the kind/enhancement New feature or request label Jun 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/documentation area/maven kind/enhancement New feature or request triage/flaky-test
Projects
Development

Successfully merging this pull request may close these issues.

Improve track-config-changes performance by delegating dependencies fingerprinting to the Develocity extension
4 participants