Re: Solr/Lucene joint development workflow?

2021-06-03 Thread Mike Drob
Can we commit the security policy addition independently?

On Thu, Jun 3, 2021 at 2:20 PM Michael Gibney 
wrote:

> Ok, I think I've got this now. jars from the mavenLocal() repo are used
> in-place by gradle, and not cached in `${gradle.lib.dir}`. This requires a
> security policy addition to
> `gradle/testing/randomization/policies/solr-tests.policy`:
>
>  grant {
>// Allow reading gradle worker JAR.
>permission java.io.FilePermission "${gradle.worker.jar}", "read";
>// Allow reading from classpath JARs (resources).
>permission java.io.FilePermission "${gradle.user.home}${/}-", "read";
> +  // Allow reading lucene jars from mavenLocal repository
> +  permission java.io.FilePermission
> "${user.home}${/}.m2${/}repository${/}org${/}apache${/}lucene${/}-", "read";
>  };
>
> This, along with the addition of the mavenLocal() repo and the change to
> "9.0.0-SNAPSHOT" lucene version in versions.props (and subsequent update of
> versions.lock file via `gradlew --write-locks`), does the trick.
>
> If I were to take a crack at documenting this workflow, any ideas on the
> best place to do so?
>
> Michael
>
>
> On Wed, Jun 2, 2021 at 9:19 AM Michael Gibney 
> wrote:
>
>> Thanks for digging into this! I can confirm that my
>> lucene-*-9.0.0-SNAPSHOT.jar files have META-INF/services/ with all the
>> expected codecs. I did remove the lucene subfolder from the maven
>> repo, re-ran `gradlew mavenToLocalRepo`, manually verified that the
>> expected META-INF/services/ listed all codecs, and re-ran the Solr
>> build (with `--refresh-dependencies`, and after having added the
>> `mavenLocal()` repo, changed `versions.props` to point at
>> "9.0.0-SNAPSHO", and run `gradlew --write-locks` to update the
>> versions.lock file). I'm still seeing the same exception ...
>>
>> Michael
>>
>> On Wed, Jun 2, 2021 at 8:01 AM Uwe Schindler  wrote:
>> >
>> > FYI,
>> >
>> > I did a recompile locally and checked the JAR files in my local Maven
>> repository ("./gradlew mavenToLocalRepo"): All contain META-INF/services
>> with all Codecs.
>> >
>> > I have no idea what goes wrong on your side. Next I will try to setup
>> mavenLocal() and a SNAPSHOT dependency, too.
>> >
>> > -
>> > Uwe Schindler
>> > Achterdiek 19, D-28357 Bremen
>> <https://www.google.com/maps/search/Achterdiek+19,+D-28357+Bremen?entry=gmail&source=g>
>> > https://www.thetaphi.de
>> > eMail: u...@thetaphi.de
>> >
>> > > -Original Message-
>> > > From: Uwe Schindler 
>> > > Sent: Wednesday, June 2, 2021 12:40 PM
>> > > To: dev@solr.apache.org
>> > > Subject: RE: Solr/Lucene joint development workflow?
>> > >
>> > > I'd suggest to remove the whole Lucene subfolder from your local
>> Maven repo.
>> > > E.g., rm -rf ~/.m2/repository/org/apache/lucene
>> > >
>> > > Then compile and deploy Lucene again.
>> > >
>> > > Uwe
>> > >
>> > > -
>> > > Uwe Schindler
>> > > Achterdiek 19, D-28357 Bremen
>> <https://www.google.com/maps/search/Achterdiek+19,+D-28357+Bremen?entry=gmail&source=g>
>> > > https://www.thetaphi.de
>> > > eMail: u...@thetaphi.de
>> > >
>> > > > -Original Message-
>> > > > From: Uwe Schindler 
>> > > > Sent: Wednesday, June 2, 2021 12:38 PM
>> > > > To: 'dev@solr.apache.org' 
>> > > > Subject: RE: Solr/Lucene joint development workflow?
>> > > >
>> > > > Hi,
>> > > >
>> > > > this error helps. It looks like the lucene-core.jar file does not
>> have the META-
>> > > > INF/services. I wonder how Solr works!
>> > > >
>> > > > It would be good to figure out what's going on and why the JAR
>> files in your
>> > > > local repository do not have the required META-INF/services
>> subfolder.
>> > > >
>> > > > Uwe
>> > > >
>> > > > -
>> > > > Uwe Schindler
>> > > > Achterdiek 19, D-28357 Bremen
>> <https://www.google.com/maps/search/Achterdiek+19,+D-28357+Bremen?entry=gmail&source=g>
>> > > > https://www.thetaphi.de
>> > > > eMail: u...@thetaphi.de
>> > > >
>> > > > > -Original

Re: Solr/Lucene joint development workflow?

2021-06-03 Thread Michael Gibney
Ok, I think I've got this now. jars from the mavenLocal() repo are used
in-place by gradle, and not cached in `${gradle.lib.dir}`. This requires a
security policy addition to
`gradle/testing/randomization/policies/solr-tests.policy`:

 grant {
   // Allow reading gradle worker JAR.
   permission java.io.FilePermission "${gradle.worker.jar}", "read";
   // Allow reading from classpath JARs (resources).
   permission java.io.FilePermission "${gradle.user.home}${/}-", "read";
+  // Allow reading lucene jars from mavenLocal repository
+  permission java.io.FilePermission
"${user.home}${/}.m2${/}repository${/}org${/}apache${/}lucene${/}-", "read";
 };

This, along with the addition of the mavenLocal() repo and the change to
"9.0.0-SNAPSHOT" lucene version in versions.props (and subsequent update of
versions.lock file via `gradlew --write-locks`), does the trick.

If I were to take a crack at documenting this workflow, any ideas on the
best place to do so?

Michael


On Wed, Jun 2, 2021 at 9:19 AM Michael Gibney 
wrote:

> Thanks for digging into this! I can confirm that my
> lucene-*-9.0.0-SNAPSHOT.jar files have META-INF/services/ with all the
> expected codecs. I did remove the lucene subfolder from the maven
> repo, re-ran `gradlew mavenToLocalRepo`, manually verified that the
> expected META-INF/services/ listed all codecs, and re-ran the Solr
> build (with `--refresh-dependencies`, and after having added the
> `mavenLocal()` repo, changed `versions.props` to point at
> "9.0.0-SNAPSHO", and run `gradlew --write-locks` to update the
> versions.lock file). I'm still seeing the same exception ...
>
> Michael
>
> On Wed, Jun 2, 2021 at 8:01 AM Uwe Schindler  wrote:
> >
> > FYI,
> >
> > I did a recompile locally and checked the JAR files in my local Maven
> repository ("./gradlew mavenToLocalRepo"): All contain META-INF/services
> with all Codecs.
> >
> > I have no idea what goes wrong on your side. Next I will try to setup
> mavenLocal() and a SNAPSHOT dependency, too.
> >
> > -
> > Uwe Schindler
> > Achterdiek 19, D-28357 Bremen
> > https://www.thetaphi.de
> > eMail: u...@thetaphi.de
> >
> > > -Original Message-
> > > From: Uwe Schindler 
> > > Sent: Wednesday, June 2, 2021 12:40 PM
> > > To: dev@solr.apache.org
> > > Subject: RE: Solr/Lucene joint development workflow?
> > >
> > > I'd suggest to remove the whole Lucene subfolder from your local Maven
> repo.
> > > E.g., rm -rf ~/.m2/repository/org/apache/lucene
> > >
> > > Then compile and deploy Lucene again.
> > >
> > > Uwe
> > >
> > > -
> > > Uwe Schindler
> > > Achterdiek 19, D-28357 Bremen
> > > https://www.thetaphi.de
> > > eMail: u...@thetaphi.de
> > >
> > > > -Original Message-
> > > > From: Uwe Schindler 
> > > > Sent: Wednesday, June 2, 2021 12:38 PM
> > > > To: 'dev@solr.apache.org' 
> > > > Subject: RE: Solr/Lucene joint development workflow?
> > > >
> > > > Hi,
> > > >
> > > > this error helps. It looks like the lucene-core.jar file does not
> have the META-
> > > > INF/services. I wonder how Solr works!
> > > >
> > > > It would be good to figure out what's going on and why the JAR files
> in your
> > > > local repository do not have the required META-INF/services
> subfolder.
> > > >
> > > > Uwe
> > > >
> > > > -
> > > > Uwe Schindler
> > > > Achterdiek 19, D-28357 Bremen
> > > > https://www.thetaphi.de
> > > > eMail: u...@thetaphi.de
> > > >
> > > > > -Original Message-
> > > > > From: Michael Gibney 
> > > > > Sent: Wednesday, June 2, 2021 6:05 AM
> > > > > To: dev@solr.apache.org
> > > > > Subject: Re: Solr/Lucene joint development workflow?
> > > > >
> > > > > Uwe,
> > > > > Thanks for this advice! I followed this as closely as I could
> > > > > (including the gradle `--refresh-dependencies` flag), and was again
> > > > > able to compile (and compileTest) against mavenLocal. But on
> actually
> > > > > running tests, afaict all tests fail with the same stacktrace
> (copied
> > > > > below). iirc this was the same error I was getting previously with
> the
> > > > > SNAPSHOT build (before the introduction of the prerelease
&

Re: Solr/Lucene joint development workflow?

2021-06-02 Thread Michael Gibney
Thanks for digging into this! I can confirm that my
lucene-*-9.0.0-SNAPSHOT.jar files have META-INF/services/ with all the
expected codecs. I did remove the lucene subfolder from the maven
repo, re-ran `gradlew mavenToLocalRepo`, manually verified that the
expected META-INF/services/ listed all codecs, and re-ran the Solr
build (with `--refresh-dependencies`, and after having added the
`mavenLocal()` repo, changed `versions.props` to point at
"9.0.0-SNAPSHO", and run `gradlew --write-locks` to update the
versions.lock file). I'm still seeing the same exception ...

Michael

On Wed, Jun 2, 2021 at 8:01 AM Uwe Schindler  wrote:
>
> FYI,
>
> I did a recompile locally and checked the JAR files in my local Maven 
> repository ("./gradlew mavenToLocalRepo"): All contain META-INF/services with 
> all Codecs.
>
> I have no idea what goes wrong on your side. Next I will try to setup 
> mavenLocal() and a SNAPSHOT dependency, too.
>
> -
> Uwe Schindler
> Achterdiek 19, D-28357 Bremen
> https://www.thetaphi.de
> eMail: u...@thetaphi.de
>
> > -Original Message-
> > From: Uwe Schindler 
> > Sent: Wednesday, June 2, 2021 12:40 PM
> > To: dev@solr.apache.org
> > Subject: RE: Solr/Lucene joint development workflow?
> >
> > I'd suggest to remove the whole Lucene subfolder from your local Maven repo.
> > E.g., rm -rf ~/.m2/repository/org/apache/lucene
> >
> > Then compile and deploy Lucene again.
> >
> > Uwe
> >
> > -
> > Uwe Schindler
> > Achterdiek 19, D-28357 Bremen
> > https://www.thetaphi.de
> > eMail: u...@thetaphi.de
> >
> > > -Original Message-
> > > From: Uwe Schindler 
> > > Sent: Wednesday, June 2, 2021 12:38 PM
> > > To: 'dev@solr.apache.org' 
> > > Subject: RE: Solr/Lucene joint development workflow?
> > >
> > > Hi,
> > >
> > > this error helps. It looks like the lucene-core.jar file does not have 
> > > the META-
> > > INF/services. I wonder how Solr works!
> > >
> > > It would be good to figure out what's going on and why the JAR files in 
> > > your
> > > local repository do not have the required META-INF/services subfolder.
> > >
> > > Uwe
> > >
> > > -
> > > Uwe Schindler
> > > Achterdiek 19, D-28357 Bremen
> > > https://www.thetaphi.de
> > > eMail: u...@thetaphi.de
> > >
> > > > -Original Message-
> > > > From: Michael Gibney 
> > > > Sent: Wednesday, June 2, 2021 6:05 AM
> > > > To: dev@solr.apache.org
> > > > Subject: Re: Solr/Lucene joint development workflow?
> > > >
> > > > Uwe,
> > > > Thanks for this advice! I followed this as closely as I could
> > > > (including the gradle `--refresh-dependencies` flag), and was again
> > > > able to compile (and compileTest) against mavenLocal. But on actually
> > > > running tests, afaict all tests fail with the same stacktrace (copied
> > > > below). iirc this was the same error I was getting previously with the
> > > > SNAPSHOT build (before the introduction of the prerelease dependency).
> > > > I'd be grateful for any advice on addressing this remaining error (and
> > > > having encountered the error, I continue to be curious whether anyone
> > > > has this workflow or something similar working in practice).
> > > >
> > > > David, your suggestion to add "mavenLocalI()" to Gradle's repo list
> > > > seems reasonable -- perhaps a more viable option now that the main
> > > > branch is pegged to specific builds (as opposed to a SNAPSHOT)? I'm
> > > > happy to help contribute to documentation of this process (once I have
> > > > it working!).
> > > >
> > > > One other challenge I encountered was determining which commit the
> > > > current prerelease build is based on. The desired workflow would be to
> > > > update the Lucene feature branch by merging upstream changes as far as
> > > > the commit of the prerelease build (for use as a dependency of the
> > > > Solr-side feature branch).
> > > >
> > > > The exception I'm getting on running tests is:
> > > >
> > > > java.lang.ExceptionInInitializerError
> > > > at org.apache.lucene.codecs.Codec.getDefault(Codec.java:141)
> > > > at
> > > >
> > >
> > org.apache.l

