[
https://issues.apache.org/jira/browse/LUCENE-9077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16988428#comment-16988428
]
Robert Muir commented on LUCENE-9077:
-------------------------------------
And the latter one is definitely questionable for gradle, but since gradle has
an ant i am hoping we have some way. Basically hadoop spins up jetty and then
jetty starts going nuts with the classpath. Perhaps its simply some laziness in
the ant build where the "build framework" classpath is leaked to jetty (not
clearly separated from the tests?) and it would go away with gradle completely.
Sorry I didn't really dig much into what exactly is happening. I have been
reading plenty of hadoop code.
> Gradle build
> ------------
>
> Key: LUCENE-9077
> URL: https://issues.apache.org/jira/browse/LUCENE-9077
> Project: Lucene - Core
> Issue Type: Task
> Reporter: Dawid Weiss
> Assignee: Dawid Weiss
> Priority: Major
> Fix For: master (9.0)
>
>
> This task focuses on providing gradle-based build equivalent for Lucene and
> Solr (on master branch). See notes below on why this respin is needed.
> The code lives on *gradle-master* branch. It is kept with sync with *master*.
> Try running the following to see an overview of helper guides concerning
> typical workflow, testing and ant-migration helpers:
> gradlew :help
> A list of items that needs to be added or requires work. If you'd like to
> work on any of these, please add your name to the list. Once you have a
> patch/ pull request let me (dweiss) know - I'll try to coordinate the merges.
> * (/) Apply forbiddenAPIs
> * Configure security policy/ sandboxing for tests.
> * Add test 'beasting' (rerunning the same suite multiple times). I'm afraid
> it'll be difficult to run it sensibly because gradle doesn't offer cwd
> separation for the forked test runners.
> * jar checksums, jar checksum computation and validation. This should be
> done without intermediate folders (directly on dependency sets).
> * add a :helpDeps explanation to how the dependency system works (palantir
> plugin, lockfile) and how to retrieve structured information about current
> dependencies of a given module (in a tree-like output).
> * if you diff solr packaged distribution against ant-created distribution
> there are minor differences in library versions and some JARs are excluded/
> moved around. I didn't try to force these as everything seems to work (tests,
> etc.) – perhaps these differences should be fixed in the ant build instead.
> * identify and list precommit tasks so that they can be ported one by one.
> (Mark's branch has some of this stuff already implemented)
> * identify and port any other "check" utilities that may be called from ant.
> (Mark's branch has some of this stuff already implemented)
> * [EOE] identify and port various "regenerate" tasks from ant builds
> (javacc, precompiled automata, etc.)
> * add rendering of javadocs (gradlew javadoc) and attaching them to maven
> publications.
> * fill in POM details in gradle/defaults-maven.gradle so that they reflect
> the previous content better (dependencies aside).
> * Add any IDE integration layers that should be added (I use IntelliJ and it
> imports the project out of the box, without the need for any special tuning).
> * *Clean up dependencies, especially for Solr*: any \{ transitive = false }
> should just explicitly exclude whatever they don't need (and their
> dependencies currently declared explicitly should be folded). Figure out
> which scope to import a dependency to.
> * Add Solr packaging for docs/* (see TODO in packaging/build.gradle;
> currently XSLT...)
> * I didn't bother adding Solr dist/test-framework to packaging (who'd use it
> from a binary distribution?
>
> *{color:#ff0000}Note:{color}* this builds on the work done by Mark Miller and
> Cao Mạnh Đạt but also applies lessons learned from those two efforts:
> * *Do not try to do too many things at once*. If we deviate too far from
> master, the branch will be hard to merge.
> * *Do everything in baby-steps* and add small, independent build fragments
> replacing the old ant infrastructure.
> * *Try to engage people to run, test and contribute early*. It can't be a
> one-man effort. The more people understand and can contribute to the build,
> the more healthy it will be.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]