[ https://issues.apache.org/jira/browse/LUCENE-9077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dawid Weiss updated LUCENE-9077: -------------------------------- Description: 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 [dweiss working on this] * 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) * 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. was: 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) * 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. > 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 [dweiss working on this] > * 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) > * 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: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org