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

build: Remove java classpath conventions #5724

Merged

Conversation

devinrsmith
Copy link
Member

@devinrsmith devinrsmith commented Jul 5, 2024

This removes our custom configuration hierarchy, historically inherited from the "fishlib" days.

Follow-up to #5683

Note: unlike #5683, this migration does not aim to preserve the exact configuration dependencies that were inherited in the java-classpath-conventions hierarchy. The configuration conventions were overly broad, and didn't represent the real dependencies that each project has. As part of this, our dependency on org.jetbrains:annotations changed from an implementation dependency (inherited through the fishBase configuration) to a compileOnly dependency to better reflect how we actually depend on it. We might expect that the jetbrains annotations would be removed from our application runtime classpath entirely, but that is not the case - it turns out that one of our transitive dependencies has a runtime dependency on it:

org.jetbrains:annotations:13.0                                                                                                                                                                                       
\--- org.jetbrains.kotlin:kotlin-stdlib:1.9.10                                                                                                                                                                       
     +--- io.confluent:kafka-protobuf-provider:7.6.0                                                                                                                                                                 
     |    \--- io.confluent:kafka-protobuf-serializer:7.6.0                                                                                                                                                          
     |         \--- project :extensions-kafka                                                                                                                                                                        
     |              \--- project :server                                                                                                                                                                             
     |                   \--- project :server-jetty                                                                                                                                                                  
     |                        \--- runtimeClasspath

In this case, it has the visible effect of "downgrading" our runtime classpath from what was previously org.jetbrains:annotations:24.0.0 to org.jetbrains:annotations:13.0. Arguably, this is the more correct runtime dependency to provide given it matches what the exact version the transitive library requests.

@devinrsmith devinrsmith added this to the 0.36.0 milestone Jul 5, 2024
@devinrsmith devinrsmith self-assigned this Jul 5, 2024
@devinrsmith devinrsmith marked this pull request as ready for review July 8, 2024 19:04
@devinrsmith devinrsmith requested a review from rcaudy July 8, 2024 19:04
@devinrsmith devinrsmith merged commit 619ba4e into deephaven:main Jul 8, 2024
24 checks passed
@devinrsmith devinrsmith deleted the remove-java-classpath-conventions branch July 8, 2024 19:31
@github-actions github-actions bot locked and limited conversation to collaborators Jul 8, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants