[
https://issues.apache.org/jira/browse/SOLR-15455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17358783#comment-17358783
]
Michael Gibney commented on SOLR-15455:
---------------------------------------
The attached patch, [^solr-lucene-snapshot-build.patch], introduces a system
property ({{-DluceneSnapshot}}) that, if present, helps guide developers
through making the necessary local modifications to support local tasks based
on a 9.0.0-SNAPSHOT version of Lucene stored in {{mavenLocal()}} repo.
The comments in the patch explain a bit more, but basically it pre-parses the
{{versions.props}} and {{versions.lock}} files in the configuration build
phase, checks certain assumptions, and offers helpful tips. No files are
actually modified, but if specifying the {{-DluceneSnapshot}} system property,
users are directed to explicitly make any required changes.
The change to the {{solr-tests.policy}} security policy is necessary in order
to support any runtime reference to jar files that live in the local maven repo
(dependencies fetched by gradle from other repos are cached in a
security-policy-accessible part of the filesystem, but {{mavenLocal()}}
dependencies are accessed in-place, so we have to carve out an exception for
Lucene in this case). It should be harmless \(?) to leave this exception
statically in place regardless of whether a given build actually needs to
access {{mavenLocal()}} (non-Lucene-SNAPSHOT version builds will not need this
access).
The proposed workflow, in brief, would be:
# clone Lucene project and run {{gradlew mavenToLocalRepo}} from the project
root
# change Lucene version in Solr {{version.props}} file to "9.0.0-SNAPSHOT"
# run {{gradlew -DluceneSnapshot test}} (or whatever task) and follow the
instructions you get in the error messages until it works :-)
Skipping the "trial-and-error" portion of the last step of the above sequence,
you'd do this:
# clone Lucene project and run {{gradlew mavenToLocalRepo}} from the project
root
# change Lucene version in Solr {{version.props}} file to "9.0.0-SNAPSHOT"
# In top-level Solr project dir, run {{gradlew -DluceneSnapshot --update-locks
'org.apache.lucene:*'}} to update the {{versions.lock}} file to point to the
local 9.0.0-SNAPSHOT versions
# subsequent tasks (e.g., {{gradlew -DluceneSnapshot test}}) should build/run
against the Lucene SNAPSHOT jar files in {{mavenLocal()}}.
I'm not thinking of the attached patch as a finished product, of course; just
to help bootstrap discussion.
> Facilitate joint Lucene/Solr local development workflow
> -------------------------------------------------------
>
> Key: SOLR-15455
> URL: https://issues.apache.org/jira/browse/SOLR-15455
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Components: Build
> Affects Versions: main (9.0)
> Reporter: Michael Gibney
> Priority: Minor
> Attachments: solr-lucene-snapshot-build.patch
>
>
> The recommended local development workflow for joint Lucene/Solr development
> post-TLP split requires some changes in order to work properly. The necessary
> changes are few, but there's also some opportunity (with minimal changes) to
> further ease the path for developers. This issue should also encompass
> documentation of the recommended workflow.
> Continued from a solr-dev [mailing list
> thread|https://mail-archives.apache.org/mod_mbox/solr-dev/202106.mbox/%3ccajrvfdryqu+hbzdiimaxtsab2e4nyeais-3sfzw6v3zv3gy...@mail.gmail.com%3e].
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]