-
Notifications
You must be signed in to change notification settings - Fork 662
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
SOLR-17406: Introduce Version Catalogs #2646
Conversation
The implementation of the eclipse plugin throws "Value is null" error when trying to sync project without the palantir consistent versions plugin. Either fix the error or remove the configuration.
…e-version-catalog # Conflicts: # solr/solr-ref-guide/build.gradle # versions.lock # versions.props
Move buildSrc into a composite included build (build-infra). Expose a plugin with buildinfra extension. See apache/lucene@4afae6a
…e-version-catalog Apply new versions from versions.prop to version catalog. # Conflicts: # versions.lock # versions.props
# Conflicts: # solr/prometheus-exporter/build.gradle # versions.lock # versions.props
c2886d2
to
0a721f1
Compare
If this change is intended for Solr 10, it should be tested and developed using Java 21 to ensure there are no hidden surprises. I have one PR that makes Solr compatible with Java 21, but we later decided to break it into parts to reduce the burden for the final PR. I will prepare it by cherry-picking all the latest changes I made So that we can test this change. |
@iamsanjay That would be great. We probably have to add the foojay-resolver-plugin too at some point. |
This commit updates apache log4j version to 2.23.1 and applies a fix for LOG4J2-3609 on the test-framework module.
forbiddenapis supports commons-io up to 2.15.1, so exclude for now some of the signature logic. Apache Rat has breaking changes between 0.15 and 0.16.1.
Updates all the license files, notice files and checksums of the updated dependencies. This commit merges a couple license and notice files of modules that belong to the same project and use the same license and notice file.
# Conflicts: # solr/licenses/grpc-core-1.66.0.jar.sha1 # versions.lock # versions.props
I think it was a mistake adding f402a0b onwards in the same PR, even thought there were only minor or patch version updates. It turned way larger than expected. Even though, over 11K out of 13K lines of code are from the Maybe splitting this PR before finalizing is better. |
I would keep any upgrades from infrastructure changes separate. You can then diff/ compare the final artifacts and see what's changed before doing any updates. |
Yeah I agree. I already started the process of splitting the PR into two, one for infra and one for the dependency updates. I am facing a few version differences with non-conflicting dependencies that belong to the same group (e.g. grpc dependencies). I may have to introduce new BOMs if available to properly sync the versions across all artifacts of the same group. |
This PR is closed in favor to #2706, which does not include all the dependency updates made here. They will be resolved in separate PRs. |
https://issues.apache.org/jira/browse/SOLR-17406
Description
With Gradle it is possible to manage versions and dependencies in gradle files via version catalogs. This allows us to cleanup dependency resolution and move various versions from across the project to a single file.
Solution
This PR introduces version catalogs and removes the palantir consistent versions plugin, since it is no longer needed. Additionally, the build module(s) are restructured and further changes from apache/lucene#13484 were applied to reflect the same behavior.
Tests
Minor adjustments have been made to some test files that fix some references (due to restructuring of build files), and besides that spotless and tidy are added to run on build files too.
Open TODOs
forbidden-apis.gradle
(depends on Support commons-io 2.16 policeman-tools/forbidden-apis#249)Checklist
Please review the following and check all that apply:
main
branch../gradlew check
.Dependecy Updates and Related PRs
This PR updates multiple dependencies (minor and patch versions) to the most up-to-date versions. These updates do not include breaking changes and therefore are applied in this PR. This should simplify conflict resolution with
versions.props
for any upcoming changes (see below PRs). The corresponding license and notice files for each dependency that was changed have been updated as well. Some license and notice files of libraries from the same project were merged.In order to run a successful
gradlew check
(with Java 17 for now) some of the dependency issues (see #2643) had to be fixed as well.Major upgrades or upgrades that introduce breaking changes are not included and should be addressed in different PRs.
Relates to #2047
Relates to #2129
Relates to #2130
Relates to #2167
Relates to #2169
Relates to #2268
Relates to #2396
Relates to #2398
Relates to #2608
Relates to #2609
Relates to #2628
Relates to #2637
Relates to #2639
Relates to #2638
Relates to #2643
Relates to #2647