RE: Solr/Lucene joint development workflow?

2021-06-02 Thread Uwe Schindler
FYI,

I did a recompile locally and checked the JAR files in my local Maven 
repository ("./gradlew mavenToLocalRepo"): All contain META-INF/services with 
all Codecs.

I have no idea what goes wrong on your side. Next I will try to setup 
mavenLocal() and a SNAPSHOT dependency, too.

-
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: u...@thetaphi.de

> -Original Message-
> From: Uwe Schindler 
> Sent: Wednesday, June 2, 2021 12:40 PM
> To: dev@solr.apache.org
> Subject: RE: Solr/Lucene joint development workflow?
> 
> I'd suggest to remove the whole Lucene subfolder from your local Maven repo.
> E.g., rm -rf ~/.m2/repository/org/apache/lucene
> 
> Then compile and deploy Lucene again.
> 
> Uwe
> 
> -
> Uwe Schindler
> Achterdiek 19, D-28357 Bremen
> https://www.thetaphi.de
> eMail: u...@thetaphi.de
> 
> > -Original Message-
> > From: Uwe Schindler 
> > Sent: Wednesday, June 2, 2021 12:38 PM
> > To: 'dev@solr.apache.org' 
> > Subject: RE: Solr/Lucene joint development workflow?
> >
> > Hi,
> >
> > this error helps. It looks like the lucene-core.jar file does not have the 
> > META-
> > INF/services. I wonder how Solr works!
> >
> > It would be good to figure out what's going on and why the JAR files in your
> > local repository do not have the required META-INF/services subfolder.
> >
> > Uwe
> >
> > -
> > Uwe Schindler
> > Achterdiek 19, D-28357 Bremen
> > https://www.thetaphi.de
> > eMail: u...@thetaphi.de
> >
> > > -Original Message-
> > > From: Michael Gibney 
> > > Sent: Wednesday, June 2, 2021 6:05 AM
> > > To: dev@solr.apache.org
> > > Subject: Re: Solr/Lucene joint development workflow?
> > >
> > > Uwe,
> > > Thanks for this advice! I followed this as closely as I could
> > > (including the gradle `--refresh-dependencies` flag), and was again
> > > able to compile (and compileTest) against mavenLocal. But on actually
> > > running tests, afaict all tests fail with the same stacktrace (copied
> > > below). iirc this was the same error I was getting previously with the
> > > SNAPSHOT build (before the introduction of the prerelease dependency).
> > > I'd be grateful for any advice on addressing this remaining error (and
> > > having encountered the error, I continue to be curious whether anyone
> > > has this workflow or something similar working in practice).
> > >
> > > David, your suggestion to add "mavenLocalI()" to Gradle's repo list
> > > seems reasonable -- perhaps a more viable option now that the main
> > > branch is pegged to specific builds (as opposed to a SNAPSHOT)? I'm
> > > happy to help contribute to documentation of this process (once I have
> > > it working!).
> > >
> > > One other challenge I encountered was determining which commit the
> > > current prerelease build is based on. The desired workflow would be to
> > > update the Lucene feature branch by merging upstream changes as far as
> > > the commit of the prerelease build (for use as a dependency of the
> > > Solr-side feature branch).
> > >
> > > The exception I'm getting on running tests is:
> > >
> > > java.lang.ExceptionInInitializerError
> > > at org.apache.lucene.codecs.Codec.getDefault(Codec.java:141)
> > > at
> > >
> >
> org.apache.lucene.util.TestRuleSetupAndRestoreClassEnv.before(TestRuleSetup
> > > AndRestoreClassEnv.java:133)
> > > at
> > >
> >
> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfter
> > > Rule.java:42)
> > > at
> > >
> >
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> > > ntAdapter.java:36)
> > > at
> > >
> >
> org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClass
> > > Name.java:38)
> > > at
> > >
> >
> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethod
> > > sRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> > > at
> > >
> >
> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethod
> > > sRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> > > at
> > >
> >
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> &

