You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@solr.apache.org by Dawid Weiss <da...@gmail.com> on 2021/05/01 06:15:02 UTC
Re: Proposal to pin the Lucene snapshot version on main
> Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
Technically you add a submodule and then make a composite build from
Solr side. I can provide a PR that does it if you wish... This is
simple. What submodules don't solve is releases - if you're on a
particular unreleased Lucene version then releasing Solr would still
mean you need some kind of "public" pinned Lucene release for the
Maven world. If you distribute the entire thing as binaries you can
just publish a snapshot of Lucene code, of course.
> I think adding git submodule means that we have to add back in all the build code for it.
No. The submodule is just a reference to a particular repository (and
commit) - the build code and remains nearly identical as it was with
Lucene. Composite builds in gradle are quite nice in that they're
(almost) transparent compared to dependency references.
> At which point, I'd rather just copy and commit the
> code they have so we don't have to learn another git system.
It's not really a different git system - it's a mechanism of
interacting with multiple repositories at once. Yes, it does add some
additional complexity but I think sooner or later you'll have to
interact with it anyway - many people favor monorepos these days and
this is a common way to assemble them from fragmented
sub-repositories.
> I've
> heard submodules don't play nice with Jenkins, but don't have any
> direct experience with them.
Some tools may require an additional flag to initialize and clone
sub-modules on the initial pull. Or manually.
git submodule init
git submodule update --recursive.
To summarize - I am not pushing for submodules, I do think they're a
viable alternative but pinned Maven references are simpler. The
problem with maven references is that we'd need a long(er) term maven
repository where such pinned references would live (without being
wiped out). Perhaps infra can help here and it'd solve the problem.
Dawid
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
For additional commands, e-mail: dev-help@solr.apache.org
Re: Proposal to pin the Lucene snapshot version on main
Posted by David Smiley <ds...@apache.org>.
No, these are not "releases".
> If the general public is being instructed to download a package, then
that package has been released
We will not be instructing the general public to download this stuff. It's
internal, and it's temporary before we get to an actual 9.0 release.
~ David Smiley
Apache Lucene/Solr Search Developer
http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 9:35 AM Mike Drob <md...@mdrob.com> wrote:
> Is this allowed by ASF policy? Are the Lucene “releases” that we are
> making something that needs to be voted on and approved by the Lucene PMC?
> https://apache.org/legal/release-policy.html#what
>
> > In our case, that means any publication outside the group of people on
> the product dev list.
>
> Solr dev list is not the Lucene dev list.
>
> On Fri, May 7, 2021 at 12:55 AM Uwe Schindler <uw...@thetaphi.de> wrote:
>
>> Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only
>> manually triggered.
>> It builds the maven artifacts into a local file system repo. As post
>> build job we publish the output folder on nighties repo like the ref guide.
>>
>> The version number is passed as -DreleaseVersion system property (e.g.
>> populated by Jenkins from the build number), like we do on artifacts builds
>> on jenkins anyways. It's no snapshot anymore, but like an half official
>> build with some custom version internal to our process.
>>
>> If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait
>> for it to finish, and finally copy-paste the version number from Jenkins
>> build description into gradle dependency version file.
>>
>> Uwe
>>
>> Uwe
>>
>>
>> Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett <
>> casstargett@gmail.com>:
>>>
>>> It could be a manual process if that’s what you think is easiest and it
>>> could still be on nightlies. It’s just a curl command to push something up:
>>> https://nightlies.apache.org/authoring.html. If it is a manual process,
>>> I think it would be better for it to be hosted in a place any of us could
>>> access, in case you’re busy/something happens to you and we need to pin a
>>> different snapshot.
>>>
>>> I’m not sure I see a reason why Solr couldn’t have our own Jenkins job
>>> that built Lucene once a week (or on demand, or whatever cadence that
>>> works) and pushes the snapshot to nightlies - we don’t have to use one of
>>> Lucene’s jobs, do we?
>>>
>>> I feel like we could also cascade a new Lucene snapshot build into a
>>> “Lucene validation” Solr build that verifies everything is OK with a new
>>> snapshot before updating the hosted snapshot on nightlies (although, I
>>> don’t actually know how to do that, it just seems like something that could
>>> be done).
>>>
>>> Cassandra
>>> On May 6, 2021, 10:13 AM -0500, David Smiley <ds...@apache.org>,
>>> wrote:
>>>
>>> I asked on the Lucene dev list about possible use of the Nightlies
>>> server. We don't want to pollute nightlies on a regular basis (I think);
>>> this would be an on-demand thing. As such, I'm not sure a CI server is the
>>> best way to approach this vs a manual script publishing to an ASF personal
>>> Home space.
>>>
>>> ~ David Smiley
>>> Apache Lucene/Solr Search Developer
>>> http://www.linkedin.com/in/davidwsmiley
>>>
>>>
>>> On Mon, May 3, 2021 at 10:55 AM Cassandra Targett <ca...@gmail.com>
>>> wrote:
>>>
>>>> I’m sort of surprised no one has mentioned the
>>>> https://nightlies.apache.org/ server, which could be used for this
>>>> purpose. Jenkins can push to it, and nothing gets deleted until we decide
>>>> to delete it (or overwrite it). Solr Operator builds go there as do drafts
>>>> of the Ref Guide pre-publication (in different directories now, but we’ll
>>>> fix that eventually).
>>>>
>>>> Cassandra
>>>> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>,
>>>> wrote:
>>>>
>>>> RE "an external system like Maven" -- we're merely talking about adding
>>>> another JAR repo to the list of repos we already have. Heck, for this
>>>> limited purpose, we could even use http://home.apache.org/~dsmiley/
>>>> Note that the Lucene project already uses home dirs of some users for
>>>> benchmark data. If we were talking about adding a Maven *build* then I
>>>> would totally appreciate your concern.
>>>>
>>>> I volunteer to use my space for this purpose.
>>>>
>>>> ~ David Smiley
>>>> Apache Lucene/Solr Search Developer
>>>> http://www.linkedin.com/in/davidwsmiley
>>>>
>>>>
>>>> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
>>>> ichattopadhyaya@gmail.com> wrote:
>>>>
>>>>> > Let’s not complicate things.
>>>>> By bringing in external systems like Maven, I think we're complicating
>>>>> things even though a straight forward way (git submodules) exists.
>>>>>
>>>>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <
>>>>> janhoy-apache@cominvent.com> wrote:
>>>>>
>>>>>> Sub modules is for organizing internal repos, not for pulling in
>>>>>> external deps. Let’s not complicate things. And once we switch main to 10.x
>>>>>> we’d need to use pure jar dependencies in branch_9x to depend upon actually
>>>>>> released and voted Lucene binaries.
>>>>>>
>>>>>> We need some tooling to smoothly work with bleeding edge Lucene
>>>>>> including local snapshot builds with not yet pushed changes to Lucene. I’d
>>>>>> rather put in some work to establish such tooling or procedures.
>>>>>>
>>>>>> Jan Høydahl
>>>>>>
>>>>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>>>>>> ichattopadhyaya@gmail.com>:
>>>>>>
>>>>>>
>>>>>> > What submodules don't solve is releases - if you're
>>>>>> > on a
>>>>>> particular unreleased Lucene version then releasing
>>>>>> > Solr would still mean you need some kind of
>>>>>> > "public" pinned Lucene release for the
>>>>>> > Mavenworld.
>>>>>>
>>>>>>
>>>>>> Can we then update the submodule to point to the release tag or sha
>>>>>> that Lucene got released from?
>>>>>>
>>>>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> > Other than literally adding the git submodule, would we do
>>>>>>> anything else to modify the gradle build so that or do we (and Jenkinsfile)
>>>>>>> have to manually do a step to install Lucene before proceeding?
>>>>>>>
>>>>>>> Technically you add a submodule and then make a composite build from
>>>>>>> Solr side. I can provide a PR that does it if you wish... This is
>>>>>>> simple. What submodules don't solve is releases - if you're on a
>>>>>>> particular unreleased Lucene version then releasing Solr would still
>>>>>>> mean you need some kind of "public" pinned Lucene release for the
>>>>>>> Maven world. If you distribute the entire thing as binaries you can
>>>>>>> just publish a snapshot of Lucene code, of course.
>>>>>>>
>>>>>>> > I think adding git submodule means that we have to add back in all
>>>>>>> the build code for it.
>>>>>>>
>>>>>>> No. The submodule is just a reference to a particular repository (and
>>>>>>> commit) - the build code and remains nearly identical as it was with
>>>>>>> Lucene. Composite builds in gradle are quite nice in that they're
>>>>>>> (almost) transparent compared to dependency references.
>>>>>>>
>>>>>>> > At which point, I'd rather just copy and commit the
>>>>>>> > code they have so we don't have to learn another git system.
>>>>>>>
>>>>>>> It's not really a different git system - it's a mechanism of
>>>>>>> interacting with multiple repositories at once. Yes, it does add some
>>>>>>> additional complexity but I think sooner or later you'll have to
>>>>>>> interact with it anyway - many people favor monorepos these days and
>>>>>>> this is a common way to assemble them from fragmented
>>>>>>> sub-repositories.
>>>>>>>
>>>>>>> > I've
>>>>>>> > heard submodules don't play nice with Jenkins, but don't have any
>>>>>>> > direct experience with them.
>>>>>>>
>>>>>>> Some tools may require an additional flag to initialize and clone
>>>>>>> sub-modules on the initial pull. Or manually.
>>>>>>>
>>>>>>> git submodule init
>>>>>>> git submodule update --recursive.
>>>>>>>
>>>>>>> To summarize - I am not pushing for submodules, I do think they're a
>>>>>>> viable alternative but pinned Maven references are simpler. The
>>>>>>> problem with maven references is that we'd need a long(er) term maven
>>>>>>> repository where such pinned references would live (without being
>>>>>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>>>>>
>>>>>>> Dawid
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>>>>
>>>>>>>
>> --
>> Uwe Schindler
>> Achterdiek 19, 28357 Bremen
>> <https://www.google.com/maps/search/Achterdiek+19,+28357+Bremen?entry=gmail&source=g>
>> https://www.thetaphi.de
>>
>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Mike Drob <md...@mdrob.com>.
Is this allowed by ASF policy? Are the Lucene “releases” that we are making
something that needs to be voted on and approved by the Lucene PMC?
https://apache.org/legal/release-policy.html#what
> In our case, that means any publication outside the group of people on
the product dev list.
Solr dev list is not the Lucene dev list.
On Fri, May 7, 2021 at 12:55 AM Uwe Schindler <uw...@thetaphi.de> wrote:
> Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only
> manually triggered.
> It builds the maven artifacts into a local file system repo. As post build
> job we publish the output folder on nighties repo like the ref guide.
>
> The version number is passed as -DreleaseVersion system property (e.g.
> populated by Jenkins from the build number), like we do on artifacts builds
> on jenkins anyways. It's no snapshot anymore, but like an half official
> build with some custom version internal to our process.
>
> If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait
> for it to finish, and finally copy-paste the version number from Jenkins
> build description into gradle dependency version file.
>
> Uwe
>
> Uwe
>
>
> Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett <
> casstargett@gmail.com>:
>>
>> It could be a manual process if that’s what you think is easiest and it
>> could still be on nightlies. It’s just a curl command to push something up:
>> https://nightlies.apache.org/authoring.html. If it is a manual process,
>> I think it would be better for it to be hosted in a place any of us could
>> access, in case you’re busy/something happens to you and we need to pin a
>> different snapshot.
>>
>> I’m not sure I see a reason why Solr couldn’t have our own Jenkins job
>> that built Lucene once a week (or on demand, or whatever cadence that
>> works) and pushes the snapshot to nightlies - we don’t have to use one of
>> Lucene’s jobs, do we?
>>
>> I feel like we could also cascade a new Lucene snapshot build into a
>> “Lucene validation” Solr build that verifies everything is OK with a new
>> snapshot before updating the hosted snapshot on nightlies (although, I
>> don’t actually know how to do that, it just seems like something that could
>> be done).
>>
>> Cassandra
>> On May 6, 2021, 10:13 AM -0500, David Smiley <ds...@apache.org>, wrote:
>>
>> I asked on the Lucene dev list about possible use of the Nightlies
>> server. We don't want to pollute nightlies on a regular basis (I think);
>> this would be an on-demand thing. As such, I'm not sure a CI server is the
>> best way to approach this vs a manual script publishing to an ASF personal
>> Home space.
>>
>> ~ David Smiley
>> Apache Lucene/Solr Search Developer
>> http://www.linkedin.com/in/davidwsmiley
>>
>>
>> On Mon, May 3, 2021 at 10:55 AM Cassandra Targett <ca...@gmail.com>
>> wrote:
>>
>>> I’m sort of surprised no one has mentioned the
>>> https://nightlies.apache.org/ server, which could be used for this
>>> purpose. Jenkins can push to it, and nothing gets deleted until we decide
>>> to delete it (or overwrite it). Solr Operator builds go there as do drafts
>>> of the Ref Guide pre-publication (in different directories now, but we’ll
>>> fix that eventually).
>>>
>>> Cassandra
>>> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>, wrote:
>>>
>>> RE "an external system like Maven" -- we're merely talking about adding
>>> another JAR repo to the list of repos we already have. Heck, for this
>>> limited purpose, we could even use http://home.apache.org/~dsmiley/
>>> Note that the Lucene project already uses home dirs of some users for
>>> benchmark data. If we were talking about adding a Maven *build* then I
>>> would totally appreciate your concern.
>>>
>>> I volunteer to use my space for this purpose.
>>>
>>> ~ David Smiley
>>> Apache Lucene/Solr Search Developer
>>> http://www.linkedin.com/in/davidwsmiley
>>>
>>>
>>> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
>>> ichattopadhyaya@gmail.com> wrote:
>>>
>>>> > Let’s not complicate things.
>>>> By bringing in external systems like Maven, I think we're complicating
>>>> things even though a straight forward way (git submodules) exists.
>>>>
>>>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com>
>>>> wrote:
>>>>
>>>>> Sub modules is for organizing internal repos, not for pulling in
>>>>> external deps. Let’s not complicate things. And once we switch main to 10.x
>>>>> we’d need to use pure jar dependencies in branch_9x to depend upon actually
>>>>> released and voted Lucene binaries.
>>>>>
>>>>> We need some tooling to smoothly work with bleeding edge Lucene
>>>>> including local snapshot builds with not yet pushed changes to Lucene. I’d
>>>>> rather put in some work to establish such tooling or procedures.
>>>>>
>>>>> Jan Høydahl
>>>>>
>>>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>>>>> ichattopadhyaya@gmail.com>:
>>>>>
>>>>>
>>>>> > What submodules don't solve is releases - if you're
>>>>> > on a
>>>>> particular unreleased Lucene version then releasing
>>>>> > Solr would still mean you need some kind of
>>>>> > "public" pinned Lucene release for the
>>>>> > Mavenworld.
>>>>>
>>>>>
>>>>> Can we then update the submodule to point to the release tag or sha
>>>>> that Lucene got released from?
>>>>>
>>>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> > Other than literally adding the git submodule, would we do anything
>>>>>> else to modify the gradle build so that or do we (and Jenkinsfile) have to
>>>>>> manually do a step to install Lucene before proceeding?
>>>>>>
>>>>>> Technically you add a submodule and then make a composite build from
>>>>>> Solr side. I can provide a PR that does it if you wish... This is
>>>>>> simple. What submodules don't solve is releases - if you're on a
>>>>>> particular unreleased Lucene version then releasing Solr would still
>>>>>> mean you need some kind of "public" pinned Lucene release for the
>>>>>> Maven world. If you distribute the entire thing as binaries you can
>>>>>> just publish a snapshot of Lucene code, of course.
>>>>>>
>>>>>> > I think adding git submodule means that we have to add back in all
>>>>>> the build code for it.
>>>>>>
>>>>>> No. The submodule is just a reference to a particular repository (and
>>>>>> commit) - the build code and remains nearly identical as it was with
>>>>>> Lucene. Composite builds in gradle are quite nice in that they're
>>>>>> (almost) transparent compared to dependency references.
>>>>>>
>>>>>> > At which point, I'd rather just copy and commit the
>>>>>> > code they have so we don't have to learn another git system.
>>>>>>
>>>>>> It's not really a different git system - it's a mechanism of
>>>>>> interacting with multiple repositories at once. Yes, it does add some
>>>>>> additional complexity but I think sooner or later you'll have to
>>>>>> interact with it anyway - many people favor monorepos these days and
>>>>>> this is a common way to assemble them from fragmented
>>>>>> sub-repositories.
>>>>>>
>>>>>> > I've
>>>>>> > heard submodules don't play nice with Jenkins, but don't have any
>>>>>> > direct experience with them.
>>>>>>
>>>>>> Some tools may require an additional flag to initialize and clone
>>>>>> sub-modules on the initial pull. Or manually.
>>>>>>
>>>>>> git submodule init
>>>>>> git submodule update --recursive.
>>>>>>
>>>>>> To summarize - I am not pushing for submodules, I do think they're a
>>>>>> viable alternative but pinned Maven references are simpler. The
>>>>>> problem with maven references is that we'd need a long(er) term maven
>>>>>> repository where such pinned references would live (without being
>>>>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>>>>
>>>>>> Dawid
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>>>
>>>>>>
> --
> Uwe Schindler
> Achterdiek 19, 28357 Bremen
> <https://www.google.com/maps/search/Achterdiek+19,+28357+Bremen?entry=gmail&source=g>
> https://www.thetaphi.de
>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Dawid Weiss <da...@gmail.com>.
> I just have to figure out, if some local repo, copied to some Webserver
> works well as a full M2 repository, especially how to
You should set up publishing to push to a maven repository without wiping
it first (the current build does it intentionally so that you can inspect
the artifacts). This should be trivial, even if we add it explicitly. Then
rsync that location to a public http(s) server and you're good to go.
Dawid
RE: Proposal to pin the Lucene snapshot version on main
Posted by Uwe Schindler <uw...@thetaphi.de>.
Hi,
I created a PR: https://github.com/apache/solr/pull/148
Actually it was quite simple and worked out of box!
Here is the workflow to create a new release, we can add this to the help texts:
* Go to <https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/
* Log in with ASF account
* Press on "build"
* wait until build is finished.... (can take long time, if other builds are queued)
* go to <https://nightlies.apache.org/solr/lucene-prereleases/> https://nightlies.apache.org/solr/lucene-prereleases/ and pick latest build version. You can also pick the build number form Jenkins (latest successful build)
* Edit ./versions.props and change Lucene version to '9.0.0-prereleaseXX', with 'XX' is the jenkins build number: <https://github.com/apache/solr/pull/148/files#diff-c2c619cc6bd6031ee10ada015c7ba9b841732e59d0a05d2a7408ebb0c02501e9R89> https://github.com/apache/solr/pull/148/files#diff-c2c619cc6bd6031ee10ada015c7ba9b841732e59d0a05d2a7408ebb0c02501e9R89
* Edit ./gradle/defaults.gradle and change this line: <https://github.com/apache/solr/pull/148/files#diff-6015d93d0f6acde9d7743d77cbf1651cff346f6155b7503b58f11cddc3ef8cdbR23> https://github.com/apache/solr/pull/148/files#diff-6015d93d0f6acde9d7743d77cbf1651cff346f6155b7503b58f11cddc3ef8cdbR23
* Run gradlew --write-locks
* Build Solr
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de
From: Uwe Schindler <uw...@thetaphi.de>
Sent: Tuesday, May 25, 2021 4:12 PM
To: dev@solr.apache.org
Cc: 'David Smiley' <ds...@apache.org>
Subject: RE: Proposal to pin the Lucene snapshot version on main
To get the best version name let’s use something that’s compatible with:
https://maven.apache.org/ref/3.3.3/maven-artifact/apidocs/org/apache/maven/artifact/versioning/ComparableVersion.html
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 4:09 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
as alternative to the jenkins-build-number I could also use the commit hash (jenkins has a env var for this). Setup is the same, but instead of ${BUILD_ID} I’d use ${GIT_COMMIT}, e.g.
“9.0.0-prerelease${GIT_COMMIT}” or “9.0.0-prerelease+${GIT_COMMIT}” (or another char instead of “+”like in Ubuntu/Debian packages)
What do you think?
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 3:57 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Sorry, I changed the folder layout a bit:
https://nightlies.apache.org/solr/lucene-prereleases/5/
easiest would be to add a property in the general Gradle build: prereleaseVersion=”4”
And then add snippets to add custom repo: “https://nightlies.apache.org/solr/lucene-prereleases/${prereleaseVersion}/ <https://nightlies.apache.org/solr/lucene-prereleases/prerelease$%7bprereleaseVersion%7d/> ”
And use this version number for dependencies: “9.0.0-prerelease${prereleaseVersion}”
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 3:52 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
it’s working, the first prerelease:
You have to add this folder as a Maven Repository (so each prerelease is a separate Maven repository):
https://nightlies.apache.org/solr/lucene-prereleases/prerelease4/
Then you configure the version number of lucene in your dependencies:
“9.0.0-prerelease4”
IMHO, easiest would be to add a property in the general Gradle build: prereleaseVersion=”4”
And then add snippets to add custom repo: “https://nightlies.apache.org/solr/lucene-prereleases/prerelease${prereleaseVersion}/ <https://nightlies.apache.org/solr/lucene-prereleases/prerelease$%7bprereleaseVersion%7d/> ”
And use this version number for dependencies: “9.0.0-prerelease${prereleaseVersion}”
Tell me if it works!
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 3:35 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
David, can you have a look at this:
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/
This job builds a local Maven repo (unsigned) on request (somebody with Jenkins access have to trigger it):
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/
I will now change this that the above folder is publsihed as a separate folder (also including build number) to ASF’s snapshot website.
Does this directory structure (below maven-local) looks fine?
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: <ma...@thetaphi.de> uwe@thetaphi.de
From: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Sent: Tuesday, May 25, 2021 3:06 PM
To: <ma...@solr.apache.org> dev@solr.apache.org
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
sorry for not acting faster. I was a bit busy with new kitchen, my main work, vaccination,…
The main problem was that I was not able to sign artifacts from Jenkins, but with Alan Woodward’s tip on lucene’s dev list regarding the disabled artifact signing (I would not think that we really need this here…) I am confident.
Problem is now how to synchronize the whole repository (so keep older artifacts, the current Lucene jobs creates a completely new local Maven artifact repository).When you sync this to the snapshot website, older Lucene preview releases would get lost. Maybe it’s better to store it somewhere inside jenkins. An alternative is to create a separate repository and then update base URL and artifact version inside the gradle scripts. So it could be like a repository with the jenkins build number in the repo’s base URL (needs to be cahnged in the remotes of Gradle) and the version number. IMHO, this would be a 2 line change instead of a one-line change inside solr’s build.gradle, so it’s not problematic.
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: David Smiley < <ma...@apache.org> dsmiley@apache.org>
Sent: Tuesday, May 25, 2021 2:01 PM
To: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Cc: <ma...@solr.apache.org> dev@solr.apache.org; Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>
Subject: Re: Proposal to pin the Lucene snapshot version on main
Thanks again for volunteering Uwe. I'm wondering what the status of this is? There was recently a major change in Lucene to move SpanQueries, and I think we're going to feel it in Solr. If not, it's just a matter of time before there is some other impactful change.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 10:22 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi,
Sure!
I will play a little bit around. If needed, I can add some property to the lucene build to locate a "local repo" (I think we have that already).
I just have to figure out, if some local repo, copied to some Webserver works well as a full M2 repository, especially how to handle multiple intermediary releases in it.
Uwe
Am May 7, 2021 1:47:45 PM UTC schrieb David Smiley < <ma...@apache.org> dsmiley@apache.org>:
Sounds great Uwe! Can you do it please?
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 1:55 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only manually triggered.
It builds the maven artifacts into a local file system repo. As post build job we publish the output folder on nighties repo like the ref guide.
The version number is passed as -DreleaseVersion system property (e.g. populated by Jenkins from the build number), like we do on artifacts builds on jenkins anyways. It's no snapshot anymore, but like an half official build with some custom version internal to our process.
If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait for it to finish, and finally copy-paste the version number from Jenkins build description into gradle dependency version file.
Uwe
Uwe
Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>:
It could be a manual process if that’s what you think is easiest and it could still be on nightlies. It’s just a curl command to push something up: <https://nightlies.apache.org/authoring.html> https://nightlies.apache.org/authoring.html. If it is a manual process, I think it would be better for it to be hosted in a place any of us could access, in case you’re busy/something happens to you and we need to pin a different snapshot.
I’m not sure I see a reason why Solr couldn’t have our own Jenkins job that built Lucene once a week (or on demand, or whatever cadence that works) and pushes the snapshot to nightlies - we don’t have to use one of Lucene’s jobs, do we?
I feel like we could also cascade a new Lucene snapshot build into a “Lucene validation” Solr build that verifies everything is OK with a new snapshot before updating the hosted snapshot on nightlies (although, I don’t actually know how to do that, it just seems like something that could be done).
Cassandra
On May 6, 2021, 10:13 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
I asked on the Lucene dev list about possible use of the Nightlies server. We don't want to pollute nightlies on a regular basis (I think); this would be an on-demand thing. As such, I'm not sure a CI server is the best way to approach this vs a manual script publishing to an ASF personal Home space.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Mon, May 3, 2021 at 10:55 AM Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com> wrote:
I’m sort of surprised no one has mentioned the <https://nightlies.apache.org/> https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
Cassandra
On May 3, 2021, 9:15 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use <http://home.apache.org/~dsmiley/> http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
I volunteer to use my space for this purpose.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com> wrote:
> Let’s not complicate things.
By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
On Sat, May 1, 2021 at 5:00 PM Jan Høydahl < <ma...@cominvent.com> janhoy-apache@cominvent.com> wrote:
Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
Jan Høydahl
1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com>:
> What submodules don't solve is releases - if you're
> on a
particular unreleased Lucene version then releasing
> Solr would still mean you need some kind of
> "public" pinned Lucene release for the
> Mavenworld.
Can we then update the submodule to point to the release tag or sha that Lucene got released from?
On Sat, 1 May, 2021, 11:45 am Dawid Weiss, < <ma...@gmail.com> dawid.weiss@gmail.com> wrote:
> Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
Technically you add a submodule and then make a composite build from
Solr side. I can provide a PR that does it if you wish... This is
simple. What submodules don't solve is releases - if you're on a
particular unreleased Lucene version then releasing Solr would still
mean you need some kind of "public" pinned Lucene release for the
Maven world. If you distribute the entire thing as binaries you can
just publish a snapshot of Lucene code, of course.
> I think adding git submodule means that we have to add back in all the build code for it.
No. The submodule is just a reference to a particular repository (and
commit) - the build code and remains nearly identical as it was with
Lucene. Composite builds in gradle are quite nice in that they're
(almost) transparent compared to dependency references.
> At which point, I'd rather just copy and commit the
> code they have so we don't have to learn another git system.
It's not really a different git system - it's a mechanism of
interacting with multiple repositories at once. Yes, it does add some
additional complexity but I think sooner or later you'll have to
interact with it anyway - many people favor monorepos these days and
this is a common way to assemble them from fragmented
sub-repositories.
> I've
> heard submodules don't play nice with Jenkins, but don't have any
> direct experience with them.
Some tools may require an additional flag to initialize and clone
sub-modules on the initial pull. Or manually.
git submodule init
git submodule update --recursive.
To summarize - I am not pushing for submodules, I do think they're a
viable alternative but pinned Maven references are simpler. The
problem with maven references is that we'd need a long(er) term maven
repository where such pinned references would live (without being
wiped out). Perhaps infra can help here and it'd solve the problem.
Dawid
---------------------------------------------------------------------
To unsubscribe, e-mail: <ma...@solr.apache.org> dev-unsubscribe@solr.apache.org
For additional commands, e-mail: <ma...@solr.apache.org> dev-help@solr.apache.org
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
RE: Proposal to pin the Lucene snapshot version on main
Posted by Uwe Schindler <uw...@thetaphi.de>.
To get the best version name let’s use something that’s compatible with:
https://maven.apache.org/ref/3.3.3/maven-artifact/apidocs/org/apache/maven/artifact/versioning/ComparableVersion.html
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de
From: Uwe Schindler <uw...@thetaphi.de>
Sent: Tuesday, May 25, 2021 4:09 PM
To: dev@solr.apache.org
Cc: 'David Smiley' <ds...@apache.org>
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
as alternative to the jenkins-build-number I could also use the commit hash (jenkins has a env var for this). Setup is the same, but instead of ${BUILD_ID} I’d use ${GIT_COMMIT}, e.g.
“9.0.0-prerelease${GIT_COMMIT}” or “9.0.0-prerelease+${GIT_COMMIT}” (or another char instead of “+”like in Ubuntu/Debian packages)
What do you think?
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 3:57 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Sorry, I changed the folder layout a bit:
https://nightlies.apache.org/solr/lucene-prereleases/5/
easiest would be to add a property in the general Gradle build: prereleaseVersion=”4”
And then add snippets to add custom repo: “https://nightlies.apache.org/solr/lucene-prereleases/${prereleaseVersion}/ <https://nightlies.apache.org/solr/lucene-prereleases/prerelease$%7bprereleaseVersion%7d/> ”
And use this version number for dependencies: “9.0.0-prerelease${prereleaseVersion}”
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 3:52 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
it’s working, the first prerelease:
You have to add this folder as a Maven Repository (so each prerelease is a separate Maven repository):
https://nightlies.apache.org/solr/lucene-prereleases/prerelease4/
Then you configure the version number of lucene in your dependencies:
“9.0.0-prerelease4”
IMHO, easiest would be to add a property in the general Gradle build: prereleaseVersion=”4”
And then add snippets to add custom repo: “https://nightlies.apache.org/solr/lucene-prereleases/prerelease${prereleaseVersion}/ <https://nightlies.apache.org/solr/lucene-prereleases/prerelease$%7bprereleaseVersion%7d/> ”
And use this version number for dependencies: “9.0.0-prerelease${prereleaseVersion}”
Tell me if it works!
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 3:35 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
David, can you have a look at this:
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/
This job builds a local Maven repo (unsigned) on request (somebody with Jenkins access have to trigger it):
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/
I will now change this that the above folder is publsihed as a separate folder (also including build number) to ASF’s snapshot website.
Does this directory structure (below maven-local) looks fine?
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: <ma...@thetaphi.de> uwe@thetaphi.de
From: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Sent: Tuesday, May 25, 2021 3:06 PM
To: <ma...@solr.apache.org> dev@solr.apache.org
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
sorry for not acting faster. I was a bit busy with new kitchen, my main work, vaccination,…
The main problem was that I was not able to sign artifacts from Jenkins, but with Alan Woodward’s tip on lucene’s dev list regarding the disabled artifact signing (I would not think that we really need this here…) I am confident.
Problem is now how to synchronize the whole repository (so keep older artifacts, the current Lucene jobs creates a completely new local Maven artifact repository).When you sync this to the snapshot website, older Lucene preview releases would get lost. Maybe it’s better to store it somewhere inside jenkins. An alternative is to create a separate repository and then update base URL and artifact version inside the gradle scripts. So it could be like a repository with the jenkins build number in the repo’s base URL (needs to be cahnged in the remotes of Gradle) and the version number. IMHO, this would be a 2 line change instead of a one-line change inside solr’s build.gradle, so it’s not problematic.
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: David Smiley < <ma...@apache.org> dsmiley@apache.org>
Sent: Tuesday, May 25, 2021 2:01 PM
To: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Cc: <ma...@solr.apache.org> dev@solr.apache.org; Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>
Subject: Re: Proposal to pin the Lucene snapshot version on main
Thanks again for volunteering Uwe. I'm wondering what the status of this is? There was recently a major change in Lucene to move SpanQueries, and I think we're going to feel it in Solr. If not, it's just a matter of time before there is some other impactful change.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 10:22 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi,
Sure!
I will play a little bit around. If needed, I can add some property to the lucene build to locate a "local repo" (I think we have that already).
I just have to figure out, if some local repo, copied to some Webserver works well as a full M2 repository, especially how to handle multiple intermediary releases in it.
Uwe
Am May 7, 2021 1:47:45 PM UTC schrieb David Smiley < <ma...@apache.org> dsmiley@apache.org>:
Sounds great Uwe! Can you do it please?
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 1:55 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only manually triggered.
It builds the maven artifacts into a local file system repo. As post build job we publish the output folder on nighties repo like the ref guide.
The version number is passed as -DreleaseVersion system property (e.g. populated by Jenkins from the build number), like we do on artifacts builds on jenkins anyways. It's no snapshot anymore, but like an half official build with some custom version internal to our process.
If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait for it to finish, and finally copy-paste the version number from Jenkins build description into gradle dependency version file.
Uwe
Uwe
Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>:
It could be a manual process if that’s what you think is easiest and it could still be on nightlies. It’s just a curl command to push something up: <https://nightlies.apache.org/authoring.html> https://nightlies.apache.org/authoring.html. If it is a manual process, I think it would be better for it to be hosted in a place any of us could access, in case you’re busy/something happens to you and we need to pin a different snapshot.
I’m not sure I see a reason why Solr couldn’t have our own Jenkins job that built Lucene once a week (or on demand, or whatever cadence that works) and pushes the snapshot to nightlies - we don’t have to use one of Lucene’s jobs, do we?
I feel like we could also cascade a new Lucene snapshot build into a “Lucene validation” Solr build that verifies everything is OK with a new snapshot before updating the hosted snapshot on nightlies (although, I don’t actually know how to do that, it just seems like something that could be done).
Cassandra
On May 6, 2021, 10:13 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
I asked on the Lucene dev list about possible use of the Nightlies server. We don't want to pollute nightlies on a regular basis (I think); this would be an on-demand thing. As such, I'm not sure a CI server is the best way to approach this vs a manual script publishing to an ASF personal Home space.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Mon, May 3, 2021 at 10:55 AM Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com> wrote:
I’m sort of surprised no one has mentioned the <https://nightlies.apache.org/> https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
Cassandra
On May 3, 2021, 9:15 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use <http://home.apache.org/~dsmiley/> http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
I volunteer to use my space for this purpose.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com> wrote:
> Let’s not complicate things.
By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
On Sat, May 1, 2021 at 5:00 PM Jan Høydahl < <ma...@cominvent.com> janhoy-apache@cominvent.com> wrote:
Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
Jan Høydahl
1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com>:
> What submodules don't solve is releases - if you're
> on a
particular unreleased Lucene version then releasing
> Solr would still mean you need some kind of
> "public" pinned Lucene release for the
> Mavenworld.
Can we then update the submodule to point to the release tag or sha that Lucene got released from?
On Sat, 1 May, 2021, 11:45 am Dawid Weiss, < <ma...@gmail.com> dawid.weiss@gmail.com> wrote:
> Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
Technically you add a submodule and then make a composite build from
Solr side. I can provide a PR that does it if you wish... This is
simple. What submodules don't solve is releases - if you're on a
particular unreleased Lucene version then releasing Solr would still
mean you need some kind of "public" pinned Lucene release for the
Maven world. If you distribute the entire thing as binaries you can
just publish a snapshot of Lucene code, of course.
> I think adding git submodule means that we have to add back in all the build code for it.
No. The submodule is just a reference to a particular repository (and
commit) - the build code and remains nearly identical as it was with
Lucene. Composite builds in gradle are quite nice in that they're
(almost) transparent compared to dependency references.
> At which point, I'd rather just copy and commit the
> code they have so we don't have to learn another git system.
It's not really a different git system - it's a mechanism of
interacting with multiple repositories at once. Yes, it does add some
additional complexity but I think sooner or later you'll have to
interact with it anyway - many people favor monorepos these days and
this is a common way to assemble them from fragmented
sub-repositories.
> I've
> heard submodules don't play nice with Jenkins, but don't have any
> direct experience with them.
Some tools may require an additional flag to initialize and clone
sub-modules on the initial pull. Or manually.
git submodule init
git submodule update --recursive.
To summarize - I am not pushing for submodules, I do think they're a
viable alternative but pinned Maven references are simpler. The
problem with maven references is that we'd need a long(er) term maven
repository where such pinned references would live (without being
wiped out). Perhaps infra can help here and it'd solve the problem.
Dawid
---------------------------------------------------------------------
To unsubscribe, e-mail: <ma...@solr.apache.org> dev-unsubscribe@solr.apache.org
For additional commands, e-mail: <ma...@solr.apache.org> dev-help@solr.apache.org
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
RE: Proposal to pin the Lucene snapshot version on main
Posted by Uwe Schindler <uw...@thetaphi.de>.
Hi,
as alternative to the jenkins-build-number I could also use the commit hash (jenkins has a env var for this). Setup is the same, but instead of ${BUILD_ID} I’d use ${GIT_COMMIT}, e.g.
“9.0.0-prerelease${GIT_COMMIT}” or “9.0.0-prerelease+${GIT_COMMIT}” (or another char instead of “+”like in Ubuntu/Debian packages)
What do you think?
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de
From: Uwe Schindler <uw...@thetaphi.de>
Sent: Tuesday, May 25, 2021 3:57 PM
To: dev@solr.apache.org
Cc: 'David Smiley' <ds...@apache.org>
Subject: RE: Proposal to pin the Lucene snapshot version on main
Sorry, I changed the folder layout a bit:
https://nightlies.apache.org/solr/lucene-prereleases/5/
easiest would be to add a property in the general Gradle build: prereleaseVersion=”4”
And then add snippets to add custom repo: “https://nightlies.apache.org/solr/lucene-prereleases/${prereleaseVersion}/ <https://nightlies.apache.org/solr/lucene-prereleases/prerelease$%7bprereleaseVersion%7d/> ”
And use this version number for dependencies: “9.0.0-prerelease${prereleaseVersion}”
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 3:52 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
it’s working, the first prerelease:
You have to add this folder as a Maven Repository (so each prerelease is a separate Maven repository):
https://nightlies.apache.org/solr/lucene-prereleases/prerelease4/
Then you configure the version number of lucene in your dependencies:
“9.0.0-prerelease4”
IMHO, easiest would be to add a property in the general Gradle build: prereleaseVersion=”4”
And then add snippets to add custom repo: “https://nightlies.apache.org/solr/lucene-prereleases/prerelease${prereleaseVersion}/ <https://nightlies.apache.org/solr/lucene-prereleases/prerelease$%7bprereleaseVersion%7d/> ”
And use this version number for dependencies: “9.0.0-prerelease${prereleaseVersion}”
Tell me if it works!
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 3:35 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
David, can you have a look at this:
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/
This job builds a local Maven repo (unsigned) on request (somebody with Jenkins access have to trigger it):
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/
I will now change this that the above folder is publsihed as a separate folder (also including build number) to ASF’s snapshot website.
Does this directory structure (below maven-local) looks fine?
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: <ma...@thetaphi.de> uwe@thetaphi.de
From: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Sent: Tuesday, May 25, 2021 3:06 PM
To: <ma...@solr.apache.org> dev@solr.apache.org
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
sorry for not acting faster. I was a bit busy with new kitchen, my main work, vaccination,…
The main problem was that I was not able to sign artifacts from Jenkins, but with Alan Woodward’s tip on lucene’s dev list regarding the disabled artifact signing (I would not think that we really need this here…) I am confident.
Problem is now how to synchronize the whole repository (so keep older artifacts, the current Lucene jobs creates a completely new local Maven artifact repository).When you sync this to the snapshot website, older Lucene preview releases would get lost. Maybe it’s better to store it somewhere inside jenkins. An alternative is to create a separate repository and then update base URL and artifact version inside the gradle scripts. So it could be like a repository with the jenkins build number in the repo’s base URL (needs to be cahnged in the remotes of Gradle) and the version number. IMHO, this would be a 2 line change instead of a one-line change inside solr’s build.gradle, so it’s not problematic.
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: David Smiley < <ma...@apache.org> dsmiley@apache.org>
Sent: Tuesday, May 25, 2021 2:01 PM
To: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Cc: <ma...@solr.apache.org> dev@solr.apache.org; Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>
Subject: Re: Proposal to pin the Lucene snapshot version on main
Thanks again for volunteering Uwe. I'm wondering what the status of this is? There was recently a major change in Lucene to move SpanQueries, and I think we're going to feel it in Solr. If not, it's just a matter of time before there is some other impactful change.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 10:22 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi,
Sure!
I will play a little bit around. If needed, I can add some property to the lucene build to locate a "local repo" (I think we have that already).
I just have to figure out, if some local repo, copied to some Webserver works well as a full M2 repository, especially how to handle multiple intermediary releases in it.
Uwe
Am May 7, 2021 1:47:45 PM UTC schrieb David Smiley < <ma...@apache.org> dsmiley@apache.org>:
Sounds great Uwe! Can you do it please?
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 1:55 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only manually triggered.
It builds the maven artifacts into a local file system repo. As post build job we publish the output folder on nighties repo like the ref guide.
The version number is passed as -DreleaseVersion system property (e.g. populated by Jenkins from the build number), like we do on artifacts builds on jenkins anyways. It's no snapshot anymore, but like an half official build with some custom version internal to our process.
If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait for it to finish, and finally copy-paste the version number from Jenkins build description into gradle dependency version file.
Uwe
Uwe
Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>:
It could be a manual process if that’s what you think is easiest and it could still be on nightlies. It’s just a curl command to push something up: <https://nightlies.apache.org/authoring.html> https://nightlies.apache.org/authoring.html. If it is a manual process, I think it would be better for it to be hosted in a place any of us could access, in case you’re busy/something happens to you and we need to pin a different snapshot.
I’m not sure I see a reason why Solr couldn’t have our own Jenkins job that built Lucene once a week (or on demand, or whatever cadence that works) and pushes the snapshot to nightlies - we don’t have to use one of Lucene’s jobs, do we?
I feel like we could also cascade a new Lucene snapshot build into a “Lucene validation” Solr build that verifies everything is OK with a new snapshot before updating the hosted snapshot on nightlies (although, I don’t actually know how to do that, it just seems like something that could be done).
Cassandra
On May 6, 2021, 10:13 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
I asked on the Lucene dev list about possible use of the Nightlies server. We don't want to pollute nightlies on a regular basis (I think); this would be an on-demand thing. As such, I'm not sure a CI server is the best way to approach this vs a manual script publishing to an ASF personal Home space.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Mon, May 3, 2021 at 10:55 AM Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com> wrote:
I’m sort of surprised no one has mentioned the <https://nightlies.apache.org/> https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
Cassandra
On May 3, 2021, 9:15 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use <http://home.apache.org/~dsmiley/> http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
I volunteer to use my space for this purpose.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com> wrote:
> Let’s not complicate things.
By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
On Sat, May 1, 2021 at 5:00 PM Jan Høydahl < <ma...@cominvent.com> janhoy-apache@cominvent.com> wrote:
Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
Jan Høydahl
1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com>:
> What submodules don't solve is releases - if you're
> on a
particular unreleased Lucene version then releasing
> Solr would still mean you need some kind of
> "public" pinned Lucene release for the
> Mavenworld.
Can we then update the submodule to point to the release tag or sha that Lucene got released from?
On Sat, 1 May, 2021, 11:45 am Dawid Weiss, < <ma...@gmail.com> dawid.weiss@gmail.com> wrote:
> Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
Technically you add a submodule and then make a composite build from
Solr side. I can provide a PR that does it if you wish... This is
simple. What submodules don't solve is releases - if you're on a
particular unreleased Lucene version then releasing Solr would still
mean you need some kind of "public" pinned Lucene release for the
Maven world. If you distribute the entire thing as binaries you can
just publish a snapshot of Lucene code, of course.
> I think adding git submodule means that we have to add back in all the build code for it.
No. The submodule is just a reference to a particular repository (and
commit) - the build code and remains nearly identical as it was with
Lucene. Composite builds in gradle are quite nice in that they're
(almost) transparent compared to dependency references.
> At which point, I'd rather just copy and commit the
> code they have so we don't have to learn another git system.
It's not really a different git system - it's a mechanism of
interacting with multiple repositories at once. Yes, it does add some
additional complexity but I think sooner or later you'll have to
interact with it anyway - many people favor monorepos these days and
this is a common way to assemble them from fragmented
sub-repositories.
> I've
> heard submodules don't play nice with Jenkins, but don't have any
> direct experience with them.
Some tools may require an additional flag to initialize and clone
sub-modules on the initial pull. Or manually.
git submodule init
git submodule update --recursive.
To summarize - I am not pushing for submodules, I do think they're a
viable alternative but pinned Maven references are simpler. The
problem with maven references is that we'd need a long(er) term maven
repository where such pinned references would live (without being
wiped out). Perhaps infra can help here and it'd solve the problem.
Dawid
---------------------------------------------------------------------
To unsubscribe, e-mail: <ma...@solr.apache.org> dev-unsubscribe@solr.apache.org
For additional commands, e-mail: <ma...@solr.apache.org> dev-help@solr.apache.org
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
RE: Proposal to pin the Lucene snapshot version on main
Posted by Uwe Schindler <uw...@thetaphi.de>.
Sorry, I changed the folder layout a bit:
https://nightlies.apache.org/solr/lucene-prereleases/5/
easiest would be to add a property in the general Gradle build: prereleaseVersion=”4”
And then add snippets to add custom repo: “https://nightlies.apache.org/solr/lucene-prereleases/${prereleaseVersion}/ <https://nightlies.apache.org/solr/lucene-prereleases/prerelease$%7bprereleaseVersion%7d/> ”
And use this version number for dependencies: “9.0.0-prerelease${prereleaseVersion}”
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de
From: Uwe Schindler <uw...@thetaphi.de>
Sent: Tuesday, May 25, 2021 3:52 PM
To: dev@solr.apache.org
Cc: 'David Smiley' <ds...@apache.org>
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
it’s working, the first prerelease:
You have to add this folder as a Maven Repository (so each prerelease is a separate Maven repository):
https://nightlies.apache.org/solr/lucene-prereleases/prerelease4/
Then you configure the version number of lucene in your dependencies:
“9.0.0-prerelease4”
IMHO, easiest would be to add a property in the general Gradle build: prereleaseVersion=”4”
And then add snippets to add custom repo: “https://nightlies.apache.org/solr/lucene-prereleases/prerelease${prereleaseVersion}/ <https://nightlies.apache.org/solr/lucene-prereleases/prerelease$%7bprereleaseVersion%7d/> ”
And use this version number for dependencies: “9.0.0-prerelease${prereleaseVersion}”
Tell me if it works!
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Sent: Tuesday, May 25, 2021 3:35 PM
To: dev@solr.apache.org <ma...@solr.apache.org>
Cc: 'David Smiley' <dsmiley@apache.org <ma...@apache.org> >
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
David, can you have a look at this:
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/
This job builds a local Maven repo (unsigned) on request (somebody with Jenkins access have to trigger it):
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/
I will now change this that the above folder is publsihed as a separate folder (also including build number) to ASF’s snapshot website.
Does this directory structure (below maven-local) looks fine?
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: <ma...@thetaphi.de> uwe@thetaphi.de
From: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Sent: Tuesday, May 25, 2021 3:06 PM
To: <ma...@solr.apache.org> dev@solr.apache.org
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
sorry for not acting faster. I was a bit busy with new kitchen, my main work, vaccination,…
The main problem was that I was not able to sign artifacts from Jenkins, but with Alan Woodward’s tip on lucene’s dev list regarding the disabled artifact signing (I would not think that we really need this here…) I am confident.
Problem is now how to synchronize the whole repository (so keep older artifacts, the current Lucene jobs creates a completely new local Maven artifact repository).When you sync this to the snapshot website, older Lucene preview releases would get lost. Maybe it’s better to store it somewhere inside jenkins. An alternative is to create a separate repository and then update base URL and artifact version inside the gradle scripts. So it could be like a repository with the jenkins build number in the repo’s base URL (needs to be cahnged in the remotes of Gradle) and the version number. IMHO, this would be a 2 line change instead of a one-line change inside solr’s build.gradle, so it’s not problematic.
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: David Smiley < <ma...@apache.org> dsmiley@apache.org>
Sent: Tuesday, May 25, 2021 2:01 PM
To: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Cc: <ma...@solr.apache.org> dev@solr.apache.org; Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>
Subject: Re: Proposal to pin the Lucene snapshot version on main
Thanks again for volunteering Uwe. I'm wondering what the status of this is? There was recently a major change in Lucene to move SpanQueries, and I think we're going to feel it in Solr. If not, it's just a matter of time before there is some other impactful change.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 10:22 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi,
Sure!
I will play a little bit around. If needed, I can add some property to the lucene build to locate a "local repo" (I think we have that already).
I just have to figure out, if some local repo, copied to some Webserver works well as a full M2 repository, especially how to handle multiple intermediary releases in it.
Uwe
Am May 7, 2021 1:47:45 PM UTC schrieb David Smiley < <ma...@apache.org> dsmiley@apache.org>:
Sounds great Uwe! Can you do it please?
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 1:55 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only manually triggered.
It builds the maven artifacts into a local file system repo. As post build job we publish the output folder on nighties repo like the ref guide.
The version number is passed as -DreleaseVersion system property (e.g. populated by Jenkins from the build number), like we do on artifacts builds on jenkins anyways. It's no snapshot anymore, but like an half official build with some custom version internal to our process.
If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait for it to finish, and finally copy-paste the version number from Jenkins build description into gradle dependency version file.
Uwe
Uwe
Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>:
It could be a manual process if that’s what you think is easiest and it could still be on nightlies. It’s just a curl command to push something up: <https://nightlies.apache.org/authoring.html> https://nightlies.apache.org/authoring.html. If it is a manual process, I think it would be better for it to be hosted in a place any of us could access, in case you’re busy/something happens to you and we need to pin a different snapshot.
I’m not sure I see a reason why Solr couldn’t have our own Jenkins job that built Lucene once a week (or on demand, or whatever cadence that works) and pushes the snapshot to nightlies - we don’t have to use one of Lucene’s jobs, do we?
I feel like we could also cascade a new Lucene snapshot build into a “Lucene validation” Solr build that verifies everything is OK with a new snapshot before updating the hosted snapshot on nightlies (although, I don’t actually know how to do that, it just seems like something that could be done).
Cassandra
On May 6, 2021, 10:13 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
I asked on the Lucene dev list about possible use of the Nightlies server. We don't want to pollute nightlies on a regular basis (I think); this would be an on-demand thing. As such, I'm not sure a CI server is the best way to approach this vs a manual script publishing to an ASF personal Home space.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Mon, May 3, 2021 at 10:55 AM Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com> wrote:
I’m sort of surprised no one has mentioned the <https://nightlies.apache.org/> https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
Cassandra
On May 3, 2021, 9:15 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use <http://home.apache.org/~dsmiley/> http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
I volunteer to use my space for this purpose.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com> wrote:
> Let’s not complicate things.
By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
On Sat, May 1, 2021 at 5:00 PM Jan Høydahl < <ma...@cominvent.com> janhoy-apache@cominvent.com> wrote:
Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
Jan Høydahl
1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com>:
> What submodules don't solve is releases - if you're
> on a
particular unreleased Lucene version then releasing
> Solr would still mean you need some kind of
> "public" pinned Lucene release for the
> Mavenworld.
Can we then update the submodule to point to the release tag or sha that Lucene got released from?
On Sat, 1 May, 2021, 11:45 am Dawid Weiss, < <ma...@gmail.com> dawid.weiss@gmail.com> wrote:
> Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
Technically you add a submodule and then make a composite build from
Solr side. I can provide a PR that does it if you wish... This is
simple. What submodules don't solve is releases - if you're on a
particular unreleased Lucene version then releasing Solr would still
mean you need some kind of "public" pinned Lucene release for the
Maven world. If you distribute the entire thing as binaries you can
just publish a snapshot of Lucene code, of course.
> I think adding git submodule means that we have to add back in all the build code for it.
No. The submodule is just a reference to a particular repository (and
commit) - the build code and remains nearly identical as it was with
Lucene. Composite builds in gradle are quite nice in that they're
(almost) transparent compared to dependency references.
> At which point, I'd rather just copy and commit the
> code they have so we don't have to learn another git system.
It's not really a different git system - it's a mechanism of
interacting with multiple repositories at once. Yes, it does add some
additional complexity but I think sooner or later you'll have to
interact with it anyway - many people favor monorepos these days and
this is a common way to assemble them from fragmented
sub-repositories.
> I've
> heard submodules don't play nice with Jenkins, but don't have any
> direct experience with them.
Some tools may require an additional flag to initialize and clone
sub-modules on the initial pull. Or manually.
git submodule init
git submodule update --recursive.
To summarize - I am not pushing for submodules, I do think they're a
viable alternative but pinned Maven references are simpler. The
problem with maven references is that we'd need a long(er) term maven
repository where such pinned references would live (without being
wiped out). Perhaps infra can help here and it'd solve the problem.
Dawid
---------------------------------------------------------------------
To unsubscribe, e-mail: <ma...@solr.apache.org> dev-unsubscribe@solr.apache.org
For additional commands, e-mail: <ma...@solr.apache.org> dev-help@solr.apache.org
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
RE: Proposal to pin the Lucene snapshot version on main
Posted by Uwe Schindler <uw...@thetaphi.de>.
Hi,
it’s working, the first prerelease:
You have to add this folder as a Maven Repository (so each prerelease is a separate Maven repository):
https://nightlies.apache.org/solr/lucene-prereleases/prerelease4/
Then you configure the version number of lucene in your dependencies:
“9.0.0-prerelease4”
IMHO, easiest would be to add a property in the general Gradle build: prereleaseVersion=”4”
And then add snippets to add custom repo: “https://nightlies.apache.org/solr/lucene-prereleases/prerelease${prereleaseVersion}/ <https://nightlies.apache.org/solr/lucene-prereleases/prerelease$%7bprereleaseVersion%7d/> ”
And use this version number for dependencies: “9.0.0-prerelease${prereleaseVersion}”
Tell me if it works!
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de
From: Uwe Schindler <uw...@thetaphi.de>
Sent: Tuesday, May 25, 2021 3:35 PM
To: dev@solr.apache.org
Cc: 'David Smiley' <ds...@apache.org>
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
David, can you have a look at this:
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/
This job builds a local Maven repo (unsigned) on request (somebody with Jenkins access have to trigger it):
<https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/> https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/
I will now change this that the above folder is publsihed as a separate folder (also including build number) to ASF’s snapshot website.
Does this directory structure (below maven-local) looks fine?
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: <ma...@thetaphi.de> uwe@thetaphi.de
From: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Sent: Tuesday, May 25, 2021 3:06 PM
To: <ma...@solr.apache.org> dev@solr.apache.org
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
sorry for not acting faster. I was a bit busy with new kitchen, my main work, vaccination,…
The main problem was that I was not able to sign artifacts from Jenkins, but with Alan Woodward’s tip on lucene’s dev list regarding the disabled artifact signing (I would not think that we really need this here…) I am confident.
Problem is now how to synchronize the whole repository (so keep older artifacts, the current Lucene jobs creates a completely new local Maven artifact repository).When you sync this to the snapshot website, older Lucene preview releases would get lost. Maybe it’s better to store it somewhere inside jenkins. An alternative is to create a separate repository and then update base URL and artifact version inside the gradle scripts. So it could be like a repository with the jenkins build number in the repo’s base URL (needs to be cahnged in the remotes of Gradle) and the version number. IMHO, this would be a 2 line change instead of a one-line change inside solr’s build.gradle, so it’s not problematic.
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: David Smiley < <ma...@apache.org> dsmiley@apache.org>
Sent: Tuesday, May 25, 2021 2:01 PM
To: Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de>
Cc: <ma...@solr.apache.org> dev@solr.apache.org; Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>
Subject: Re: Proposal to pin the Lucene snapshot version on main
Thanks again for volunteering Uwe. I'm wondering what the status of this is? There was recently a major change in Lucene to move SpanQueries, and I think we're going to feel it in Solr. If not, it's just a matter of time before there is some other impactful change.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 10:22 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi,
Sure!
I will play a little bit around. If needed, I can add some property to the lucene build to locate a "local repo" (I think we have that already).
I just have to figure out, if some local repo, copied to some Webserver works well as a full M2 repository, especially how to handle multiple intermediary releases in it.
Uwe
Am May 7, 2021 1:47:45 PM UTC schrieb David Smiley < <ma...@apache.org> dsmiley@apache.org>:
Sounds great Uwe! Can you do it please?
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 1:55 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only manually triggered.
It builds the maven artifacts into a local file system repo. As post build job we publish the output folder on nighties repo like the ref guide.
The version number is passed as -DreleaseVersion system property (e.g. populated by Jenkins from the build number), like we do on artifacts builds on jenkins anyways. It's no snapshot anymore, but like an half official build with some custom version internal to our process.
If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait for it to finish, and finally copy-paste the version number from Jenkins build description into gradle dependency version file.
Uwe
Uwe
Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>:
It could be a manual process if that’s what you think is easiest and it could still be on nightlies. It’s just a curl command to push something up: <https://nightlies.apache.org/authoring.html> https://nightlies.apache.org/authoring.html. If it is a manual process, I think it would be better for it to be hosted in a place any of us could access, in case you’re busy/something happens to you and we need to pin a different snapshot.
I’m not sure I see a reason why Solr couldn’t have our own Jenkins job that built Lucene once a week (or on demand, or whatever cadence that works) and pushes the snapshot to nightlies - we don’t have to use one of Lucene’s jobs, do we?
I feel like we could also cascade a new Lucene snapshot build into a “Lucene validation” Solr build that verifies everything is OK with a new snapshot before updating the hosted snapshot on nightlies (although, I don’t actually know how to do that, it just seems like something that could be done).
Cassandra
On May 6, 2021, 10:13 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
I asked on the Lucene dev list about possible use of the Nightlies server. We don't want to pollute nightlies on a regular basis (I think); this would be an on-demand thing. As such, I'm not sure a CI server is the best way to approach this vs a manual script publishing to an ASF personal Home space.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Mon, May 3, 2021 at 10:55 AM Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com> wrote:
I’m sort of surprised no one has mentioned the <https://nightlies.apache.org/> https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
Cassandra
On May 3, 2021, 9:15 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use <http://home.apache.org/~dsmiley/> http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
I volunteer to use my space for this purpose.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com> wrote:
> Let’s not complicate things.
By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
On Sat, May 1, 2021 at 5:00 PM Jan Høydahl < <ma...@cominvent.com> janhoy-apache@cominvent.com> wrote:
Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
Jan Høydahl
1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com>:
> What submodules don't solve is releases - if you're
> on a
particular unreleased Lucene version then releasing
> Solr would still mean you need some kind of
> "public" pinned Lucene release for the
> Mavenworld.
Can we then update the submodule to point to the release tag or sha that Lucene got released from?
On Sat, 1 May, 2021, 11:45 am Dawid Weiss, < <ma...@gmail.com> dawid.weiss@gmail.com> wrote:
> Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
Technically you add a submodule and then make a composite build from
Solr side. I can provide a PR that does it if you wish... This is
simple. What submodules don't solve is releases - if you're on a
particular unreleased Lucene version then releasing Solr would still
mean you need some kind of "public" pinned Lucene release for the
Maven world. If you distribute the entire thing as binaries you can
just publish a snapshot of Lucene code, of course.
> I think adding git submodule means that we have to add back in all the build code for it.
No. The submodule is just a reference to a particular repository (and
commit) - the build code and remains nearly identical as it was with
Lucene. Composite builds in gradle are quite nice in that they're
(almost) transparent compared to dependency references.
> At which point, I'd rather just copy and commit the
> code they have so we don't have to learn another git system.
It's not really a different git system - it's a mechanism of
interacting with multiple repositories at once. Yes, it does add some
additional complexity but I think sooner or later you'll have to
interact with it anyway - many people favor monorepos these days and
this is a common way to assemble them from fragmented
sub-repositories.
> I've
> heard submodules don't play nice with Jenkins, but don't have any
> direct experience with them.
Some tools may require an additional flag to initialize and clone
sub-modules on the initial pull. Or manually.
git submodule init
git submodule update --recursive.
To summarize - I am not pushing for submodules, I do think they're a
viable alternative but pinned Maven references are simpler. The
problem with maven references is that we'd need a long(er) term maven
repository where such pinned references would live (without being
wiped out). Perhaps infra can help here and it'd solve the problem.
Dawid
---------------------------------------------------------------------
To unsubscribe, e-mail: <ma...@solr.apache.org> dev-unsubscribe@solr.apache.org
For additional commands, e-mail: <ma...@solr.apache.org> dev-help@solr.apache.org
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
RE: Proposal to pin the Lucene snapshot version on main
Posted by Uwe Schindler <uw...@thetaphi.de>.
Hi,
David, can you have a look at this:
https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ <https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/>
This job builds a local Maven repo (unsigned) on request (somebody with Jenkins access have to trigger it):
https://ci-builds.apache.org/job/Solr/job/Lucene-prerelease-main/ws/build/maven-local/
I will now change this that the above folder is publsihed as a separate folder (also including build number) to ASF’s snapshot website.
Does this directory structure (below maven-local) looks fine?
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de
From: Uwe Schindler <uw...@thetaphi.de>
Sent: Tuesday, May 25, 2021 3:06 PM
To: dev@solr.apache.org
Subject: RE: Proposal to pin the Lucene snapshot version on main
Hi,
sorry for not acting faster. I was a bit busy with new kitchen, my main work, vaccination,…
The main problem was that I was not able to sign artifacts from Jenkins, but with Alan Woodward’s tip on lucene’s dev list regarding the disabled artifact signing (I would not think that we really need this here…) I am confident.
Problem is now how to synchronize the whole repository (so keep older artifacts, the current Lucene jobs creates a completely new local Maven artifact repository).When you sync this to the snapshot website, older Lucene preview releases would get lost. Maybe it’s better to store it somewhere inside jenkins. An alternative is to create a separate repository and then update base URL and artifact version inside the gradle scripts. So it could be like a repository with the jenkins build number in the repo’s base URL (needs to be cahnged in the remotes of Gradle) and the version number. IMHO, this would be a 2 line change instead of a one-line change inside solr’s build.gradle, so it’s not problematic.
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de <ma...@thetaphi.de>
From: David Smiley <dsmiley@apache.org <ma...@apache.org> >
Sent: Tuesday, May 25, 2021 2:01 PM
To: Uwe Schindler <uwe@thetaphi.de <ma...@thetaphi.de> >
Cc: dev@solr.apache.org <ma...@solr.apache.org> ; Cassandra Targett <casstargett@gmail.com <ma...@gmail.com> >
Subject: Re: Proposal to pin the Lucene snapshot version on main
Thanks again for volunteering Uwe. I'm wondering what the status of this is? There was recently a major change in Lucene to move SpanQueries, and I think we're going to feel it in Solr. If not, it's just a matter of time before there is some other impactful change.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 10:22 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi,
Sure!
I will play a little bit around. If needed, I can add some property to the lucene build to locate a "local repo" (I think we have that already).
I just have to figure out, if some local repo, copied to some Webserver works well as a full M2 repository, especially how to handle multiple intermediary releases in it.
Uwe
Am May 7, 2021 1:47:45 PM UTC schrieb David Smiley < <ma...@apache.org> dsmiley@apache.org>:
Sounds great Uwe! Can you do it please?
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 1:55 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only manually triggered.
It builds the maven artifacts into a local file system repo. As post build job we publish the output folder on nighties repo like the ref guide.
The version number is passed as -DreleaseVersion system property (e.g. populated by Jenkins from the build number), like we do on artifacts builds on jenkins anyways. It's no snapshot anymore, but like an half official build with some custom version internal to our process.
If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait for it to finish, and finally copy-paste the version number from Jenkins build description into gradle dependency version file.
Uwe
Uwe
Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>:
It could be a manual process if that’s what you think is easiest and it could still be on nightlies. It’s just a curl command to push something up: <https://nightlies.apache.org/authoring.html> https://nightlies.apache.org/authoring.html. If it is a manual process, I think it would be better for it to be hosted in a place any of us could access, in case you’re busy/something happens to you and we need to pin a different snapshot.
I’m not sure I see a reason why Solr couldn’t have our own Jenkins job that built Lucene once a week (or on demand, or whatever cadence that works) and pushes the snapshot to nightlies - we don’t have to use one of Lucene’s jobs, do we?
I feel like we could also cascade a new Lucene snapshot build into a “Lucene validation” Solr build that verifies everything is OK with a new snapshot before updating the hosted snapshot on nightlies (although, I don’t actually know how to do that, it just seems like something that could be done).
Cassandra
On May 6, 2021, 10:13 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
I asked on the Lucene dev list about possible use of the Nightlies server. We don't want to pollute nightlies on a regular basis (I think); this would be an on-demand thing. As such, I'm not sure a CI server is the best way to approach this vs a manual script publishing to an ASF personal Home space.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Mon, May 3, 2021 at 10:55 AM Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com> wrote:
I’m sort of surprised no one has mentioned the <https://nightlies.apache.org/> https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
Cassandra
On May 3, 2021, 9:15 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use <http://home.apache.org/~dsmiley/> http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
I volunteer to use my space for this purpose.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com> wrote:
> Let’s not complicate things.
By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
On Sat, May 1, 2021 at 5:00 PM Jan Høydahl < <ma...@cominvent.com> janhoy-apache@cominvent.com> wrote:
Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
Jan Høydahl
1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com>:
> What submodules don't solve is releases - if you're
> on a
particular unreleased Lucene version then releasing
> Solr would still mean you need some kind of
> "public" pinned Lucene release for the
> Mavenworld.
Can we then update the submodule to point to the release tag or sha that Lucene got released from?
On Sat, 1 May, 2021, 11:45 am Dawid Weiss, < <ma...@gmail.com> dawid.weiss@gmail.com> wrote:
> Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
Technically you add a submodule and then make a composite build from
Solr side. I can provide a PR that does it if you wish... This is
simple. What submodules don't solve is releases - if you're on a
particular unreleased Lucene version then releasing Solr would still
mean you need some kind of "public" pinned Lucene release for the
Maven world. If you distribute the entire thing as binaries you can
just publish a snapshot of Lucene code, of course.
> I think adding git submodule means that we have to add back in all the build code for it.
No. The submodule is just a reference to a particular repository (and
commit) - the build code and remains nearly identical as it was with
Lucene. Composite builds in gradle are quite nice in that they're
(almost) transparent compared to dependency references.
> At which point, I'd rather just copy and commit the
> code they have so we don't have to learn another git system.
It's not really a different git system - it's a mechanism of
interacting with multiple repositories at once. Yes, it does add some
additional complexity but I think sooner or later you'll have to
interact with it anyway - many people favor monorepos these days and
this is a common way to assemble them from fragmented
sub-repositories.
> I've
> heard submodules don't play nice with Jenkins, but don't have any
> direct experience with them.
Some tools may require an additional flag to initialize and clone
sub-modules on the initial pull. Or manually.
git submodule init
git submodule update --recursive.
To summarize - I am not pushing for submodules, I do think they're a
viable alternative but pinned Maven references are simpler. The
problem with maven references is that we'd need a long(er) term maven
repository where such pinned references would live (without being
wiped out). Perhaps infra can help here and it'd solve the problem.
Dawid
---------------------------------------------------------------------
To unsubscribe, e-mail: <ma...@solr.apache.org> dev-unsubscribe@solr.apache.org
For additional commands, e-mail: <ma...@solr.apache.org> dev-help@solr.apache.org
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
RE: Proposal to pin the Lucene snapshot version on main
Posted by Uwe Schindler <uw...@thetaphi.de>.
Hi,
sorry for not acting faster. I was a bit busy with new kitchen, my main work, vaccination,…
The main problem was that I was not able to sign artifacts from Jenkins, but with Alan Woodward’s tip on lucene’s dev list regarding the disabled artifact signing (I would not think that we really need this here…) I am confident.
Problem is now how to synchronize the whole repository (so keep older artifacts, the current Lucene jobs creates a completely new local Maven artifact repository).When you sync this to the snapshot website, older Lucene preview releases would get lost. Maybe it’s better to store it somewhere inside jenkins. An alternative is to create a separate repository and then update base URL and artifact version inside the gradle scripts. So it could be like a repository with the jenkins build number in the repo’s base URL (needs to be cahnged in the remotes of Gradle) and the version number. IMHO, this would be a 2 line change instead of a one-line change inside solr’s build.gradle, so it’s not problematic.
Uwe
-----
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: uwe@thetaphi.de
From: David Smiley <ds...@apache.org>
Sent: Tuesday, May 25, 2021 2:01 PM
To: Uwe Schindler <uw...@thetaphi.de>
Cc: dev@solr.apache.org; Cassandra Targett <ca...@gmail.com>
Subject: Re: Proposal to pin the Lucene snapshot version on main
Thanks again for volunteering Uwe. I'm wondering what the status of this is? There was recently a major change in Lucene to move SpanQueries, and I think we're going to feel it in Solr. If not, it's just a matter of time before there is some other impactful change.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 10:22 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi,
Sure!
I will play a little bit around. If needed, I can add some property to the lucene build to locate a "local repo" (I think we have that already).
I just have to figure out, if some local repo, copied to some Webserver works well as a full M2 repository, especially how to handle multiple intermediary releases in it.
Uwe
Am May 7, 2021 1:47:45 PM UTC schrieb David Smiley < <ma...@apache.org> dsmiley@apache.org>:
Sounds great Uwe! Can you do it please?
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 1:55 AM Uwe Schindler < <ma...@thetaphi.de> uwe@thetaphi.de> wrote:
Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only manually triggered.
It builds the maven artifacts into a local file system repo. As post build job we publish the output folder on nighties repo like the ref guide.
The version number is passed as -DreleaseVersion system property (e.g. populated by Jenkins from the build number), like we do on artifacts builds on jenkins anyways. It's no snapshot anymore, but like an half official build with some custom version internal to our process.
If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait for it to finish, and finally copy-paste the version number from Jenkins build description into gradle dependency version file.
Uwe
Uwe
Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com>:
It could be a manual process if that’s what you think is easiest and it could still be on nightlies. It’s just a curl command to push something up: <https://nightlies.apache.org/authoring.html> https://nightlies.apache.org/authoring.html. If it is a manual process, I think it would be better for it to be hosted in a place any of us could access, in case you’re busy/something happens to you and we need to pin a different snapshot.
I’m not sure I see a reason why Solr couldn’t have our own Jenkins job that built Lucene once a week (or on demand, or whatever cadence that works) and pushes the snapshot to nightlies - we don’t have to use one of Lucene’s jobs, do we?
I feel like we could also cascade a new Lucene snapshot build into a “Lucene validation” Solr build that verifies everything is OK with a new snapshot before updating the hosted snapshot on nightlies (although, I don’t actually know how to do that, it just seems like something that could be done).
Cassandra
On May 6, 2021, 10:13 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
I asked on the Lucene dev list about possible use of the Nightlies server. We don't want to pollute nightlies on a regular basis (I think); this would be an on-demand thing. As such, I'm not sure a CI server is the best way to approach this vs a manual script publishing to an ASF personal Home space.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Mon, May 3, 2021 at 10:55 AM Cassandra Targett < <ma...@gmail.com> casstargett@gmail.com> wrote:
I’m sort of surprised no one has mentioned the <https://nightlies.apache.org/> https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
Cassandra
On May 3, 2021, 9:15 AM -0500, David Smiley < <ma...@apache.org> dsmiley@apache.org>, wrote:
RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use <http://home.apache.org/~dsmiley/> http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
I volunteer to use my space for this purpose.
~ David Smiley
Apache Lucene/Solr Search Developer
<http://www.linkedin.com/in/davidwsmiley> http://www.linkedin.com/in/davidwsmiley
On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com> wrote:
> Let’s not complicate things.
By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
On Sat, May 1, 2021 at 5:00 PM Jan Høydahl < <ma...@cominvent.com> janhoy-apache@cominvent.com> wrote:
Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
Jan Høydahl
1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya < <ma...@gmail.com> ichattopadhyaya@gmail.com>:
> What submodules don't solve is releases - if you're
> on a
particular unreleased Lucene version then releasing
> Solr would still mean you need some kind of
> "public" pinned Lucene release for the
> Mavenworld.
Can we then update the submodule to point to the release tag or sha that Lucene got released from?
On Sat, 1 May, 2021, 11:45 am Dawid Weiss, < <ma...@gmail.com> dawid.weiss@gmail.com> wrote:
> Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
Technically you add a submodule and then make a composite build from
Solr side. I can provide a PR that does it if you wish... This is
simple. What submodules don't solve is releases - if you're on a
particular unreleased Lucene version then releasing Solr would still
mean you need some kind of "public" pinned Lucene release for the
Maven world. If you distribute the entire thing as binaries you can
just publish a snapshot of Lucene code, of course.
> I think adding git submodule means that we have to add back in all the build code for it.
No. The submodule is just a reference to a particular repository (and
commit) - the build code and remains nearly identical as it was with
Lucene. Composite builds in gradle are quite nice in that they're
(almost) transparent compared to dependency references.
> At which point, I'd rather just copy and commit the
> code they have so we don't have to learn another git system.
It's not really a different git system - it's a mechanism of
interacting with multiple repositories at once. Yes, it does add some
additional complexity but I think sooner or later you'll have to
interact with it anyway - many people favor monorepos these days and
this is a common way to assemble them from fragmented
sub-repositories.
> I've
> heard submodules don't play nice with Jenkins, but don't have any
> direct experience with them.
Some tools may require an additional flag to initialize and clone
sub-modules on the initial pull. Or manually.
git submodule init
git submodule update --recursive.
To summarize - I am not pushing for submodules, I do think they're a
viable alternative but pinned Maven references are simpler. The
problem with maven references is that we'd need a long(er) term maven
repository where such pinned references would live (without being
wiped out). Perhaps infra can help here and it'd solve the problem.
Dawid
---------------------------------------------------------------------
To unsubscribe, e-mail: <ma...@solr.apache.org> dev-unsubscribe@solr.apache.org
For additional commands, e-mail: <ma...@solr.apache.org> dev-help@solr.apache.org
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
Re: Proposal to pin the Lucene snapshot version on main
Posted by David Smiley <ds...@apache.org>.
Thanks again for volunteering Uwe. I'm wondering what the status of this
is? There was recently a major change in Lucene to move SpanQueries, and I
think we're going to feel it in Solr. If not, it's just a matter of time
before there is some other impactful change.
~ David Smiley
Apache Lucene/Solr Search Developer
http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 10:22 AM Uwe Schindler <uw...@thetaphi.de> wrote:
> Hi,
> Sure!
> I will play a little bit around. If needed, I can add some property to the
> lucene build to locate a "local repo" (I think we have that already).
> I just have to figure out, if some local repo, copied to some Webserver
> works well as a full M2 repository, especially how to handle multiple
> intermediary releases in it.
>
> Uwe
>
> Am May 7, 2021 1:47:45 PM UTC schrieb David Smiley <ds...@apache.org>:
>>
>> Sounds great Uwe! Can you do it please?
>>
>> ~ David Smiley
>> Apache Lucene/Solr Search Developer
>> http://www.linkedin.com/in/davidwsmiley
>>
>>
>> On Fri, May 7, 2021 at 1:55 AM Uwe Schindler <uw...@thetaphi.de> wrote:
>>
>>> Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only
>>> manually triggered.
>>> It builds the maven artifacts into a local file system repo. As post
>>> build job we publish the output folder on nighties repo like the ref guide.
>>>
>>> The version number is passed as -DreleaseVersion system property (e.g.
>>> populated by Jenkins from the build number), like we do on artifacts builds
>>> on jenkins anyways. It's no snapshot anymore, but like an half official
>>> build with some custom version internal to our process.
>>>
>>> If you want to upgrade Solr's Lucene, just press "build" on jenkins,
>>> wait for it to finish, and finally copy-paste the version number from
>>> Jenkins build description into gradle dependency version file.
>>>
>>> Uwe
>>>
>>> Uwe
>>>
>>> Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett <
>>> casstargett@gmail.com>:
>>>>
>>>> It could be a manual process if that’s what you think is easiest and it
>>>> could still be on nightlies. It’s just a curl command to push something up:
>>>> https://nightlies.apache.org/authoring.html. If it is a manual
>>>> process, I think it would be better for it to be hosted in a place any of
>>>> us could access, in case you’re busy/something happens to you and we need
>>>> to pin a different snapshot.
>>>>
>>>> I’m not sure I see a reason why Solr couldn’t have our own Jenkins job
>>>> that built Lucene once a week (or on demand, or whatever cadence that
>>>> works) and pushes the snapshot to nightlies - we don’t have to use one of
>>>> Lucene’s jobs, do we?
>>>>
>>>> I feel like we could also cascade a new Lucene snapshot build into a
>>>> “Lucene validation” Solr build that verifies everything is OK with a new
>>>> snapshot before updating the hosted snapshot on nightlies (although, I
>>>> don’t actually know how to do that, it just seems like something that could
>>>> be done).
>>>>
>>>> Cassandra
>>>> On May 6, 2021, 10:13 AM -0500, David Smiley <ds...@apache.org>,
>>>> wrote:
>>>>
>>>> I asked on the Lucene dev list about possible use of the Nightlies
>>>> server. We don't want to pollute nightlies on a regular basis (I think);
>>>> this would be an on-demand thing. As such, I'm not sure a CI server is the
>>>> best way to approach this vs a manual script publishing to an ASF personal
>>>> Home space.
>>>>
>>>> ~ David Smiley
>>>> Apache Lucene/Solr Search Developer
>>>> http://www.linkedin.com/in/davidwsmiley
>>>>
>>>>
>>>> On Mon, May 3, 2021 at 10:55 AM Cassandra Targett <
>>>> casstargett@gmail.com> wrote:
>>>>
>>>>> I’m sort of surprised no one has mentioned the
>>>>> https://nightlies.apache.org/ server, which could be used for this
>>>>> purpose. Jenkins can push to it, and nothing gets deleted until we decide
>>>>> to delete it (or overwrite it). Solr Operator builds go there as do drafts
>>>>> of the Ref Guide pre-publication (in different directories now, but we’ll
>>>>> fix that eventually).
>>>>>
>>>>> Cassandra
>>>>> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>,
>>>>> wrote:
>>>>>
>>>>> RE "an external system like Maven" -- we're merely talking about
>>>>> adding another JAR repo to the list of repos we already have. Heck, for
>>>>> this limited purpose, we could even use
>>>>> http://home.apache.org/~dsmiley/ Note that the Lucene project
>>>>> already uses home dirs of some users for benchmark data. If we were
>>>>> talking about adding a Maven *build* then I would totally appreciate your
>>>>> concern.
>>>>>
>>>>> I volunteer to use my space for this purpose.
>>>>>
>>>>> ~ David Smiley
>>>>> Apache Lucene/Solr Search Developer
>>>>> http://www.linkedin.com/in/davidwsmiley
>>>>>
>>>>>
>>>>> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
>>>>> ichattopadhyaya@gmail.com> wrote:
>>>>>
>>>>>> > Let’s not complicate things.
>>>>>> By bringing in external systems like Maven, I think we're
>>>>>> complicating things even though a straight forward way (git submodules)
>>>>>> exists.
>>>>>>
>>>>>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <
>>>>>> janhoy-apache@cominvent.com> wrote:
>>>>>>
>>>>>>> Sub modules is for organizing internal repos, not for pulling in
>>>>>>> external deps. Let’s not complicate things. And once we switch main to 10.x
>>>>>>> we’d need to use pure jar dependencies in branch_9x to depend upon actually
>>>>>>> released and voted Lucene binaries.
>>>>>>>
>>>>>>> We need some tooling to smoothly work with bleeding edge Lucene
>>>>>>> including local snapshot builds with not yet pushed changes to Lucene. I’d
>>>>>>> rather put in some work to establish such tooling or procedures.
>>>>>>>
>>>>>>> Jan Høydahl
>>>>>>>
>>>>>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>>>>>>> ichattopadhyaya@gmail.com>:
>>>>>>>
>>>>>>>
>>>>>>> > What submodules don't solve is releases - if you're
>>>>>>> > on a
>>>>>>> particular unreleased Lucene version then releasing
>>>>>>> > Solr would still mean you need some kind of
>>>>>>> > "public" pinned Lucene release for the
>>>>>>> > Mavenworld.
>>>>>>>
>>>>>>>
>>>>>>> Can we then update the submodule to point to the release tag or sha
>>>>>>> that Lucene got released from?
>>>>>>>
>>>>>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> > Other than literally adding the git submodule, would we do
>>>>>>>> anything else to modify the gradle build so that or do we (and Jenkinsfile)
>>>>>>>> have to manually do a step to install Lucene before proceeding?
>>>>>>>>
>>>>>>>> Technically you add a submodule and then make a composite build from
>>>>>>>> Solr side. I can provide a PR that does it if you wish... This is
>>>>>>>> simple. What submodules don't solve is releases - if you're on a
>>>>>>>> particular unreleased Lucene version then releasing Solr would still
>>>>>>>> mean you need some kind of "public" pinned Lucene release for the
>>>>>>>> Maven world. If you distribute the entire thing as binaries you can
>>>>>>>> just publish a snapshot of Lucene code, of course.
>>>>>>>>
>>>>>>>> > I think adding git submodule means that we have to add back in
>>>>>>>> all the build code for it.
>>>>>>>>
>>>>>>>> No. The submodule is just a reference to a particular repository
>>>>>>>> (and
>>>>>>>> commit) - the build code and remains nearly identical as it was with
>>>>>>>> Lucene. Composite builds in gradle are quite nice in that they're
>>>>>>>> (almost) transparent compared to dependency references.
>>>>>>>>
>>>>>>>> > At which point, I'd rather just copy and commit the
>>>>>>>> > code they have so we don't have to learn another git system.
>>>>>>>>
>>>>>>>> It's not really a different git system - it's a mechanism of
>>>>>>>> interacting with multiple repositories at once. Yes, it does add
>>>>>>>> some
>>>>>>>> additional complexity but I think sooner or later you'll have to
>>>>>>>> interact with it anyway - many people favor monorepos these days and
>>>>>>>> this is a common way to assemble them from fragmented
>>>>>>>> sub-repositories.
>>>>>>>>
>>>>>>>> > I've
>>>>>>>> > heard submodules don't play nice with Jenkins, but don't have any
>>>>>>>> > direct experience with them.
>>>>>>>>
>>>>>>>> Some tools may require an additional flag to initialize and clone
>>>>>>>> sub-modules on the initial pull. Or manually.
>>>>>>>>
>>>>>>>> git submodule init
>>>>>>>> git submodule update --recursive.
>>>>>>>>
>>>>>>>> To summarize - I am not pushing for submodules, I do think they're a
>>>>>>>> viable alternative but pinned Maven references are simpler. The
>>>>>>>> problem with maven references is that we'd need a long(er) term
>>>>>>>> maven
>>>>>>>> repository where such pinned references would live (without being
>>>>>>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>>>>>>
>>>>>>>> Dawid
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>>>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>>>>>
>>>>>>>>
>>> --
>>> Uwe Schindler
>>> Achterdiek 19, 28357 Bremen
>>> https://www.thetaphi.de
>>>
>>
> --
> Uwe Schindler
> Achterdiek 19, 28357 Bremen
> https://www.thetaphi.de
>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Uwe Schindler <uw...@thetaphi.de>.
Hi,
Sure!
I will play a little bit around. If needed, I can add some property to the lucene build to locate a "local repo" (I think we have that already).
I just have to figure out, if some local repo, copied to some Webserver works well as a full M2 repository, especially how to handle multiple intermediary releases in it.
Uwe
Am May 7, 2021 1:47:45 PM UTC schrieb David Smiley <ds...@apache.org>:
>Sounds great Uwe! Can you do it please?
>
>~ David Smiley
>Apache Lucene/Solr Search Developer
>http://www.linkedin.com/in/davidwsmiley
>
>
>On Fri, May 7, 2021 at 1:55 AM Uwe Schindler <uw...@thetaphi.de> wrote:
>
>> Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only
>> manually triggered.
>> It builds the maven artifacts into a local file system repo. As post
>build
>> job we publish the output folder on nighties repo like the ref guide.
>>
>> The version number is passed as -DreleaseVersion system property
>(e.g.
>> populated by Jenkins from the build number), like we do on artifacts
>builds
>> on jenkins anyways. It's no snapshot anymore, but like an half
>official
>> build with some custom version internal to our process.
>>
>> If you want to upgrade Solr's Lucene, just press "build" on jenkins,
>wait
>> for it to finish, and finally copy-paste the version number from
>Jenkins
>> build description into gradle dependency version file.
>>
>> Uwe
>>
>> Uwe
>>
>> Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett <
>> casstargett@gmail.com>:
>>>
>>> It could be a manual process if that’s what you think is easiest and
>it
>>> could still be on nightlies. It’s just a curl command to push
>something up:
>>> https://nightlies.apache.org/authoring.html. If it is a manual
>process,
>>> I think it would be better for it to be hosted in a place any of us
>could
>>> access, in case you’re busy/something happens to you and we need to
>pin a
>>> different snapshot.
>>>
>>> I’m not sure I see a reason why Solr couldn’t have our own Jenkins
>job
>>> that built Lucene once a week (or on demand, or whatever cadence
>that
>>> works) and pushes the snapshot to nightlies - we don’t have to use
>one of
>>> Lucene’s jobs, do we?
>>>
>>> I feel like we could also cascade a new Lucene snapshot build into a
>>> “Lucene validation” Solr build that verifies everything is OK with a
>new
>>> snapshot before updating the hosted snapshot on nightlies (although,
>I
>>> don’t actually know how to do that, it just seems like something
>that could
>>> be done).
>>>
>>> Cassandra
>>> On May 6, 2021, 10:13 AM -0500, David Smiley <ds...@apache.org>,
>wrote:
>>>
>>> I asked on the Lucene dev list about possible use of the Nightlies
>>> server. We don't want to pollute nightlies on a regular basis (I
>think);
>>> this would be an on-demand thing. As such, I'm not sure a CI server
>is the
>>> best way to approach this vs a manual script publishing to an ASF
>personal
>>> Home space.
>>>
>>> ~ David Smiley
>>> Apache Lucene/Solr Search Developer
>>> http://www.linkedin.com/in/davidwsmiley
>>>
>>>
>>> On Mon, May 3, 2021 at 10:55 AM Cassandra Targett
><ca...@gmail.com>
>>> wrote:
>>>
>>>> I’m sort of surprised no one has mentioned the
>>>> https://nightlies.apache.org/ server, which could be used for this
>>>> purpose. Jenkins can push to it, and nothing gets deleted until we
>decide
>>>> to delete it (or overwrite it). Solr Operator builds go there as do
>drafts
>>>> of the Ref Guide pre-publication (in different directories now, but
>we’ll
>>>> fix that eventually).
>>>>
>>>> Cassandra
>>>> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>,
>wrote:
>>>>
>>>> RE "an external system like Maven" -- we're merely talking about
>adding
>>>> another JAR repo to the list of repos we already have. Heck, for
>this
>>>> limited purpose, we could even use http://home.apache.org/~dsmiley/
>>>> Note that the Lucene project already uses home dirs of some users
>for
>>>> benchmark data. If we were talking about adding a Maven *build*
>then I
>>>> would totally appreciate your concern.
>>>>
>>>> I volunteer to use my space for this purpose.
>>>>
>>>> ~ David Smiley
>>>> Apache Lucene/Solr Search Developer
>>>> http://www.linkedin.com/in/davidwsmiley
>>>>
>>>>
>>>> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
>>>> ichattopadhyaya@gmail.com> wrote:
>>>>
>>>>> > Let’s not complicate things.
>>>>> By bringing in external systems like Maven, I think we're
>complicating
>>>>> things even though a straight forward way (git submodules) exists.
>>>>>
>>>>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl
><ja...@cominvent.com>
>>>>> wrote:
>>>>>
>>>>>> Sub modules is for organizing internal repos, not for pulling in
>>>>>> external deps. Let’s not complicate things. And once we switch
>main to 10.x
>>>>>> we’d need to use pure jar dependencies in branch_9x to depend
>upon actually
>>>>>> released and voted Lucene binaries.
>>>>>>
>>>>>> We need some tooling to smoothly work with bleeding edge Lucene
>>>>>> including local snapshot builds with not yet pushed changes to
>Lucene. I’d
>>>>>> rather put in some work to establish such tooling or procedures.
>>>>>>
>>>>>> Jan Høydahl
>>>>>>
>>>>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>>>>>> ichattopadhyaya@gmail.com>:
>>>>>>
>>>>>>
>>>>>> > What submodules don't solve is releases - if you're
>>>>>> > on a
>>>>>> particular unreleased Lucene version then releasing
>>>>>> > Solr would still mean you need some kind of
>>>>>> > "public" pinned Lucene release for the
>>>>>> > Mavenworld.
>>>>>>
>>>>>>
>>>>>> Can we then update the submodule to point to the release tag or
>sha
>>>>>> that Lucene got released from?
>>>>>>
>>>>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss,
><da...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> > Other than literally adding the git submodule, would we do
>anything
>>>>>>> else to modify the gradle build so that or do we (and
>Jenkinsfile) have to
>>>>>>> manually do a step to install Lucene before proceeding?
>>>>>>>
>>>>>>> Technically you add a submodule and then make a composite build
>from
>>>>>>> Solr side. I can provide a PR that does it if you wish... This
>is
>>>>>>> simple. What submodules don't solve is releases - if you're on a
>>>>>>> particular unreleased Lucene version then releasing Solr would
>still
>>>>>>> mean you need some kind of "public" pinned Lucene release for
>the
>>>>>>> Maven world. If you distribute the entire thing as binaries you
>can
>>>>>>> just publish a snapshot of Lucene code, of course.
>>>>>>>
>>>>>>> > I think adding git submodule means that we have to add back in
>all
>>>>>>> the build code for it.
>>>>>>>
>>>>>>> No. The submodule is just a reference to a particular repository
>(and
>>>>>>> commit) - the build code and remains nearly identical as it was
>with
>>>>>>> Lucene. Composite builds in gradle are quite nice in that
>they're
>>>>>>> (almost) transparent compared to dependency references.
>>>>>>>
>>>>>>> > At which point, I'd rather just copy and commit the
>>>>>>> > code they have so we don't have to learn another git system.
>>>>>>>
>>>>>>> It's not really a different git system - it's a mechanism of
>>>>>>> interacting with multiple repositories at once. Yes, it does add
>some
>>>>>>> additional complexity but I think sooner or later you'll have to
>>>>>>> interact with it anyway - many people favor monorepos these days
>and
>>>>>>> this is a common way to assemble them from fragmented
>>>>>>> sub-repositories.
>>>>>>>
>>>>>>> > I've
>>>>>>> > heard submodules don't play nice with Jenkins, but don't have
>any
>>>>>>> > direct experience with them.
>>>>>>>
>>>>>>> Some tools may require an additional flag to initialize and
>clone
>>>>>>> sub-modules on the initial pull. Or manually.
>>>>>>>
>>>>>>> git submodule init
>>>>>>> git submodule update --recursive.
>>>>>>>
>>>>>>> To summarize - I am not pushing for submodules, I do think
>they're a
>>>>>>> viable alternative but pinned Maven references are simpler. The
>>>>>>> problem with maven references is that we'd need a long(er) term
>maven
>>>>>>> repository where such pinned references would live (without
>being
>>>>>>> wiped out). Perhaps infra can help here and it'd solve the
>problem.
>>>>>>>
>>>>>>> Dawid
>>>>>>>
>>>>>>>
>---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>>>>
>>>>>>>
>> --
>> Uwe Schindler
>> Achterdiek 19, 28357 Bremen
>> https://www.thetaphi.de
>>
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
Re: Proposal to pin the Lucene snapshot version on main
Posted by David Smiley <ds...@apache.org>.
Sounds great Uwe! Can you do it please?
~ David Smiley
Apache Lucene/Solr Search Developer
http://www.linkedin.com/in/davidwsmiley
On Fri, May 7, 2021 at 1:55 AM Uwe Schindler <uw...@thetaphi.de> wrote:
> Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only
> manually triggered.
> It builds the maven artifacts into a local file system repo. As post build
> job we publish the output folder on nighties repo like the ref guide.
>
> The version number is passed as -DreleaseVersion system property (e.g.
> populated by Jenkins from the build number), like we do on artifacts builds
> on jenkins anyways. It's no snapshot anymore, but like an half official
> build with some custom version internal to our process.
>
> If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait
> for it to finish, and finally copy-paste the version number from Jenkins
> build description into gradle dependency version file.
>
> Uwe
>
> Uwe
>
> Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett <
> casstargett@gmail.com>:
>>
>> It could be a manual process if that’s what you think is easiest and it
>> could still be on nightlies. It’s just a curl command to push something up:
>> https://nightlies.apache.org/authoring.html. If it is a manual process,
>> I think it would be better for it to be hosted in a place any of us could
>> access, in case you’re busy/something happens to you and we need to pin a
>> different snapshot.
>>
>> I’m not sure I see a reason why Solr couldn’t have our own Jenkins job
>> that built Lucene once a week (or on demand, or whatever cadence that
>> works) and pushes the snapshot to nightlies - we don’t have to use one of
>> Lucene’s jobs, do we?
>>
>> I feel like we could also cascade a new Lucene snapshot build into a
>> “Lucene validation” Solr build that verifies everything is OK with a new
>> snapshot before updating the hosted snapshot on nightlies (although, I
>> don’t actually know how to do that, it just seems like something that could
>> be done).
>>
>> Cassandra
>> On May 6, 2021, 10:13 AM -0500, David Smiley <ds...@apache.org>, wrote:
>>
>> I asked on the Lucene dev list about possible use of the Nightlies
>> server. We don't want to pollute nightlies on a regular basis (I think);
>> this would be an on-demand thing. As such, I'm not sure a CI server is the
>> best way to approach this vs a manual script publishing to an ASF personal
>> Home space.
>>
>> ~ David Smiley
>> Apache Lucene/Solr Search Developer
>> http://www.linkedin.com/in/davidwsmiley
>>
>>
>> On Mon, May 3, 2021 at 10:55 AM Cassandra Targett <ca...@gmail.com>
>> wrote:
>>
>>> I’m sort of surprised no one has mentioned the
>>> https://nightlies.apache.org/ server, which could be used for this
>>> purpose. Jenkins can push to it, and nothing gets deleted until we decide
>>> to delete it (or overwrite it). Solr Operator builds go there as do drafts
>>> of the Ref Guide pre-publication (in different directories now, but we’ll
>>> fix that eventually).
>>>
>>> Cassandra
>>> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>, wrote:
>>>
>>> RE "an external system like Maven" -- we're merely talking about adding
>>> another JAR repo to the list of repos we already have. Heck, for this
>>> limited purpose, we could even use http://home.apache.org/~dsmiley/
>>> Note that the Lucene project already uses home dirs of some users for
>>> benchmark data. If we were talking about adding a Maven *build* then I
>>> would totally appreciate your concern.
>>>
>>> I volunteer to use my space for this purpose.
>>>
>>> ~ David Smiley
>>> Apache Lucene/Solr Search Developer
>>> http://www.linkedin.com/in/davidwsmiley
>>>
>>>
>>> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
>>> ichattopadhyaya@gmail.com> wrote:
>>>
>>>> > Let’s not complicate things.
>>>> By bringing in external systems like Maven, I think we're complicating
>>>> things even though a straight forward way (git submodules) exists.
>>>>
>>>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com>
>>>> wrote:
>>>>
>>>>> Sub modules is for organizing internal repos, not for pulling in
>>>>> external deps. Let’s not complicate things. And once we switch main to 10.x
>>>>> we’d need to use pure jar dependencies in branch_9x to depend upon actually
>>>>> released and voted Lucene binaries.
>>>>>
>>>>> We need some tooling to smoothly work with bleeding edge Lucene
>>>>> including local snapshot builds with not yet pushed changes to Lucene. I’d
>>>>> rather put in some work to establish such tooling or procedures.
>>>>>
>>>>> Jan Høydahl
>>>>>
>>>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>>>>> ichattopadhyaya@gmail.com>:
>>>>>
>>>>>
>>>>> > What submodules don't solve is releases - if you're
>>>>> > on a
>>>>> particular unreleased Lucene version then releasing
>>>>> > Solr would still mean you need some kind of
>>>>> > "public" pinned Lucene release for the
>>>>> > Mavenworld.
>>>>>
>>>>>
>>>>> Can we then update the submodule to point to the release tag or sha
>>>>> that Lucene got released from?
>>>>>
>>>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> > Other than literally adding the git submodule, would we do anything
>>>>>> else to modify the gradle build so that or do we (and Jenkinsfile) have to
>>>>>> manually do a step to install Lucene before proceeding?
>>>>>>
>>>>>> Technically you add a submodule and then make a composite build from
>>>>>> Solr side. I can provide a PR that does it if you wish... This is
>>>>>> simple. What submodules don't solve is releases - if you're on a
>>>>>> particular unreleased Lucene version then releasing Solr would still
>>>>>> mean you need some kind of "public" pinned Lucene release for the
>>>>>> Maven world. If you distribute the entire thing as binaries you can
>>>>>> just publish a snapshot of Lucene code, of course.
>>>>>>
>>>>>> > I think adding git submodule means that we have to add back in all
>>>>>> the build code for it.
>>>>>>
>>>>>> No. The submodule is just a reference to a particular repository (and
>>>>>> commit) - the build code and remains nearly identical as it was with
>>>>>> Lucene. Composite builds in gradle are quite nice in that they're
>>>>>> (almost) transparent compared to dependency references.
>>>>>>
>>>>>> > At which point, I'd rather just copy and commit the
>>>>>> > code they have so we don't have to learn another git system.
>>>>>>
>>>>>> It's not really a different git system - it's a mechanism of
>>>>>> interacting with multiple repositories at once. Yes, it does add some
>>>>>> additional complexity but I think sooner or later you'll have to
>>>>>> interact with it anyway - many people favor monorepos these days and
>>>>>> this is a common way to assemble them from fragmented
>>>>>> sub-repositories.
>>>>>>
>>>>>> > I've
>>>>>> > heard submodules don't play nice with Jenkins, but don't have any
>>>>>> > direct experience with them.
>>>>>>
>>>>>> Some tools may require an additional flag to initialize and clone
>>>>>> sub-modules on the initial pull. Or manually.
>>>>>>
>>>>>> git submodule init
>>>>>> git submodule update --recursive.
>>>>>>
>>>>>> To summarize - I am not pushing for submodules, I do think they're a
>>>>>> viable alternative but pinned Maven references are simpler. The
>>>>>> problem with maven references is that we'd need a long(er) term maven
>>>>>> repository where such pinned references would live (without being
>>>>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>>>>
>>>>>> Dawid
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>>>
>>>>>>
> --
> Uwe Schindler
> Achterdiek 19, 28357 Bremen
> https://www.thetaphi.de
>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Uwe Schindler <uw...@thetaphi.de>.
Hi Cassandra. Sure, We can create a job on ASF Jenkins that is only manually triggered.
It builds the maven artifacts into a local file system repo. As post build job we publish the output folder on nighties repo like the ref guide.
The version number is passed as -DreleaseVersion system property (e.g. populated by Jenkins from the build number), like we do on artifacts builds on jenkins anyways. It's no snapshot anymore, but like an half official build with some custom version internal to our process.
If you want to upgrade Solr's Lucene, just press "build" on jenkins, wait for it to finish, and finally copy-paste the version number from Jenkins build description into gradle dependency version file.
Uwe
Uwe
Am May 6, 2021 8:13:00 PM UTC schrieb Cassandra Targett <ca...@gmail.com>:
>It could be a manual process if that’s what you think is easiest and it
>could still be on nightlies. It’s just a curl command to push something
>up: https://nightlies.apache.org/authoring.html. If it is a manual
>process, I think it would be better for it to be hosted in a place any
>of us could access, in case you’re busy/something happens to you and we
>need to pin a different snapshot.
>
>I’m not sure I see a reason why Solr couldn’t have our own Jenkins job
>that built Lucene once a week (or on demand, or whatever cadence that
>works) and pushes the snapshot to nightlies - we don’t have to use one
>of Lucene’s jobs, do we?
>
>I feel like we could also cascade a new Lucene snapshot build into a
>“Lucene validation” Solr build that verifies everything is OK with a
>new snapshot before updating the hosted snapshot on nightlies
>(although, I don’t actually know how to do that, it just seems like
>something that could be done).
>
>Cassandra
>On May 6, 2021, 10:13 AM -0500, David Smiley <ds...@apache.org>,
>wrote:
>> I asked on the Lucene dev list about possible use of the Nightlies
>server. We don't want to pollute nightlies on a regular basis (I
>think); this would be an on-demand thing. As such, I'm not sure a CI
>server is the best way to approach this vs a manual script publishing
>to an ASF personal Home space.
>>
>> ~ David Smiley
>> Apache Lucene/Solr Search Developer
>> http://www.linkedin.com/in/davidwsmiley
>>
>>
>> > On Mon, May 3, 2021 at 10:55 AM Cassandra Targett
><ca...@gmail.com> wrote:
>> > > I’m sort of surprised no one has mentioned
>the https://nightlies.apache.org/ server, which could be used for this
>purpose. Jenkins can push to it, and nothing gets deleted until we
>decide to delete it (or overwrite it). Solr Operator builds go there as
>do drafts of the Ref Guide pre-publication (in different directories
>now, but we’ll fix that eventually).
>> > >
>> > > Cassandra
>> > > On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>,
>wrote:
>> > > > RE "an external system like Maven" -- we're merely talking
>about adding another JAR repo to the list of repos we already have.
>Heck, for this limited purpose, we could even
>use http://home.apache.org/~dsmiley/ Note that the Lucene project
>already uses home dirs of some users for benchmark data. If we were
>talking about adding a Maven *build* then I would totally appreciate
>your concern.
>> > > >
>> > > > I volunteer to use my space for this purpose.
>> > > >
>> > > > ~ David Smiley
>> > > > Apache Lucene/Solr Search Developer
>> > > > http://www.linkedin.com/in/davidwsmiley
>> > > >
>> > > >
>> > > > > On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya
><ic...@gmail.com> wrote:
>> > > > > > > Let’s not complicate things.
>> > > > > > By bringing in external systems like Maven, I think we're
>complicating things even though a straight forward way (git submodules)
>exists.
>> > > > > >
>> > > > > > > On Sat, May 1, 2021 at 5:00 PM Jan Høydahl
><ja...@cominvent.com> wrote:
>> > > > > > > > Sub modules is for organizing internal repos, not for
>pulling in external deps. Let’s not complicate things. And once we
>switch main to 10.x we’d need to use pure jar dependencies in branch_9x
>to depend upon actually released and voted Lucene binaries.
>> > > > > > > >
>> > > > > > > > We need some tooling to smoothly work with bleeding
>edge Lucene including local snapshot builds with not yet pushed changes
>to Lucene. I’d rather put in some work to establish such tooling or
>procedures.
>> > > > > > > >
>> > > > > > > > Jan Høydahl
>> > > > > > > >
>> > > > > > > > > 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya
><ic...@gmail.com>:
>> > > > > > > > >
>> > > > > > > > > > What submodules don't solve is releases - if you're
>> > > > > > > > > > on a
>> > > > > > > > > particular unreleased Lucene version then releasing
>> > > > > > > > > > Solr would still mean you need some kind of
>> > > > > > > > > > "public" pinned Lucene release for the
>> > > > > > > > > > Mavenworld.
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > > > Can we then update the submodule to point to the
>release tag or sha that Lucene got released from?
>> > > > > > > > > >
>> > > > > > > > > > On Sat, 1 May, 2021, 11:45 am Dawid Weiss,
><da...@gmail.com> wrote:
>> > > > > > > > > > > > Other than literally adding the git submodule,
>would we do anything else to modify the gradle build so that or do we
>(and Jenkinsfile) have to manually do a step to install Lucene before
>proceeding?
>> > > > > > > > > > >
>> > > > > > > > > > > Technically you add a submodule and then make a
>composite build from
>> > > > > > > > > > > Solr side. I can provide a PR that does it if you
>wish... This is
>> > > > > > > > > > > simple. What submodules don't solve is releases -
>if you're on a
>> > > > > > > > > > > particular unreleased Lucene version then
>releasing Solr would still
>> > > > > > > > > > > mean you need some kind of "public" pinned Lucene
>release for the
>> > > > > > > > > > > Maven world. If you distribute the entire thing
>as binaries you can
>> > > > > > > > > > > just publish a snapshot of Lucene code, of
>course.
>> > > > > > > > > > >
>> > > > > > > > > > > > I think adding git submodule means that we have
>to add back in all the build code for it.
>> > > > > > > > > > >
>> > > > > > > > > > > No. The submodule is just a reference to a
>particular repository (and
>> > > > > > > > > > > commit) - the build code and remains nearly
>identical as it was with
>> > > > > > > > > > > Lucene. Composite builds in gradle are quite nice
>in that they're
>> > > > > > > > > > > (almost) transparent compared to dependency
>references.
>> > > > > > > > > > >
>> > > > > > > > > > > > At which point, I'd rather just copy and commit
>the
>> > > > > > > > > > > > code they have so we don't have to learn
>another git system.
>> > > > > > > > > > >
>> > > > > > > > > > > It's not really a different git system - it's a
>mechanism of
>> > > > > > > > > > > interacting with multiple repositories at once.
>Yes, it does add some
>> > > > > > > > > > > additional complexity but I think sooner or later
>you'll have to
>> > > > > > > > > > > interact with it anyway - many people favor
>monorepos these days and
>> > > > > > > > > > > this is a common way to assemble them from
>fragmented
>> > > > > > > > > > > sub-repositories.
>> > > > > > > > > > >
>> > > > > > > > > > > > I've
>> > > > > > > > > > > > heard submodules don't play nice with Jenkins,
>but don't have any
>> > > > > > > > > > > > direct experience with them.
>> > > > > > > > > > >
>> > > > > > > > > > > Some tools may require an additional flag to
>initialize and clone
>> > > > > > > > > > > sub-modules on the initial pull. Or manually.
>> > > > > > > > > > >
>> > > > > > > > > > > git submodule init
>> > > > > > > > > > > git submodule update --recursive.
>> > > > > > > > > > >
>> > > > > > > > > > > To summarize - I am not pushing for submodules, I
>do think they're a
>> > > > > > > > > > > viable alternative but pinned Maven references
>are simpler. The
>> > > > > > > > > > > problem with maven references is that we'd need a
>long(er) term maven
>> > > > > > > > > > > repository where such pinned references would
>live (without being
>> > > > > > > > > > > wiped out). Perhaps infra can help here and it'd
>solve the problem.
>> > > > > > > > > > >
>> > > > > > > > > > > Dawid
>> > > > > > > > > > >
>> > > > > > > > > > >
>---------------------------------------------------------------------
>> > > > > > > > > > > To unsubscribe, e-mail:
>dev-unsubscribe@solr.apache.org
>> > > > > > > > > > > For additional commands, e-mail:
>dev-help@solr.apache.org
>> > > > > > > > > > >
--
Uwe Schindler
Achterdiek 19, 28357 Bremen
https://www.thetaphi.de
Re: Proposal to pin the Lucene snapshot version on main
Posted by Cassandra Targett <ca...@gmail.com>.
It could be a manual process if that’s what you think is easiest and it could still be on nightlies. It’s just a curl command to push something up: https://nightlies.apache.org/authoring.html. If it is a manual process, I think it would be better for it to be hosted in a place any of us could access, in case you’re busy/something happens to you and we need to pin a different snapshot.
I’m not sure I see a reason why Solr couldn’t have our own Jenkins job that built Lucene once a week (or on demand, or whatever cadence that works) and pushes the snapshot to nightlies - we don’t have to use one of Lucene’s jobs, do we?
I feel like we could also cascade a new Lucene snapshot build into a “Lucene validation” Solr build that verifies everything is OK with a new snapshot before updating the hosted snapshot on nightlies (although, I don’t actually know how to do that, it just seems like something that could be done).
Cassandra
On May 6, 2021, 10:13 AM -0500, David Smiley <ds...@apache.org>, wrote:
> I asked on the Lucene dev list about possible use of the Nightlies server. We don't want to pollute nightlies on a regular basis (I think); this would be an on-demand thing. As such, I'm not sure a CI server is the best way to approach this vs a manual script publishing to an ASF personal Home space.
>
> ~ David Smiley
> Apache Lucene/Solr Search Developer
> http://www.linkedin.com/in/davidwsmiley
>
>
> > On Mon, May 3, 2021 at 10:55 AM Cassandra Targett <ca...@gmail.com> wrote:
> > > I’m sort of surprised no one has mentioned the https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
> > >
> > > Cassandra
> > > On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>, wrote:
> > > > RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
> > > >
> > > > I volunteer to use my space for this purpose.
> > > >
> > > > ~ David Smiley
> > > > Apache Lucene/Solr Search Developer
> > > > http://www.linkedin.com/in/davidwsmiley
> > > >
> > > >
> > > > > On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <ic...@gmail.com> wrote:
> > > > > > > Let’s not complicate things.
> > > > > > By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
> > > > > >
> > > > > > > On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com> wrote:
> > > > > > > > Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
> > > > > > > >
> > > > > > > > We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
> > > > > > > >
> > > > > > > > Jan Høydahl
> > > > > > > >
> > > > > > > > > 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <ic...@gmail.com>:
> > > > > > > > >
> > > > > > > > > > What submodules don't solve is releases - if you're
> > > > > > > > > > on a
> > > > > > > > > particular unreleased Lucene version then releasing
> > > > > > > > > > Solr would still mean you need some kind of
> > > > > > > > > > "public" pinned Lucene release for the
> > > > > > > > > > Mavenworld.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > Can we then update the submodule to point to the release tag or sha that Lucene got released from?
> > > > > > > > > >
> > > > > > > > > > On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com> wrote:
> > > > > > > > > > > > Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
> > > > > > > > > > >
> > > > > > > > > > > Technically you add a submodule and then make a composite build from
> > > > > > > > > > > Solr side. I can provide a PR that does it if you wish... This is
> > > > > > > > > > > simple. What submodules don't solve is releases - if you're on a
> > > > > > > > > > > particular unreleased Lucene version then releasing Solr would still
> > > > > > > > > > > mean you need some kind of "public" pinned Lucene release for the
> > > > > > > > > > > Maven world. If you distribute the entire thing as binaries you can
> > > > > > > > > > > just publish a snapshot of Lucene code, of course.
> > > > > > > > > > >
> > > > > > > > > > > > I think adding git submodule means that we have to add back in all the build code for it.
> > > > > > > > > > >
> > > > > > > > > > > No. The submodule is just a reference to a particular repository (and
> > > > > > > > > > > commit) - the build code and remains nearly identical as it was with
> > > > > > > > > > > Lucene. Composite builds in gradle are quite nice in that they're
> > > > > > > > > > > (almost) transparent compared to dependency references.
> > > > > > > > > > >
> > > > > > > > > > > > At which point, I'd rather just copy and commit the
> > > > > > > > > > > > code they have so we don't have to learn another git system.
> > > > > > > > > > >
> > > > > > > > > > > It's not really a different git system - it's a mechanism of
> > > > > > > > > > > interacting with multiple repositories at once. Yes, it does add some
> > > > > > > > > > > additional complexity but I think sooner or later you'll have to
> > > > > > > > > > > interact with it anyway - many people favor monorepos these days and
> > > > > > > > > > > this is a common way to assemble them from fragmented
> > > > > > > > > > > sub-repositories.
> > > > > > > > > > >
> > > > > > > > > > > > I've
> > > > > > > > > > > > heard submodules don't play nice with Jenkins, but don't have any
> > > > > > > > > > > > direct experience with them.
> > > > > > > > > > >
> > > > > > > > > > > Some tools may require an additional flag to initialize and clone
> > > > > > > > > > > sub-modules on the initial pull. Or manually.
> > > > > > > > > > >
> > > > > > > > > > > git submodule init
> > > > > > > > > > > git submodule update --recursive.
> > > > > > > > > > >
> > > > > > > > > > > To summarize - I am not pushing for submodules, I do think they're a
> > > > > > > > > > > viable alternative but pinned Maven references are simpler. The
> > > > > > > > > > > problem with maven references is that we'd need a long(er) term maven
> > > > > > > > > > > repository where such pinned references would live (without being
> > > > > > > > > > > wiped out). Perhaps infra can help here and it'd solve the problem.
> > > > > > > > > > >
> > > > > > > > > > > Dawid
> > > > > > > > > > >
> > > > > > > > > > > ---------------------------------------------------------------------
> > > > > > > > > > > To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
> > > > > > > > > > > For additional commands, e-mail: dev-help@solr.apache.org
> > > > > > > > > > >
Re: Proposal to pin the Lucene snapshot version on main
Posted by David Smiley <ds...@apache.org>.
I asked on the Lucene dev list about possible use of the Nightlies server.
We don't want to pollute nightlies on a regular basis (I think); this would
be an on-demand thing. As such, I'm not sure a CI server is the best way
to approach this vs a manual script publishing to an ASF personal Home
space.
~ David Smiley
Apache Lucene/Solr Search Developer
http://www.linkedin.com/in/davidwsmiley
On Mon, May 3, 2021 at 10:55 AM Cassandra Targett <ca...@gmail.com>
wrote:
> I’m sort of surprised no one has mentioned the
> https://nightlies.apache.org/ server, which could be used for this
> purpose. Jenkins can push to it, and nothing gets deleted until we decide
> to delete it (or overwrite it). Solr Operator builds go there as do drafts
> of the Ref Guide pre-publication (in different directories now, but we’ll
> fix that eventually).
>
> Cassandra
> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>, wrote:
>
> RE "an external system like Maven" -- we're merely talking about adding
> another JAR repo to the list of repos we already have. Heck, for this
> limited purpose, we could even use http://home.apache.org/~dsmiley/ Note
> that the Lucene project already uses home dirs of some users for benchmark
> data. If we were talking about adding a Maven *build* then I would totally
> appreciate your concern.
>
> I volunteer to use my space for this purpose.
>
> ~ David Smiley
> Apache Lucene/Solr Search Developer
> http://www.linkedin.com/in/davidwsmiley
>
>
> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
> ichattopadhyaya@gmail.com> wrote:
>
>> > Let’s not complicate things.
>> By bringing in external systems like Maven, I think we're complicating
>> things even though a straight forward way (git submodules) exists.
>>
>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com>
>> wrote:
>>
>>> Sub modules is for organizing internal repos, not for pulling in
>>> external deps. Let’s not complicate things. And once we switch main to 10.x
>>> we’d need to use pure jar dependencies in branch_9x to depend upon actually
>>> released and voted Lucene binaries.
>>>
>>> We need some tooling to smoothly work with bleeding edge Lucene
>>> including local snapshot builds with not yet pushed changes to Lucene. I’d
>>> rather put in some work to establish such tooling or procedures.
>>>
>>> Jan Høydahl
>>>
>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>>> ichattopadhyaya@gmail.com>:
>>>
>>>
>>> > What submodules don't solve is releases - if you're
>>> > on a
>>> particular unreleased Lucene version then releasing
>>> > Solr would still mean you need some kind of
>>> > "public" pinned Lucene release for the
>>> > Mavenworld.
>>>
>>>
>>> Can we then update the submodule to point to the release tag or sha that
>>> Lucene got released from?
>>>
>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com>
>>> wrote:
>>>
>>>> > Other than literally adding the git submodule, would we do anything
>>>> else to modify the gradle build so that or do we (and Jenkinsfile) have to
>>>> manually do a step to install Lucene before proceeding?
>>>>
>>>> Technically you add a submodule and then make a composite build from
>>>> Solr side. I can provide a PR that does it if you wish... This is
>>>> simple. What submodules don't solve is releases - if you're on a
>>>> particular unreleased Lucene version then releasing Solr would still
>>>> mean you need some kind of "public" pinned Lucene release for the
>>>> Maven world. If you distribute the entire thing as binaries you can
>>>> just publish a snapshot of Lucene code, of course.
>>>>
>>>> > I think adding git submodule means that we have to add back in all
>>>> the build code for it.
>>>>
>>>> No. The submodule is just a reference to a particular repository (and
>>>> commit) - the build code and remains nearly identical as it was with
>>>> Lucene. Composite builds in gradle are quite nice in that they're
>>>> (almost) transparent compared to dependency references.
>>>>
>>>> > At which point, I'd rather just copy and commit the
>>>> > code they have so we don't have to learn another git system.
>>>>
>>>> It's not really a different git system - it's a mechanism of
>>>> interacting with multiple repositories at once. Yes, it does add some
>>>> additional complexity but I think sooner or later you'll have to
>>>> interact with it anyway - many people favor monorepos these days and
>>>> this is a common way to assemble them from fragmented
>>>> sub-repositories.
>>>>
>>>> > I've
>>>> > heard submodules don't play nice with Jenkins, but don't have any
>>>> > direct experience with them.
>>>>
>>>> Some tools may require an additional flag to initialize and clone
>>>> sub-modules on the initial pull. Or manually.
>>>>
>>>> git submodule init
>>>> git submodule update --recursive.
>>>>
>>>> To summarize - I am not pushing for submodules, I do think they're a
>>>> viable alternative but pinned Maven references are simpler. The
>>>> problem with maven references is that we'd need a long(er) term maven
>>>> repository where such pinned references would live (without being
>>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>>
>>>> Dawid
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>
>>>>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Ishan Chattopadhyaya <ic...@gmail.com>.
Some that come to mind,
SOLR-5944
SOLR-13350
LUCENE-9302 / SOLR-14381
On Mon, May 3, 2021 at 11:31 PM Jan Høydahl <ja...@cominvent.com>
wrote:
> Can you give an example of a recent solr feature that needed such a
> workflow - I.e where it would be very annoying to have to do the Lucene
> part first and then the solr part, using a local snapshot version?
>
> Jan Høydahl
>
> 3. mai 2021 kl. 17:32 skrev Ishan Chattopadhyaya <
> ichattopadhyaya@gmail.com>:
>
>
> One of the other problems I have with maven, besides where will the
> snapshots go, is the local development workflow. If I were to work on a
> feature that needs changes to both Lucene and Solr, I would need to make
> Lucene changes in a separate git repo, push them to local Maven, have solr
> build against that and so on. This is considerably more complicated, to my
> mind, than working on a single repo (with the other repo being a submodule)
> and single project inside the IDE, which git submodule can allow us to do.
>
> On Mon, 3 May, 2021, 8:27 pm Houston Putman, <ho...@gmail.com>
> wrote:
>
>> I agree, Cassandra. The nightlies are a very good option that is very
>> easy to get started with.
>>
>> On Mon, May 3, 2021 at 9:55 AM Cassandra Targett <ca...@gmail.com>
>> wrote:
>>
>>> I’m sort of surprised no one has mentioned the
>>> https://nightlies.apache.org/ server, which could be used for this
>>> purpose. Jenkins can push to it, and nothing gets deleted until we decide
>>> to delete it (or overwrite it). Solr Operator builds go there as do drafts
>>> of the Ref Guide pre-publication (in different directories now, but we’ll
>>> fix that eventually).
>>>
>>> Cassandra
>>> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>, wrote:
>>>
>>> RE "an external system like Maven" -- we're merely talking about adding
>>> another JAR repo to the list of repos we already have. Heck, for this
>>> limited purpose, we could even use http://home.apache.org/~dsmiley/
>>> Note that the Lucene project already uses home dirs of some users for
>>> benchmark data. If we were talking about adding a Maven *build* then I
>>> would totally appreciate your concern.
>>>
>>> I volunteer to use my space for this purpose.
>>>
>>> ~ David Smiley
>>> Apache Lucene/Solr Search Developer
>>> http://www.linkedin.com/in/davidwsmiley
>>>
>>>
>>> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
>>> ichattopadhyaya@gmail.com> wrote:
>>>
>>>> > Let’s not complicate things.
>>>> By bringing in external systems like Maven, I think we're complicating
>>>> things even though a straight forward way (git submodules) exists.
>>>>
>>>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com>
>>>> wrote:
>>>>
>>>>> Sub modules is for organizing internal repos, not for pulling in
>>>>> external deps. Let’s not complicate things. And once we switch main to 10.x
>>>>> we’d need to use pure jar dependencies in branch_9x to depend upon actually
>>>>> released and voted Lucene binaries.
>>>>>
>>>>> We need some tooling to smoothly work with bleeding edge Lucene
>>>>> including local snapshot builds with not yet pushed changes to Lucene. I’d
>>>>> rather put in some work to establish such tooling or procedures.
>>>>>
>>>>> Jan Høydahl
>>>>>
>>>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>>>>> ichattopadhyaya@gmail.com>:
>>>>>
>>>>>
>>>>> > What submodules don't solve is releases - if you're
>>>>> > on a
>>>>> particular unreleased Lucene version then releasing
>>>>> > Solr would still mean you need some kind of
>>>>> > "public" pinned Lucene release for the
>>>>> > Mavenworld.
>>>>>
>>>>>
>>>>> Can we then update the submodule to point to the release tag or sha
>>>>> that Lucene got released from?
>>>>>
>>>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> > Other than literally adding the git submodule, would we do anything
>>>>>> else to modify the gradle build so that or do we (and Jenkinsfile) have to
>>>>>> manually do a step to install Lucene before proceeding?
>>>>>>
>>>>>> Technically you add a submodule and then make a composite build from
>>>>>> Solr side. I can provide a PR that does it if you wish... This is
>>>>>> simple. What submodules don't solve is releases - if you're on a
>>>>>> particular unreleased Lucene version then releasing Solr would still
>>>>>> mean you need some kind of "public" pinned Lucene release for the
>>>>>> Maven world. If you distribute the entire thing as binaries you can
>>>>>> just publish a snapshot of Lucene code, of course.
>>>>>>
>>>>>> > I think adding git submodule means that we have to add back in all
>>>>>> the build code for it.
>>>>>>
>>>>>> No. The submodule is just a reference to a particular repository (and
>>>>>> commit) - the build code and remains nearly identical as it was with
>>>>>> Lucene. Composite builds in gradle are quite nice in that they're
>>>>>> (almost) transparent compared to dependency references.
>>>>>>
>>>>>> > At which point, I'd rather just copy and commit the
>>>>>> > code they have so we don't have to learn another git system.
>>>>>>
>>>>>> It's not really a different git system - it's a mechanism of
>>>>>> interacting with multiple repositories at once. Yes, it does add some
>>>>>> additional complexity but I think sooner or later you'll have to
>>>>>> interact with it anyway - many people favor monorepos these days and
>>>>>> this is a common way to assemble them from fragmented
>>>>>> sub-repositories.
>>>>>>
>>>>>> > I've
>>>>>> > heard submodules don't play nice with Jenkins, but don't have any
>>>>>> > direct experience with them.
>>>>>>
>>>>>> Some tools may require an additional flag to initialize and clone
>>>>>> sub-modules on the initial pull. Or manually.
>>>>>>
>>>>>> git submodule init
>>>>>> git submodule update --recursive.
>>>>>>
>>>>>> To summarize - I am not pushing for submodules, I do think they're a
>>>>>> viable alternative but pinned Maven references are simpler. The
>>>>>> problem with maven references is that we'd need a long(er) term maven
>>>>>> repository where such pinned references would live (without being
>>>>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>>>>
>>>>>> Dawid
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>>>
>>>>>>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Jan Høydahl <ja...@cominvent.com>.
Can you give an example of a recent solr feature that needed such a workflow - I.e where it would be very annoying to have to do the Lucene part first and then the solr part, using a local snapshot version?
Jan Høydahl
> 3. mai 2021 kl. 17:32 skrev Ishan Chattopadhyaya <ic...@gmail.com>:
>
>
> One of the other problems I have with maven, besides where will the snapshots go, is the local development workflow. If I were to work on a feature that needs changes to both Lucene and Solr, I would need to make Lucene changes in a separate git repo, push them to local Maven, have solr build against that and so on. This is considerably more complicated, to my mind, than working on a single repo (with the other repo being a submodule) and single project inside the IDE, which git submodule can allow us to do.
>
>> On Mon, 3 May, 2021, 8:27 pm Houston Putman, <ho...@gmail.com> wrote:
>> I agree, Cassandra. The nightlies are a very good option that is very easy to get started with.
>>
>>> On Mon, May 3, 2021 at 9:55 AM Cassandra Targett <ca...@gmail.com> wrote:
>>> I’m sort of surprised no one has mentioned the https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
>>>
>>> Cassandra
>>>> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>, wrote:
>>>> RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
>>>>
>>>> I volunteer to use my space for this purpose.
>>>>
>>>> ~ David Smiley
>>>> Apache Lucene/Solr Search Developer
>>>> http://www.linkedin.com/in/davidwsmiley
>>>>
>>>>
>>>>> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <ic...@gmail.com> wrote:
>>>>> > Let’s not complicate things.
>>>>> By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
>>>>>
>>>>>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com> wrote:
>>>>>> Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
>>>>>>
>>>>>> We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
>>>>>>
>>>>>> Jan Høydahl
>>>>>>
>>>>>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <ic...@gmail.com>:
>>>>>>>
>>>>>>>
>>>>>>> > What submodules don't solve is releases - if you're
>>>>>>> > on a
>>>>>>> particular unreleased Lucene version then releasing
>>>>>>> > Solr would still mean you need some kind of
>>>>>>> > "public" pinned Lucene release for the
>>>>>>> > Mavenworld.
>>>>>>>
>>>>>>>
>>>>>>> Can we then update the submodule to point to the release tag or sha that Lucene got released from?
>>>>>>>
>>>>>>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com> wrote:
>>>>>>>> > Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
>>>>>>>>
>>>>>>>> Technically you add a submodule and then make a composite build from
>>>>>>>> Solr side. I can provide a PR that does it if you wish... This is
>>>>>>>> simple. What submodules don't solve is releases - if you're on a
>>>>>>>> particular unreleased Lucene version then releasing Solr would still
>>>>>>>> mean you need some kind of "public" pinned Lucene release for the
>>>>>>>> Maven world. If you distribute the entire thing as binaries you can
>>>>>>>> just publish a snapshot of Lucene code, of course.
>>>>>>>>
>>>>>>>> > I think adding git submodule means that we have to add back in all the build code for it.
>>>>>>>>
>>>>>>>> No. The submodule is just a reference to a particular repository (and
>>>>>>>> commit) - the build code and remains nearly identical as it was with
>>>>>>>> Lucene. Composite builds in gradle are quite nice in that they're
>>>>>>>> (almost) transparent compared to dependency references.
>>>>>>>>
>>>>>>>> > At which point, I'd rather just copy and commit the
>>>>>>>> > code they have so we don't have to learn another git system.
>>>>>>>>
>>>>>>>> It's not really a different git system - it's a mechanism of
>>>>>>>> interacting with multiple repositories at once. Yes, it does add some
>>>>>>>> additional complexity but I think sooner or later you'll have to
>>>>>>>> interact with it anyway - many people favor monorepos these days and
>>>>>>>> this is a common way to assemble them from fragmented
>>>>>>>> sub-repositories.
>>>>>>>>
>>>>>>>> > I've
>>>>>>>> > heard submodules don't play nice with Jenkins, but don't have any
>>>>>>>> > direct experience with them.
>>>>>>>>
>>>>>>>> Some tools may require an additional flag to initialize and clone
>>>>>>>> sub-modules on the initial pull. Or manually.
>>>>>>>>
>>>>>>>> git submodule init
>>>>>>>> git submodule update --recursive.
>>>>>>>>
>>>>>>>> To summarize - I am not pushing for submodules, I do think they're a
>>>>>>>> viable alternative but pinned Maven references are simpler. The
>>>>>>>> problem with maven references is that we'd need a long(er) term maven
>>>>>>>> repository where such pinned references would live (without being
>>>>>>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>>>>>>
>>>>>>>> Dawid
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>>>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>>>>>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Ishan Chattopadhyaya <ic...@gmail.com>.
One of the other problems I have with maven, besides where will the
snapshots go, is the local development workflow. If I were to work on a
feature that needs changes to both Lucene and Solr, I would need to make
Lucene changes in a separate git repo, push them to local Maven, have solr
build against that and so on. This is considerably more complicated, to my
mind, than working on a single repo (with the other repo being a submodule)
and single project inside the IDE, which git submodule can allow us to do.
On Mon, 3 May, 2021, 8:27 pm Houston Putman, <ho...@gmail.com>
wrote:
> I agree, Cassandra. The nightlies are a very good option that is very easy
> to get started with.
>
> On Mon, May 3, 2021 at 9:55 AM Cassandra Targett <ca...@gmail.com>
> wrote:
>
>> I’m sort of surprised no one has mentioned the
>> https://nightlies.apache.org/ server, which could be used for this
>> purpose. Jenkins can push to it, and nothing gets deleted until we decide
>> to delete it (or overwrite it). Solr Operator builds go there as do drafts
>> of the Ref Guide pre-publication (in different directories now, but we’ll
>> fix that eventually).
>>
>> Cassandra
>> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>, wrote:
>>
>> RE "an external system like Maven" -- we're merely talking about adding
>> another JAR repo to the list of repos we already have. Heck, for this
>> limited purpose, we could even use http://home.apache.org/~dsmiley/
>> Note that the Lucene project already uses home dirs of some users for
>> benchmark data. If we were talking about adding a Maven *build* then I
>> would totally appreciate your concern.
>>
>> I volunteer to use my space for this purpose.
>>
>> ~ David Smiley
>> Apache Lucene/Solr Search Developer
>> http://www.linkedin.com/in/davidwsmiley
>>
>>
>> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
>> ichattopadhyaya@gmail.com> wrote:
>>
>>> > Let’s not complicate things.
>>> By bringing in external systems like Maven, I think we're complicating
>>> things even though a straight forward way (git submodules) exists.
>>>
>>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com>
>>> wrote:
>>>
>>>> Sub modules is for organizing internal repos, not for pulling in
>>>> external deps. Let’s not complicate things. And once we switch main to 10.x
>>>> we’d need to use pure jar dependencies in branch_9x to depend upon actually
>>>> released and voted Lucene binaries.
>>>>
>>>> We need some tooling to smoothly work with bleeding edge Lucene
>>>> including local snapshot builds with not yet pushed changes to Lucene. I’d
>>>> rather put in some work to establish such tooling or procedures.
>>>>
>>>> Jan Høydahl
>>>>
>>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>>>> ichattopadhyaya@gmail.com>:
>>>>
>>>>
>>>> > What submodules don't solve is releases - if you're
>>>> > on a
>>>> particular unreleased Lucene version then releasing
>>>> > Solr would still mean you need some kind of
>>>> > "public" pinned Lucene release for the
>>>> > Mavenworld.
>>>>
>>>>
>>>> Can we then update the submodule to point to the release tag or sha
>>>> that Lucene got released from?
>>>>
>>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com>
>>>> wrote:
>>>>
>>>>> > Other than literally adding the git submodule, would we do anything
>>>>> else to modify the gradle build so that or do we (and Jenkinsfile) have to
>>>>> manually do a step to install Lucene before proceeding?
>>>>>
>>>>> Technically you add a submodule and then make a composite build from
>>>>> Solr side. I can provide a PR that does it if you wish... This is
>>>>> simple. What submodules don't solve is releases - if you're on a
>>>>> particular unreleased Lucene version then releasing Solr would still
>>>>> mean you need some kind of "public" pinned Lucene release for the
>>>>> Maven world. If you distribute the entire thing as binaries you can
>>>>> just publish a snapshot of Lucene code, of course.
>>>>>
>>>>> > I think adding git submodule means that we have to add back in all
>>>>> the build code for it.
>>>>>
>>>>> No. The submodule is just a reference to a particular repository (and
>>>>> commit) - the build code and remains nearly identical as it was with
>>>>> Lucene. Composite builds in gradle are quite nice in that they're
>>>>> (almost) transparent compared to dependency references.
>>>>>
>>>>> > At which point, I'd rather just copy and commit the
>>>>> > code they have so we don't have to learn another git system.
>>>>>
>>>>> It's not really a different git system - it's a mechanism of
>>>>> interacting with multiple repositories at once. Yes, it does add some
>>>>> additional complexity but I think sooner or later you'll have to
>>>>> interact with it anyway - many people favor monorepos these days and
>>>>> this is a common way to assemble them from fragmented
>>>>> sub-repositories.
>>>>>
>>>>> > I've
>>>>> > heard submodules don't play nice with Jenkins, but don't have any
>>>>> > direct experience with them.
>>>>>
>>>>> Some tools may require an additional flag to initialize and clone
>>>>> sub-modules on the initial pull. Or manually.
>>>>>
>>>>> git submodule init
>>>>> git submodule update --recursive.
>>>>>
>>>>> To summarize - I am not pushing for submodules, I do think they're a
>>>>> viable alternative but pinned Maven references are simpler. The
>>>>> problem with maven references is that we'd need a long(er) term maven
>>>>> repository where such pinned references would live (without being
>>>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>>>
>>>>> Dawid
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>>
>>>>>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Houston Putman <ho...@gmail.com>.
I agree, Cassandra. The nightlies are a very good option that is very easy
to get started with.
On Mon, May 3, 2021 at 9:55 AM Cassandra Targett <ca...@gmail.com>
wrote:
> I’m sort of surprised no one has mentioned the
> https://nightlies.apache.org/ server, which could be used for this
> purpose. Jenkins can push to it, and nothing gets deleted until we decide
> to delete it (or overwrite it). Solr Operator builds go there as do drafts
> of the Ref Guide pre-publication (in different directories now, but we’ll
> fix that eventually).
>
> Cassandra
> On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>, wrote:
>
> RE "an external system like Maven" -- we're merely talking about adding
> another JAR repo to the list of repos we already have. Heck, for this
> limited purpose, we could even use http://home.apache.org/~dsmiley/ Note
> that the Lucene project already uses home dirs of some users for benchmark
> data. If we were talking about adding a Maven *build* then I would totally
> appreciate your concern.
>
> I volunteer to use my space for this purpose.
>
> ~ David Smiley
> Apache Lucene/Solr Search Developer
> http://www.linkedin.com/in/davidwsmiley
>
>
> On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
> ichattopadhyaya@gmail.com> wrote:
>
>> > Let’s not complicate things.
>> By bringing in external systems like Maven, I think we're complicating
>> things even though a straight forward way (git submodules) exists.
>>
>> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com>
>> wrote:
>>
>>> Sub modules is for organizing internal repos, not for pulling in
>>> external deps. Let’s not complicate things. And once we switch main to 10.x
>>> we’d need to use pure jar dependencies in branch_9x to depend upon actually
>>> released and voted Lucene binaries.
>>>
>>> We need some tooling to smoothly work with bleeding edge Lucene
>>> including local snapshot builds with not yet pushed changes to Lucene. I’d
>>> rather put in some work to establish such tooling or procedures.
>>>
>>> Jan Høydahl
>>>
>>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>>> ichattopadhyaya@gmail.com>:
>>>
>>>
>>> > What submodules don't solve is releases - if you're
>>> > on a
>>> particular unreleased Lucene version then releasing
>>> > Solr would still mean you need some kind of
>>> > "public" pinned Lucene release for the
>>> > Mavenworld.
>>>
>>>
>>> Can we then update the submodule to point to the release tag or sha that
>>> Lucene got released from?
>>>
>>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com>
>>> wrote:
>>>
>>>> > Other than literally adding the git submodule, would we do anything
>>>> else to modify the gradle build so that or do we (and Jenkinsfile) have to
>>>> manually do a step to install Lucene before proceeding?
>>>>
>>>> Technically you add a submodule and then make a composite build from
>>>> Solr side. I can provide a PR that does it if you wish... This is
>>>> simple. What submodules don't solve is releases - if you're on a
>>>> particular unreleased Lucene version then releasing Solr would still
>>>> mean you need some kind of "public" pinned Lucene release for the
>>>> Maven world. If you distribute the entire thing as binaries you can
>>>> just publish a snapshot of Lucene code, of course.
>>>>
>>>> > I think adding git submodule means that we have to add back in all
>>>> the build code for it.
>>>>
>>>> No. The submodule is just a reference to a particular repository (and
>>>> commit) - the build code and remains nearly identical as it was with
>>>> Lucene. Composite builds in gradle are quite nice in that they're
>>>> (almost) transparent compared to dependency references.
>>>>
>>>> > At which point, I'd rather just copy and commit the
>>>> > code they have so we don't have to learn another git system.
>>>>
>>>> It's not really a different git system - it's a mechanism of
>>>> interacting with multiple repositories at once. Yes, it does add some
>>>> additional complexity but I think sooner or later you'll have to
>>>> interact with it anyway - many people favor monorepos these days and
>>>> this is a common way to assemble them from fragmented
>>>> sub-repositories.
>>>>
>>>> > I've
>>>> > heard submodules don't play nice with Jenkins, but don't have any
>>>> > direct experience with them.
>>>>
>>>> Some tools may require an additional flag to initialize and clone
>>>> sub-modules on the initial pull. Or manually.
>>>>
>>>> git submodule init
>>>> git submodule update --recursive.
>>>>
>>>> To summarize - I am not pushing for submodules, I do think they're a
>>>> viable alternative but pinned Maven references are simpler. The
>>>> problem with maven references is that we'd need a long(er) term maven
>>>> repository where such pinned references would live (without being
>>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>>
>>>> Dawid
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>>
>>>>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Cassandra Targett <ca...@gmail.com>.
I’m sort of surprised no one has mentioned the https://nightlies.apache.org/ server, which could be used for this purpose. Jenkins can push to it, and nothing gets deleted until we decide to delete it (or overwrite it). Solr Operator builds go there as do drafts of the Ref Guide pre-publication (in different directories now, but we’ll fix that eventually).
Cassandra
On May 3, 2021, 9:15 AM -0500, David Smiley <ds...@apache.org>, wrote:
> RE "an external system like Maven" -- we're merely talking about adding another JAR repo to the list of repos we already have. Heck, for this limited purpose, we could even use http://home.apache.org/~dsmiley/ Note that the Lucene project already uses home dirs of some users for benchmark data. If we were talking about adding a Maven *build* then I would totally appreciate your concern.
>
> I volunteer to use my space for this purpose.
>
> ~ David Smiley
> Apache Lucene/Solr Search Developer
> http://www.linkedin.com/in/davidwsmiley
>
>
> > On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <ic...@gmail.com> wrote:
> > > > Let’s not complicate things.
> > > By bringing in external systems like Maven, I think we're complicating things even though a straight forward way (git submodules) exists.
> > >
> > > > On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com> wrote:
> > > > > Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
> > > > >
> > > > > We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
> > > > >
> > > > > Jan Høydahl
> > > > >
> > > > > > 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <ic...@gmail.com>:
> > > > > >
> > > > > > > What submodules don't solve is releases - if you're
> > > > > > > on a
> > > > > > particular unreleased Lucene version then releasing
> > > > > > > Solr would still mean you need some kind of
> > > > > > > "public" pinned Lucene release for the
> > > > > > > Mavenworld.
> > > > > >
> > > > > >
> > > > > > > Can we then update the submodule to point to the release tag or sha that Lucene got released from?
> > > > > > >
> > > > > > > On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com> wrote:
> > > > > > > > > Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
> > > > > > > >
> > > > > > > > Technically you add a submodule and then make a composite build from
> > > > > > > > Solr side. I can provide a PR that does it if you wish... This is
> > > > > > > > simple. What submodules don't solve is releases - if you're on a
> > > > > > > > particular unreleased Lucene version then releasing Solr would still
> > > > > > > > mean you need some kind of "public" pinned Lucene release for the
> > > > > > > > Maven world. If you distribute the entire thing as binaries you can
> > > > > > > > just publish a snapshot of Lucene code, of course.
> > > > > > > >
> > > > > > > > > I think adding git submodule means that we have to add back in all the build code for it.
> > > > > > > >
> > > > > > > > No. The submodule is just a reference to a particular repository (and
> > > > > > > > commit) - the build code and remains nearly identical as it was with
> > > > > > > > Lucene. Composite builds in gradle are quite nice in that they're
> > > > > > > > (almost) transparent compared to dependency references.
> > > > > > > >
> > > > > > > > > At which point, I'd rather just copy and commit the
> > > > > > > > > code they have so we don't have to learn another git system.
> > > > > > > >
> > > > > > > > It's not really a different git system - it's a mechanism of
> > > > > > > > interacting with multiple repositories at once. Yes, it does add some
> > > > > > > > additional complexity but I think sooner or later you'll have to
> > > > > > > > interact with it anyway - many people favor monorepos these days and
> > > > > > > > this is a common way to assemble them from fragmented
> > > > > > > > sub-repositories.
> > > > > > > >
> > > > > > > > > I've
> > > > > > > > > heard submodules don't play nice with Jenkins, but don't have any
> > > > > > > > > direct experience with them.
> > > > > > > >
> > > > > > > > Some tools may require an additional flag to initialize and clone
> > > > > > > > sub-modules on the initial pull. Or manually.
> > > > > > > >
> > > > > > > > git submodule init
> > > > > > > > git submodule update --recursive.
> > > > > > > >
> > > > > > > > To summarize - I am not pushing for submodules, I do think they're a
> > > > > > > > viable alternative but pinned Maven references are simpler. The
> > > > > > > > problem with maven references is that we'd need a long(er) term maven
> > > > > > > > repository where such pinned references would live (without being
> > > > > > > > wiped out). Perhaps infra can help here and it'd solve the problem.
> > > > > > > >
> > > > > > > > Dawid
> > > > > > > >
> > > > > > > > ---------------------------------------------------------------------
> > > > > > > > To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
> > > > > > > > For additional commands, e-mail: dev-help@solr.apache.org
> > > > > > > >
Re: Proposal to pin the Lucene snapshot version on main
Posted by David Smiley <ds...@apache.org>.
RE "an external system like Maven" -- we're merely talking about adding
another JAR repo to the list of repos we already have. Heck, for this
limited purpose, we could even use http://home.apache.org/~dsmiley/ Note
that the Lucene project already uses home dirs of some users for benchmark
data. If we were talking about adding a Maven *build* then I would totally
appreciate your concern.
I volunteer to use my space for this purpose.
~ David Smiley
Apache Lucene/Solr Search Developer
http://www.linkedin.com/in/davidwsmiley
On Sun, May 2, 2021 at 12:17 AM Ishan Chattopadhyaya <
ichattopadhyaya@gmail.com> wrote:
> > Let’s not complicate things.
> By bringing in external systems like Maven, I think we're complicating
> things even though a straight forward way (git submodules) exists.
>
> On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com>
> wrote:
>
>> Sub modules is for organizing internal repos, not for pulling in external
>> deps. Let’s not complicate things. And once we switch main to 10.x we’d
>> need to use pure jar dependencies in branch_9x to depend upon actually
>> released and voted Lucene binaries.
>>
>> We need some tooling to smoothly work with bleeding edge Lucene including
>> local snapshot builds with not yet pushed changes to Lucene. I’d rather put
>> in some work to establish such tooling or procedures.
>>
>> Jan Høydahl
>>
>> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
>> ichattopadhyaya@gmail.com>:
>>
>>
>> > What submodules don't solve is releases - if you're
>> > on a
>> particular unreleased Lucene version then releasing
>> > Solr would still mean you need some kind of
>> > "public" pinned Lucene release for the
>> > Mavenworld.
>>
>>
>> Can we then update the submodule to point to the release tag or sha that
>> Lucene got released from?
>>
>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com> wrote:
>>
>>> > Other than literally adding the git submodule, would we do anything
>>> else to modify the gradle build so that or do we (and Jenkinsfile) have to
>>> manually do a step to install Lucene before proceeding?
>>>
>>> Technically you add a submodule and then make a composite build from
>>> Solr side. I can provide a PR that does it if you wish... This is
>>> simple. What submodules don't solve is releases - if you're on a
>>> particular unreleased Lucene version then releasing Solr would still
>>> mean you need some kind of "public" pinned Lucene release for the
>>> Maven world. If you distribute the entire thing as binaries you can
>>> just publish a snapshot of Lucene code, of course.
>>>
>>> > I think adding git submodule means that we have to add back in all the
>>> build code for it.
>>>
>>> No. The submodule is just a reference to a particular repository (and
>>> commit) - the build code and remains nearly identical as it was with
>>> Lucene. Composite builds in gradle are quite nice in that they're
>>> (almost) transparent compared to dependency references.
>>>
>>> > At which point, I'd rather just copy and commit the
>>> > code they have so we don't have to learn another git system.
>>>
>>> It's not really a different git system - it's a mechanism of
>>> interacting with multiple repositories at once. Yes, it does add some
>>> additional complexity but I think sooner or later you'll have to
>>> interact with it anyway - many people favor monorepos these days and
>>> this is a common way to assemble them from fragmented
>>> sub-repositories.
>>>
>>> > I've
>>> > heard submodules don't play nice with Jenkins, but don't have any
>>> > direct experience with them.
>>>
>>> Some tools may require an additional flag to initialize and clone
>>> sub-modules on the initial pull. Or manually.
>>>
>>> git submodule init
>>> git submodule update --recursive.
>>>
>>> To summarize - I am not pushing for submodules, I do think they're a
>>> viable alternative but pinned Maven references are simpler. The
>>> problem with maven references is that we'd need a long(er) term maven
>>> repository where such pinned references would live (without being
>>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>>
>>> Dawid
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>>> For additional commands, e-mail: dev-help@solr.apache.org
>>>
>>>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Ishan Chattopadhyaya <ic...@gmail.com>.
> Let’s not complicate things.
By bringing in external systems like Maven, I think we're complicating
things even though a straight forward way (git submodules) exists.
On Sat, May 1, 2021 at 5:00 PM Jan Høydahl <ja...@cominvent.com>
wrote:
> Sub modules is for organizing internal repos, not for pulling in external
> deps. Let’s not complicate things. And once we switch main to 10.x we’d
> need to use pure jar dependencies in branch_9x to depend upon actually
> released and voted Lucene binaries.
>
> We need some tooling to smoothly work with bleeding edge Lucene including
> local snapshot builds with not yet pushed changes to Lucene. I’d rather put
> in some work to establish such tooling or procedures.
>
> Jan Høydahl
>
> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <
> ichattopadhyaya@gmail.com>:
>
>
> > What submodules don't solve is releases - if you're
> > on a
> particular unreleased Lucene version then releasing
> > Solr would still mean you need some kind of
> > "public" pinned Lucene release for the
> > Mavenworld.
>
>
> Can we then update the submodule to point to the release tag or sha that
> Lucene got released from?
>
> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com> wrote:
>
>> > Other than literally adding the git submodule, would we do anything
>> else to modify the gradle build so that or do we (and Jenkinsfile) have to
>> manually do a step to install Lucene before proceeding?
>>
>> Technically you add a submodule and then make a composite build from
>> Solr side. I can provide a PR that does it if you wish... This is
>> simple. What submodules don't solve is releases - if you're on a
>> particular unreleased Lucene version then releasing Solr would still
>> mean you need some kind of "public" pinned Lucene release for the
>> Maven world. If you distribute the entire thing as binaries you can
>> just publish a snapshot of Lucene code, of course.
>>
>> > I think adding git submodule means that we have to add back in all the
>> build code for it.
>>
>> No. The submodule is just a reference to a particular repository (and
>> commit) - the build code and remains nearly identical as it was with
>> Lucene. Composite builds in gradle are quite nice in that they're
>> (almost) transparent compared to dependency references.
>>
>> > At which point, I'd rather just copy and commit the
>> > code they have so we don't have to learn another git system.
>>
>> It's not really a different git system - it's a mechanism of
>> interacting with multiple repositories at once. Yes, it does add some
>> additional complexity but I think sooner or later you'll have to
>> interact with it anyway - many people favor monorepos these days and
>> this is a common way to assemble them from fragmented
>> sub-repositories.
>>
>> > I've
>> > heard submodules don't play nice with Jenkins, but don't have any
>> > direct experience with them.
>>
>> Some tools may require an additional flag to initialize and clone
>> sub-modules on the initial pull. Or manually.
>>
>> git submodule init
>> git submodule update --recursive.
>>
>> To summarize - I am not pushing for submodules, I do think they're a
>> viable alternative but pinned Maven references are simpler. The
>> problem with maven references is that we'd need a long(er) term maven
>> repository where such pinned references would live (without being
>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>
>> Dawid
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>> For additional commands, e-mail: dev-help@solr.apache.org
>>
>>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Jan Høydahl <ja...@cominvent.com>.
Sub modules is for organizing internal repos, not for pulling in external deps. Let’s not complicate things. And once we switch main to 10.x we’d need to use pure jar dependencies in branch_9x to depend upon actually released and voted Lucene binaries.
We need some tooling to smoothly work with bleeding edge Lucene including local snapshot builds with not yet pushed changes to Lucene. I’d rather put in some work to establish such tooling or procedures.
Jan Høydahl
> 1. mai 2021 kl. 08:41 skrev Ishan Chattopadhyaya <ic...@gmail.com>:
>
>
> > What submodules don't solve is releases - if you're
> > on a
> particular unreleased Lucene version then releasing
> > Solr would still mean you need some kind of
> > "public" pinned Lucene release for the
> > Mavenworld.
>
>
> Can we then update the submodule to point to the release tag or sha that Lucene got released from?
>
>> On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com> wrote:
>> > Other than literally adding the git submodule, would we do anything else to modify the gradle build so that or do we (and Jenkinsfile) have to manually do a step to install Lucene before proceeding?
>>
>> Technically you add a submodule and then make a composite build from
>> Solr side. I can provide a PR that does it if you wish... This is
>> simple. What submodules don't solve is releases - if you're on a
>> particular unreleased Lucene version then releasing Solr would still
>> mean you need some kind of "public" pinned Lucene release for the
>> Maven world. If you distribute the entire thing as binaries you can
>> just publish a snapshot of Lucene code, of course.
>>
>> > I think adding git submodule means that we have to add back in all the build code for it.
>>
>> No. The submodule is just a reference to a particular repository (and
>> commit) - the build code and remains nearly identical as it was with
>> Lucene. Composite builds in gradle are quite nice in that they're
>> (almost) transparent compared to dependency references.
>>
>> > At which point, I'd rather just copy and commit the
>> > code they have so we don't have to learn another git system.
>>
>> It's not really a different git system - it's a mechanism of
>> interacting with multiple repositories at once. Yes, it does add some
>> additional complexity but I think sooner or later you'll have to
>> interact with it anyway - many people favor monorepos these days and
>> this is a common way to assemble them from fragmented
>> sub-repositories.
>>
>> > I've
>> > heard submodules don't play nice with Jenkins, but don't have any
>> > direct experience with them.
>>
>> Some tools may require an additional flag to initialize and clone
>> sub-modules on the initial pull. Or manually.
>>
>> git submodule init
>> git submodule update --recursive.
>>
>> To summarize - I am not pushing for submodules, I do think they're a
>> viable alternative but pinned Maven references are simpler. The
>> problem with maven references is that we'd need a long(er) term maven
>> repository where such pinned references would live (without being
>> wiped out). Perhaps infra can help here and it'd solve the problem.
>>
>> Dawid
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
>> For additional commands, e-mail: dev-help@solr.apache.org
>>
Re: Proposal to pin the Lucene snapshot version on main
Posted by Ishan Chattopadhyaya <ic...@gmail.com>.
> What submodules don't solve is releases - if you're
> on a
particular unreleased Lucene version then releasing
> Solr would still mean you need some kind of
> "public" pinned Lucene release for the
> Mavenworld.
Can we then update the submodule to point to the release tag or sha that
Lucene got released from?
On Sat, 1 May, 2021, 11:45 am Dawid Weiss, <da...@gmail.com> wrote:
> > Other than literally adding the git submodule, would we do anything else
> to modify the gradle build so that or do we (and Jenkinsfile) have to
> manually do a step to install Lucene before proceeding?
>
> Technically you add a submodule and then make a composite build from
> Solr side. I can provide a PR that does it if you wish... This is
> simple. What submodules don't solve is releases - if you're on a
> particular unreleased Lucene version then releasing Solr would still
> mean you need some kind of "public" pinned Lucene release for the
> Maven world. If you distribute the entire thing as binaries you can
> just publish a snapshot of Lucene code, of course.
>
> > I think adding git submodule means that we have to add back in all the
> build code for it.
>
> No. The submodule is just a reference to a particular repository (and
> commit) - the build code and remains nearly identical as it was with
> Lucene. Composite builds in gradle are quite nice in that they're
> (almost) transparent compared to dependency references.
>
> > At which point, I'd rather just copy and commit the
> > code they have so we don't have to learn another git system.
>
> It's not really a different git system - it's a mechanism of
> interacting with multiple repositories at once. Yes, it does add some
> additional complexity but I think sooner or later you'll have to
> interact with it anyway - many people favor monorepos these days and
> this is a common way to assemble them from fragmented
> sub-repositories.
>
> > I've
> > heard submodules don't play nice with Jenkins, but don't have any
> > direct experience with them.
>
> Some tools may require an additional flag to initialize and clone
> sub-modules on the initial pull. Or manually.
>
> git submodule init
> git submodule update --recursive.
>
> To summarize - I am not pushing for submodules, I do think they're a
> viable alternative but pinned Maven references are simpler. The
> problem with maven references is that we'd need a long(er) term maven
> repository where such pinned references would live (without being
> wiped out). Perhaps infra can help here and it'd solve the problem.
>
> Dawid
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@solr.apache.org
> For additional commands, e-mail: dev-help@solr.apache.org
>
>