I think we should dramatically scale back the set of classpaths (aka gradle
"configurations"?) in the "lockfile" to reduce problems like this and also
just to make the lockfile more useful.  I'll take the extreme position of
only one: runtimeClasspath.  If we did that, I might actually review the
diff's in a PR related to them.  Beyond that... man, it's noise,
questionable value, and adds busywork/toil.

On Thu, Aug 20, 2026 at 7:08 PM Chris Hostetter <[email protected]>
wrote:

>
> Spelunking through git history, it looks like this SolrBot PR/commit
> added (almost) all of the `xxxxCopy` entries to the `gradle.lockfile`
> files...
>
>  https://github.com/apache/solr/pull/4564
>  main:
> https://github.com/apache/solr/commit/742c7d99c37701791f998fba9f960db469942218
>  10x:
> https://github.com/apache/solr/commit/4fafb78192bba240d43c9539f6dcb98fc1ee1be6
>
>
>
> hossman@slate:~/lucene/solr [j21] [main] $ git grep Copy | grep -c
> gradle.lockfile
> 471
> hossman@slate:~/lucene/solr [j21] [main] $ git co
> 742c7d99c37701791f998fba9f960db469942218~
> ...
> hossman@slate:~/lucene/solr [j21] [c851aae5c82] $ git grep Copy | grep -c
> gradle.lockfile
> 1
>
>
>
>
>
>
>
>
>
> : Date: Thu, 20 Aug 2026 15:54:23 -0700 (MST)
> : From: Chris Hostetter <[email protected]>
> : To: Solr Dev <[email protected]>
> : Subject: lucene-upgrade.md instructions don't seem to work -- notably:
> :     resolveAndLockAll
> :
> :
> : I had a little time this afternoon so I wanted to take a quick stab at
> : upgrading Solr to Lucene 10.5.1 just to see what would break, and I feel
> like
> : either there is a bug in the resolveAndLockAll task or I am seriously
> : missunderstanding something with the instructions in lucene-upgrade.md
> :
> :
> :
> : Here's what I tried...
> :
> :
> : 1) clean checkout of main, review lucene-upgrade.md
> :
> : 2) right off the bat, the syntax of gradle/libs.versions.toml does not
> match
> : what lucene-upgrade.md says to modify.
> :
> : Instead of a change like this (as documented) ...
> :
> : - apache-lucene:*=10.3.0
> : + apache-lucene:*=10.4.0
> :
> : ...I assume this is a minor variation in how things are managed, and try
> : making a change like this...
> :
> : -apache-lucene = "10.4.0"
> : +apache-lucene = "10.5.1"
> :
> :
> : 3) ./gradlew resolveAndLockAll --write-locks
> :
> : At first glance this seems to work -- lots of log messages about
> "Persisted
> : dependency lock state for ..." and `git status` shows a lot of
> : `gradle.lockfile` files have been modified.
> :
> : At this point I move on to the next step of the instructions and get
> really
> : confused by 2 things -- but before I get to that, let me jump ahead to
> what I
> : eventually realized...
> :
> : $ git diff solr/core/gradle.lockfile | grep lucene-core
> :
> -org.apache.lucene:lucene-core:10.4.0=compileClasspath,compileClasspathCopy,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy
> :
> +org.apache.lucene:lucene-core:10.4.0=compileClasspathCopy,runtimeClasspathCopy,testCompileClasspathCopy,testRuntimeClasspathCopy
> :
> +org.apache.lucene:lucene-core:10.5.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
> :
> : ...this seems to have happened in every `gradle.lockfile` modified, for
> every
> : lucene jar mentioned --- the `xxxxxxCopy` values (no idea what these
> are?) all
> : stay associated with 10.4.0, while the corisponding `xxxxxx` values are
> all
> : correctly changed to 10.5.1.
> :
> :     WTF are all of these `xxxxxxCopy` entries?
> :
> :
> : But as I mentioned -- it took me a while to notice this happened, so
> let's
> : talk about the other weird thing when i tried to continue with the
> : instructions...
> :
> : 4) ./gradlew updateLicenses
> :
> : The first thing that confuses the hell out of me when running this
> command, is
> : that for whatever reason, it depends on `:solr:api:compileJava`
> :
> : which means it depends on many things, including
> `:solr:core:compileJava` --
> : which fails because there have been some public (but not intended for end
> : user) java API changes in lucene.
> :
> :    WTF is `updateLicenses` trying to compile all of Solr?
> :
> : Fortunately the compilation problems seem pretty minor, and easy to fix,
> so
> : then I retry `./gradlew updateLicenses` ...
> :
> : ...and that's when everything goes wonky...
> :
> : 5) REDIX: ./gradlew updateLicenses
> :
> : We make it past compilation, and quickly get to...
> :
> :
> : ...
> : > Task :solr:core:collectJarInfos FAILED
> : ...
> : FAILURE: Build failed with an exception.
> :
> : * Where:
> : Script '/home/hossman/lucene/solr/gradle/validation/jar-checks.gradle'
> line:
> : 134
> :
> : * What went wrong:
> : Execution failed for task ':solr:core:collectJarInfos' (registered in
> script
> : 'gradle/validation/jar-checks.gradle').
> : > Could not resolve all dependencies for configuration
> : ':solr:core:runtimeClasspathCopy'.
> :    > Could not resolve org.apache.lucene:lucene-analysis-kuromoji:10.5.1.
> :      Required by:
> :          project ':solr:core'
> :          project ':solr:core' > project ':platform'
> :       > Cannot find a version of
> 'org.apache.lucene:lucene-analysis-kuromoji'
> : that satisfies the version constraints:
> :            Dependency path: 'root' (runtimeClasspathCopy) -->
> : 'org.apache.lucene:lucene-analysis-kuromoji:10.5.1'
> :            Constraint path: 'root' (runtimeClasspathCopy) -->
> : 'org.apache.lucene:lucene-analysis-kuromoji:{strictly 10.4.0}' because
> of the
> : following reason: Dependency version enforced by Dependency Locking
> :            Constraint path: 'root' (runtimeClasspathCopy) --> 'project
> : ':platform'' (runtimeElements) -->
> : 'org.apache.lucene:lucene-analysis-kuromoji:10.5.1'
> :
> : ....lots of errors like the above for every lucene jar ...
> :
> : > There are 19 more failures with identical causes.
> :
> : * Try:
> : > Run with :solr:core:dependencyInsight --configuration
> : runtimeClasspathCopy --dependency
> org.apache.lucene:lucene-analysis-kuromoji
> : to get more insight on how to solve the conflict.
> :
> : ... lots more "Run with :solr:core:dependencyInsight lines  ...
> :
> : BUILD FAILED in 24s
> :
> :
> : 5) Try :solr:core:dependencyInsight ?
> :
> : This fails short and sweet...
> :
> : ./gradlew :solr:core:dependencyInsight --configuration
> runtimeClasspathCopy
> : --dependency org.apache.lucene:lucene-analysis-kuromoji
> :
> : FAILURE: Build failed with an exception.
> :
> : * What went wrong:
> : configuration 'runtimeClasspathCopy' not found in configuration
> container for
> : project ':solr:core'.
> :
> : * Try:
> : > Run with --stacktrace option to get the stack trace.
> : > Run with --info or --debug option to get more log output.
> : > Get more help at https://help.gradle.org.
> :
> : BUILD FAILED in 6s
> :
> :
> :     WTF are all of these `xxxxxxCopy` entries? (REDUX)
> :
> :
> :
> :
> : It's at this point that i just start greping for '10.4.0' to try and
> figure
> : out what I screwed up, and realize something is very very wrong with all
> of
> : our `gradle.lockfile` files
> :
> :
> :
> :
> : -Hoss
> : http://www.lucidworks.com/
> :
>
> -Hoss
> http://www.lucidworks.com/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to