RE: Solr/Lucene joint development workflow?

2021-06-02 Thread Uwe Schindler
I'd suggest to remove the whole Lucene subfolder from your local Maven repo. 
E.g., rm -rf ~/.m2/repository/org/apache/lucene

Then compile and deploy Lucene again.

Uwe

-
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: u...@thetaphi.de

> -Original Message-
> From: Uwe Schindler 
> Sent: Wednesday, June 2, 2021 12:38 PM
> To: 'dev@solr.apache.org' 
> Subject: RE: Solr/Lucene joint development workflow?
> 
> Hi,
> 
> this error helps. It looks like the lucene-core.jar file does not have the 
> META-
> INF/services. I wonder how Solr works!
> 
> It would be good to figure out what's going on and why the JAR files in your
> local repository do not have the required META-INF/services subfolder.
> 
> Uwe
> 
> -
> Uwe Schindler
> Achterdiek 19, D-28357 Bremen
> https://www.thetaphi.de
> eMail: u...@thetaphi.de
> 
> > -Original Message-
> > From: Michael Gibney 
> > Sent: Wednesday, June 2, 2021 6:05 AM
> > To: dev@solr.apache.org
> > Subject: Re: Solr/Lucene joint development workflow?
> >
> > Uwe,
> > Thanks for this advice! I followed this as closely as I could
> > (including the gradle `--refresh-dependencies` flag), and was again
> > able to compile (and compileTest) against mavenLocal. But on actually
> > running tests, afaict all tests fail with the same stacktrace (copied
> > below). iirc this was the same error I was getting previously with the
> > SNAPSHOT build (before the introduction of the prerelease dependency).
> > I'd be grateful for any advice on addressing this remaining error (and
> > having encountered the error, I continue to be curious whether anyone
> > has this workflow or something similar working in practice).
> >
> > David, your suggestion to add "mavenLocalI()" to Gradle's repo list
> > seems reasonable -- perhaps a more viable option now that the main
> > branch is pegged to specific builds (as opposed to a SNAPSHOT)? I'm
> > happy to help contribute to documentation of this process (once I have
> > it working!).
> >
> > One other challenge I encountered was determining which commit the
> > current prerelease build is based on. The desired workflow would be to
> > update the Lucene feature branch by merging upstream changes as far as
> > the commit of the prerelease build (for use as a dependency of the
> > Solr-side feature branch).
> >
> > The exception I'm getting on running tests is:
> >
> > java.lang.ExceptionInInitializerError
> > at org.apache.lucene.codecs.Codec.getDefault(Codec.java:141)
> > at
> >
> org.apache.lucene.util.TestRuleSetupAndRestoreClassEnv.before(TestRuleSetup
> > AndRestoreClassEnv.java:133)
> > at
> >
> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfter
> > Rule.java:42)
> > at
> >
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> > ntAdapter.java:36)
> > at
> >
> org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClass
> > Name.java:38)
> > at
> >
> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethod
> > sRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> > at
> >
> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethod
> > sRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> > at
> >
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> > ntAdapter.java:36)
> > at
> >
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> > ntAdapter.java:36)
> > at
> >
> org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertio
> > nsRequired.java:53)
> > at
> >
> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfter
> > Rule.java:43)
> > at
> >
> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.ja
> > va:44)
> > at
> >
> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgn
> > oreAfterMaxFailures.java:60)
> > at
> >
> org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTest
> > Suites.java:47)
> > at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> > at
> >
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> > ntAdapter.java:36)
> >

RE: Solr/Lucene joint development workflow?

2021-06-02 Thread Uwe Schindler
Hi,

this error helps. It looks like the lucene-core.jar file does not have the 
META-INF/services. I wonder how Solr works!

It would be good to figure out what's going on and why the JAR files in your 
local repository do not have the required META-INF/services subfolder.

Uwe

-
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: u...@thetaphi.de

> -Original Message-
> From: Michael Gibney 
> Sent: Wednesday, June 2, 2021 6:05 AM
> To: dev@solr.apache.org
> Subject: Re: Solr/Lucene joint development workflow?
> 
> Uwe,
> Thanks for this advice! I followed this as closely as I could
> (including the gradle `--refresh-dependencies` flag), and was again
> able to compile (and compileTest) against mavenLocal. But on actually
> running tests, afaict all tests fail with the same stacktrace (copied
> below). iirc this was the same error I was getting previously with the
> SNAPSHOT build (before the introduction of the prerelease dependency).
> I'd be grateful for any advice on addressing this remaining error (and
> having encountered the error, I continue to be curious whether anyone
> has this workflow or something similar working in practice).
> 
> David, your suggestion to add "mavenLocalI()" to Gradle's repo list
> seems reasonable -- perhaps a more viable option now that the main
> branch is pegged to specific builds (as opposed to a SNAPSHOT)? I'm
> happy to help contribute to documentation of this process (once I have
> it working!).
> 
> One other challenge I encountered was determining which commit the
> current prerelease build is based on. The desired workflow would be to
> update the Lucene feature branch by merging upstream changes as far as
> the commit of the prerelease build (for use as a dependency of the
> Solr-side feature branch).
> 
> The exception I'm getting on running tests is:
> 
> java.lang.ExceptionInInitializerError
> at org.apache.lucene.codecs.Codec.getDefault(Codec.java:141)
> at
> org.apache.lucene.util.TestRuleSetupAndRestoreClassEnv.before(TestRuleSetup
> AndRestoreClassEnv.java:133)
> at
> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfter
> Rule.java:42)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> ntAdapter.java:36)
> at
> org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClass
> Name.java:38)
> at
> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethod
> sRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> at
> com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethod
> sRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> ntAdapter.java:36)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> ntAdapter.java:36)
> at
> org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertio
> nsRequired.java:53)
> at
> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfter
> Rule.java:43)
> at
> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.ja
> va:44)
> at
> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgn
> oreAfterMaxFailures.java:60)
> at
> org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTest
> Suites.java:47)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at
> com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(Stateme
> ntAdapter.java:36)
> at
> com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(
> ThreadLeakControl.java:370)
> at
> com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutin
> gTask$0(ThreadLeakControl.java:826)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 
> Caused by:
> java.lang.IllegalArgumentException: An SPI class of type
> org.apache.lucene.codecs.Codec with name 'Lucene90' does not exist.
> You need to add the corresponding JAR file supporting this SPI to your
> classpath.  The current classpath supports the following names: []
> at
> org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:113)
> at org.apache.lucene.codecs.Codec$Holder.(Codec.java:58)
> ... 19 more
> 
> 
> On Fri, May 28, 2021 at 4:03 PM David Smiley  wrote:
> >
> > To whomever does this first, it would be great if the steps could be written
> down caref

Re: Solr/Lucene joint development workflow?

2021-06-01 Thread Michael Gibney
 is referring to the recent repository and picks a 
>> specific version (the build number of ASF jenkins).
>>
>> For joint development, I'd suggest to work like this:
>> - Change the dependency in the gradle versions.props file to SNAPSHOT (only 
>> local, don't submit this as PR)
>> - Add mavenLocal() as suggested in your mail (only local, don't submit this 
>> as PR)
>> - develop changes in lucene and install them in local repo
>> - use them from solr through the snapshot dependency. BUT: make sure the 
>> snapshot is updated, this can be enforced by passing a gradlew command line 
>> parameter to redownload all dependencies.
>> - once you are done with joint development create pull requests in both 
>> repositories
>> - Lucene's change should be merged first. Once this is done and all tests 
>> pass, ask a committer to trigger the Jenkins job to build a new prerelease
>> - Update the Solr pull request and enter the new repository coordinates 
>> created by Jenkins (needs to be done in 2 files, see below).
>>
>> For more details how to update Lucene dependencies in Solr, run:
>> $ gradlew :helpDeps
>>
>> Uwe
>>
>> -
>> Uwe Schindler
>> Achterdiek 19, D-28357 Bremen
>> https://www.thetaphi.de
>> eMail: u...@thetaphi.de
>>
>> > -Original Message-
>> > From: Michael Gibney 
>> > Sent: Wednesday, May 26, 2021 8:02 PM
>> > To: dev@solr.apache.org
>> > Subject: Solr/Lucene joint development workflow?
>> >
>> > I'm working on some features that involve changes to both Lucene and
>> > Solr. Post-TLP-split, I'm wondering whether anyone has recommended
>> > techniques to handle this kind of situation.
>> >
>> > Ideally one would work on Lucene changes, get them merged, and then
>> > proceed with Solr development; but realistically even if this were as
>> > straightforward in practice as it sounds in principal, there are cases
>> > where one would still want to develop in parallel.
>> >
>> > I haven't been able to find any documented recommendation on this
>> > subject. It's possible to have a locally built Lucene snapshot (via
>> > `gradlew mavenToLocalRepo`); but I was only able to actually _build_
>> > Solr against the local Lucene artifact by adding `mavenLocal()` to the
>> > `allprojects/repositories` block in `gradle/defaults.gradle` -- and I
>> > have yet to figure a way get the local Lucene artifact on the test
>> > classpath (so I'm as yet unable to run Solr tests that depend on
>> > unmerged upstream changes to Lucene).
>> >
>> > It's also possible that the partially-functional approach described
>> > above will have to change now that Solr main depends on a specific
>> > Lucene snapshot version.
>> >
>> > Is anybody doing something like this? Or perhaps I'm asking the wrong
>> > question? I can think of solutions that involve setting up my own
>> > maven repository, to which I publish my own pinned versions of Lucene,
>> > and refer to such pinned versions/repo as part of a given Solr
>> > "patch". But that feels both half-baked _and_ bloated, so I don't want
>> > to go down that road unless I feel convinced there's no better
>> > alternative.
>> >
>> > Michael
>> >
>> > -
>> > To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
>> > For additional commands, e-mail: dev-h...@solr.apache.org
>>
>>
>> -
>> To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
>> For additional commands, e-mail: dev-h...@solr.apache.org
>>

-
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org



Re: Solr/Lucene joint development workflow?

2021-05-28 Thread David Smiley
To whomever does this first, it would be great if the steps could be
written down carefully in more detail so that it can be shared for its
eventual inclusion in /dev-docs

Maybe "mavenLocalI()" should simply be added to Gradle's repo list by
default?  This will speed up some first-time builds in some environments
who already have lots of local Maven dependencies.

~ David Smiley
Apache Lucene/Solr Search Developer
http://www.linkedin.com/in/davidwsmiley


On Thu, May 27, 2021 at 12:09 PM Uwe Schindler  wrote:

> Hi Michael,
>
> since yesterday, the Lucene dependency is no longer a snapshot one, so
> parts of your mail are no longer valid. But the worksflow is very similar.
>
> If the Solr team wants to use a newer preview build of Lucene, there is a
> workflow using ASF Jenkins that can build a new "prerelease" release of the
> Lucene main branch and deploy it on some ASF data dump server as maven
> repository.
>
> The Gradle build of Solr is referring to the recent repository and picks a
> specific version (the build number of ASF jenkins).
>
> For joint development, I'd suggest to work like this:
> - Change the dependency in the gradle versions.props file to SNAPSHOT
> (only local, don't submit this as PR)
> - Add mavenLocal() as suggested in your mail (only local, don't submit
> this as PR)
> - develop changes in lucene and install them in local repo
> - use them from solr through the snapshot dependency. BUT: make sure the
> snapshot is updated, this can be enforced by passing a gradlew command line
> parameter to redownload all dependencies.
> - once you are done with joint development create pull requests in both
> repositories
> - Lucene's change should be merged first. Once this is done and all tests
> pass, ask a committer to trigger the Jenkins job to build a new prerelease
> - Update the Solr pull request and enter the new repository coordinates
> created by Jenkins (needs to be done in 2 files, see below).
>
> For more details how to update Lucene dependencies in Solr, run:
> $ gradlew :helpDeps
>
> Uwe
>
> -
> Uwe Schindler
> Achterdiek 19, D-28357 Bremen
> https://www.thetaphi.de
> eMail: u...@thetaphi.de
>
> > -----Original Message-
> > From: Michael Gibney 
> > Sent: Wednesday, May 26, 2021 8:02 PM
> > To: dev@solr.apache.org
> > Subject: Solr/Lucene joint development workflow?
> >
> > I'm working on some features that involve changes to both Lucene and
> > Solr. Post-TLP-split, I'm wondering whether anyone has recommended
> > techniques to handle this kind of situation.
> >
> > Ideally one would work on Lucene changes, get them merged, and then
> > proceed with Solr development; but realistically even if this were as
> > straightforward in practice as it sounds in principal, there are cases
> > where one would still want to develop in parallel.
> >
> > I haven't been able to find any documented recommendation on this
> > subject. It's possible to have a locally built Lucene snapshot (via
> > `gradlew mavenToLocalRepo`); but I was only able to actually _build_
> > Solr against the local Lucene artifact by adding `mavenLocal()` to the
> > `allprojects/repositories` block in `gradle/defaults.gradle` -- and I
> > have yet to figure a way get the local Lucene artifact on the test
> > classpath (so I'm as yet unable to run Solr tests that depend on
> > unmerged upstream changes to Lucene).
> >
> > It's also possible that the partially-functional approach described
> > above will have to change now that Solr main depends on a specific
> > Lucene snapshot version.
> >
> > Is anybody doing something like this? Or perhaps I'm asking the wrong
> > question? I can think of solutions that involve setting up my own
> > maven repository, to which I publish my own pinned versions of Lucene,
> > and refer to such pinned versions/repo as part of a given Solr
> > "patch". But that feels both half-baked _and_ bloated, so I don't want
> > to go down that road unless I feel convinced there's no better
> > alternative.
> >
> > Michael
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
> > For additional commands, e-mail: dev-h...@solr.apache.org
>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
> For additional commands, e-mail: dev-h...@solr.apache.org
>
>


RE: Solr/Lucene joint development workflow?

2021-05-27 Thread Uwe Schindler
Hi Michael again,

as a small addon:
Due to the previously descibed changes, it is no longer needed to do the 
development in parallel (unless you want to check some compatibility or have a 
wider test-coverage). As Solr is now using a pinned "prerelease" (from ASF 
jenkins build number), you can add breaking changes to Lucene and Solr won't 
suddenly fail. Once you are ready to port the changes to Solr, you can trigger 
a new "prerelease" build on ASF jenkins and use it for development. So we are 
now completely decouped!

Uwe

-
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: u...@thetaphi.de

> -Original Message-
> From: Uwe Schindler 
> Sent: Thursday, May 27, 2021 6:09 PM
> To: dev@solr.apache.org
> Subject: RE: Solr/Lucene joint development workflow?
> 
> Hi Michael,
> 
> since yesterday, the Lucene dependency is no longer a snapshot one, so parts 
> of
> your mail are no longer valid. But the worksflow is very similar.
> 
> If the Solr team wants to use a newer preview build of Lucene, there is a
> workflow using ASF Jenkins that can build a new "prerelease" release of the
> Lucene main branch and deploy it on some ASF data dump server as maven
> repository.
> 
> The Gradle build of Solr is referring to the recent repository and picks a 
> specific
> version (the build number of ASF jenkins).
> 
> For joint development, I'd suggest to work like this:
> - Change the dependency in the gradle versions.props file to SNAPSHOT (only
> local, don't submit this as PR)
> - Add mavenLocal() as suggested in your mail (only local, don't submit this as
> PR)
> - develop changes in lucene and install them in local repo
> - use them from solr through the snapshot dependency. BUT: make sure the
> snapshot is updated, this can be enforced by passing a gradlew command line
> parameter to redownload all dependencies.
> - once you are done with joint development create pull requests in both
> repositories
> - Lucene's change should be merged first. Once this is done and all tests 
> pass,
> ask a committer to trigger the Jenkins job to build a new prerelease
> - Update the Solr pull request and enter the new repository coordinates 
> created
> by Jenkins (needs to be done in 2 files, see below).
> 
> For more details how to update Lucene dependencies in Solr, run:
> $ gradlew :helpDeps
> 
> Uwe
> 
> -
> Uwe Schindler
> Achterdiek 19, D-28357 Bremen
> https://www.thetaphi.de
> eMail: u...@thetaphi.de
> 
> > -Original Message-
> > From: Michael Gibney 
> > Sent: Wednesday, May 26, 2021 8:02 PM
> > To: dev@solr.apache.org
> > Subject: Solr/Lucene joint development workflow?
> >
> > I'm working on some features that involve changes to both Lucene and
> > Solr. Post-TLP-split, I'm wondering whether anyone has recommended
> > techniques to handle this kind of situation.
> >
> > Ideally one would work on Lucene changes, get them merged, and then
> > proceed with Solr development; but realistically even if this were as
> > straightforward in practice as it sounds in principal, there are cases
> > where one would still want to develop in parallel.
> >
> > I haven't been able to find any documented recommendation on this
> > subject. It's possible to have a locally built Lucene snapshot (via
> > `gradlew mavenToLocalRepo`); but I was only able to actually _build_
> > Solr against the local Lucene artifact by adding `mavenLocal()` to the
> > `allprojects/repositories` block in `gradle/defaults.gradle` -- and I
> > have yet to figure a way get the local Lucene artifact on the test
> > classpath (so I'm as yet unable to run Solr tests that depend on
> > unmerged upstream changes to Lucene).
> >
> > It's also possible that the partially-functional approach described
> > above will have to change now that Solr main depends on a specific
> > Lucene snapshot version.
> >
> > Is anybody doing something like this? Or perhaps I'm asking the wrong
> > question? I can think of solutions that involve setting up my own
> > maven repository, to which I publish my own pinned versions of Lucene,
> > and refer to such pinned versions/repo as part of a given Solr
> > "patch". But that feels both half-baked _and_ bloated, so I don't want
> > to go down that road unless I feel convinced there's no better
> > alternative.
> >
> > Michael
> >
> > -
> > To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
> > For additional commands, e-mail: dev-h...@solr.apache.org
> 
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
> For additional commands, e-mail: dev-h...@solr.apache.org


-
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org



RE: Solr/Lucene joint development workflow?

2021-05-27 Thread Uwe Schindler
Hi Michael,

since yesterday, the Lucene dependency is no longer a snapshot one, so parts of 
your mail are no longer valid. But the worksflow is very similar.

If the Solr team wants to use a newer preview build of Lucene, there is a 
workflow using ASF Jenkins that can build a new "prerelease" release of the 
Lucene main branch and deploy it on some ASF data dump server as maven 
repository.

The Gradle build of Solr is referring to the recent repository and picks a 
specific version (the build number of ASF jenkins).

For joint development, I'd suggest to work like this:
- Change the dependency in the gradle versions.props file to SNAPSHOT (only 
local, don't submit this as PR)
- Add mavenLocal() as suggested in your mail (only local, don't submit this as 
PR)
- develop changes in lucene and install them in local repo
- use them from solr through the snapshot dependency. BUT: make sure the 
snapshot is updated, this can be enforced by passing a gradlew command line 
parameter to redownload all dependencies.
- once you are done with joint development create pull requests in both 
repositories
- Lucene's change should be merged first. Once this is done and all tests pass, 
ask a committer to trigger the Jenkins job to build a new prerelease
- Update the Solr pull request and enter the new repository coordinates created 
by Jenkins (needs to be done in 2 files, see below).

For more details how to update Lucene dependencies in Solr, run:
$ gradlew :helpDeps

Uwe

-
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: u...@thetaphi.de

> -Original Message-
> From: Michael Gibney 
> Sent: Wednesday, May 26, 2021 8:02 PM
> To: dev@solr.apache.org
> Subject: Solr/Lucene joint development workflow?
> 
> I'm working on some features that involve changes to both Lucene and
> Solr. Post-TLP-split, I'm wondering whether anyone has recommended
> techniques to handle this kind of situation.
> 
> Ideally one would work on Lucene changes, get them merged, and then
> proceed with Solr development; but realistically even if this were as
> straightforward in practice as it sounds in principal, there are cases
> where one would still want to develop in parallel.
> 
> I haven't been able to find any documented recommendation on this
> subject. It's possible to have a locally built Lucene snapshot (via
> `gradlew mavenToLocalRepo`); but I was only able to actually _build_
> Solr against the local Lucene artifact by adding `mavenLocal()` to the
> `allprojects/repositories` block in `gradle/defaults.gradle` -- and I
> have yet to figure a way get the local Lucene artifact on the test
> classpath (so I'm as yet unable to run Solr tests that depend on
> unmerged upstream changes to Lucene).
> 
> It's also possible that the partially-functional approach described
> above will have to change now that Solr main depends on a specific
> Lucene snapshot version.
> 
> Is anybody doing something like this? Or perhaps I'm asking the wrong
> question? I can think of solutions that involve setting up my own
> maven repository, to which I publish my own pinned versions of Lucene,
> and refer to such pinned versions/repo as part of a given Solr
> "patch". But that feels both half-baked _and_ bloated, so I don't want
> to go down that road unless I feel convinced there's no better
> alternative.
> 
> Michael
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
> For additional commands, e-mail: dev-h...@solr.apache.org


-
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org



Solr/Lucene joint development workflow?

2021-05-26 Thread Michael Gibney
I'm working on some features that involve changes to both Lucene and
Solr. Post-TLP-split, I'm wondering whether anyone has recommended
techniques to handle this kind of situation.

Ideally one would work on Lucene changes, get them merged, and then
proceed with Solr development; but realistically even if this were as
straightforward in practice as it sounds in principal, there are cases
where one would still want to develop in parallel.

I haven't been able to find any documented recommendation on this
subject. It's possible to have a locally built Lucene snapshot (via
`gradlew mavenToLocalRepo`); but I was only able to actually _build_
Solr against the local Lucene artifact by adding `mavenLocal()` to the
`allprojects/repositories` block in `gradle/defaults.gradle` -- and I
have yet to figure a way get the local Lucene artifact on the test
classpath (so I'm as yet unable to run Solr tests that depend on
unmerged upstream changes to Lucene).

It's also possible that the partially-functional approach described
above will have to change now that Solr main depends on a specific
Lucene snapshot version.

Is anybody doing something like this? Or perhaps I'm asking the wrong
question? I can think of solutions that involve setting up my own
maven repository, to which I publish my own pinned versions of Lucene,
and refer to such pinned versions/repo as part of a given Solr
"patch". But that feels both half-baked _and_ bloated, so I don't want
to go down that road unless I feel convinced there's no better
alternative.

Michael

-
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org