Commit Graph

242 Commits

Author SHA1 Message Date
Uwe Schindler 7a8071c9d4
Detect CI builds and enable errorprone by default for those CI builds (#890) 2022-05-14 20:49:50 +02:00
Dawid Weiss 75aadb9589
gradle 7.3.3 quick upgrade (#856) 2022-04-29 21:02:19 +02:00
Dawid Weiss a53d05b9f9
Upgrade spotless and use runToFixMessage for 'gradlew tidy' hint. (#834) 2022-04-25 14:51:14 +02:00
Robert Muir d6461eab0b
improve spotless error to suggest running 'gradlew tidy' (#817)
The current error isn't helpful as it suggests a per-module command. If
the user has modified multiple modules, they will be running gradle
commands to try to fix each one of them, when it would be easier to just
run 'gradlew tidy' a single time and fix everything.
2022-04-21 08:30:10 -04:00
Dawid Weiss ba1062620c
LUCENE-10510: Check module access prior to running gjf/spotless tasks (#802) 2022-04-10 20:35:45 +02:00
Uwe Schindler ff263f0aa4
Upgrade to forbiddenapis 3.3 (#768) 2022-03-26 17:09:42 +01:00
Mike Drob b3906e96ea
LUCENE-9651 Update benchmark module docs (#759) 2022-03-23 14:51:28 -05:00
Dawid Weiss 8aa4763070 LUCENE-10419: fix rat thread safety bug. 2022-02-13 18:43:13 +01:00
Dawid Weiss a861ff8df2 LUCENE-10419: revert debugging changes. 2022-02-13 18:34:57 +01:00
Dawid Weiss 50b7e2970f LUCENE-10419: more debugging code. The message from AbstractStringBuilder suggests a concurrency issue somewhere, but I just can't see it! 2022-02-12 20:22:49 +01:00
Dawid Weiss 1f1da12c89 LUCENE-10419: add debugging code. 2022-02-10 12:03:54 +01:00
Dawid Weiss 87bba4152c LUCENE-10283: bump the minimum source/release in ecj linter settings. 2022-02-02 17:25:41 +01:00
Adrien Grand 2ebc57a465
LUCENE-10283: Bump minimum required Java version to 17. (#579)
Co-authored-by: Dawid Weiss <dawid.weiss@carrotsearch.com>
2022-01-10 15:42:15 +01:00
Uwe Schindler 42fe2d5620
LUCENE-10364: Prepare and update errorprone plugin for Java 17 (#590) 2022-01-07 19:19:46 +01:00
Dawid Weiss ff547e7bbd
LUCENE-10328: Module path for compiling and running tests is wrong (#571) 2022-01-05 20:42:02 +01:00
Uwe Schindler 475fbd0bdd
LUCENE-10352: Convert TestAllAnalyzersHaveFactories and TestRandomChains to a global integration test and discover classes to check from module system (#582)
Co-authored-by: Robert Muir <rmuir@apache.org>
2022-01-05 15:35:02 +01:00
Uwe Schindler 0b517573a4
LUCENE-10342: Add logging to static initializers to warn users if unmapping or object size calculation does not work (#572)
Co-authored-by: Tomoko Uchida <tomoko.uchida.1111@gmail.com>
2021-12-29 18:18:21 +01:00
Dawid Weiss e790125504
LUCENE-10331: don't emit the contents of the inputs file until we're actually running the task (#554) 2021-12-20 19:27:37 +01:00
Dawid Weiss d2c98912eb This reverts commit a7b50f723d. 2021-12-19 08:51:13 +01:00
Dawid Weiss a7b50f723d Reverting back to b48cac02. 2021-12-18 23:36:30 +01:00
Dawid Weiss 2a44ff532e LUCENE-10308: sort input files for ecj so that module-info.java comes first. 2021-12-18 21:17:56 +01:00
Uwe Schindler db9dff225c after reading code, correct the argument file to comply with ECJ's parser 2021-12-17 12:18:28 +01:00
Uwe Schindler 6941701c6d Escape the options in ECJ's options file 2021-12-17 11:37:27 +01:00
Dawid Weiss 5b3b75efd8 LUCENE-10308: Make ecj and javadoc run with modular paths 2021-12-16 17:51:01 +01:00
Dawid Weiss 328b3cc55f LUCENE-10255: add support for .tests subprojects which contain module tests. 2021-12-10 17:16:19 +01:00
Dawid Weiss 6d83c2e08e LUCENE-10255: add gradle compilation and module descriptor support for the java module system. Adds module descriptors to all Lucene subprojects. 2021-12-10 17:16:19 +01:00
Dawid Weiss 8367f700c7 LUCENE-10294: Avoid compiling javadocs twice in 'gradlew check'. 2021-12-09 09:56:11 +01:00
Robert Muir 63c89f678d
Speed up ECJ tasks by avoiding --release (#484)
LUCENE-10185 caused a large performance regression in ECJ tasks by using the --release flag.

Instead of using --release, we can just disable "terminal deprecation", and leave this check to `javac`. The --release flag makes this tool run 50% slower.
2021-11-28 15:10:32 -05:00
Dawid Weiss 1029651d12 Don't log warnings from ant (different class loader, I guess). Makes Alan happier. 2021-11-26 11:39:55 +01:00
Uwe Schindler 1ae6b2a6b9
UCENE-10218: Extend validateSourcePatterns task to scan for LTR/RTL unicode to catch "Trojan Source" source code attacks (#425)
Co-authored-by: Dawid Weiss <dawid.weiss@carrotsearch.com>
2021-11-03 17:19:24 +01:00
Dawid Weiss d819a2eec4 Cherry pick the validateSourcePatterns. Correct exclusion patterns (.gradle and .idea are only at the root project level). 2021-11-02 12:18:51 +01:00
Jerome Prinet d44e03b8b0 Make ratTask cacheable 2021-11-02 12:18:51 +01:00
Dawid Weiss 6d8ea58ccd LUCENE-10200: Rename pddl-10.txt to reference glove. 2021-10-31 10:41:16 +01:00
Mike Drob 23256a30fa
Replace deprecated Gradle 7.2 properties (#417) 2021-10-29 09:59:47 -05:00
Dawid Weiss 62eb9a809e LUCENE-10200: remove unused dangling license exclusions. Add references to the remaining ones. 2021-10-27 20:40:39 +02:00
Robert Muir f8d431ae44
LUCENE-10185: pass --release 11 to ECJ linter, fix JDK 17 build (#393)
* LUCENE-10185: pass --release 11 to ECJ linter, fix JDK 17 build

Otherwise, new java releases such as JDK 18, JDK 19, ... may have even
more new deprecations, the build shouldn't fail in such cases.

Remove -source/-target now that we pass --release

Fix casting so ECJ understands it and creates correct call signature (UweSays: "It's ok. I know why it happens, but it's a bug in ECJ. The type safety is checked by the invokeexact")

Co-authored-by: Uwe Schindler <uschindler@apache.org>
2021-10-18 16:43:53 -04:00
Dawid Weiss a613021ca4
LUCENE-10136: allow 'var' declarations in source code (be reasonable though). (#368) 2021-10-08 20:20:22 +02:00
Dawid Weiss 4d0fabf53b LUCENE-9713: we don't need those symbol-escape checks. They're valid adoc and we don't produce PDFs. 2021-09-30 15:27:56 +02:00
Dawid Weiss 93c66e1400 LUCENE-9713: exclude .idea/ (sync with Solr's version). 2021-09-30 15:19:19 +02:00
Dawid Weiss 3aa0676194
LUCENE-9713: apply source validation to txt files outside of src/* folders. Fix offenders. (#339) 2021-09-30 15:13:42 +02:00
Dawid Weiss e470535072
LUCENE-9654: Expressions module gramar antlr code regeneration (#269) 2021-08-27 12:47:19 +02:00
Dawid Weiss 39a2fc62d4
LUCENE-10066: Build does not work with JDK16 as gradle's runtime (#259) 2021-08-26 10:08:37 +02:00
Dawid Weiss a8d4f658de Upgrade to gradle 7.2 2021-08-25 10:03:59 +02:00
Dawid Weiss 26eb84a3b5 Fix immutable properties. Fix ant uri namespace no longer working (seems like gradle regression). 2021-08-25 10:03:59 +02:00
Dawid Weiss 3ff4263535 Upgrade gradle to 7.1.1 2021-08-25 10:03:59 +02:00
Michael Sokolov a37844aedd
LUCENE-10016: Added KnnVector index/query support to demo 2021-08-18 08:13:59 -04:00
Dawid Weiss b016c8dc2a LUCENE-10042: JAR minimal manifest JDK entries are incorrectly set to build-JVM 2021-08-01 14:14:42 +02:00
Dawid Weiss 3bedc0871e
LUCENE-9977: rat task corrections (proper up-to-date checks, cleanup and rewrite of the task itself). (#178) 2021-06-11 09:26:34 +02:00
Dawid Weiss 5912e65434
LUCENE-9974: The test-framework module should apply the test ruleset for forbidden APIs. (#153) 2021-05-26 10:19:55 +02:00
John Carlson 2c43f57f91
Update gradle to 6.8.3 (#100) 2021-04-21 21:02:37 +02:00
Dawid Weiss 0b1d8ccba6
LUCENE-9925: add checksums to snowball-generated files (#80) 2021-04-13 08:59:31 +02:00
Robert Muir 2971f311a2
LUCENE-9911: enable ecjLint unusedExceptionParameter (#70)
Fails the linter if an exception is swallowed (e.g. variable completely
unused).

If this is intentional for some reason, the exception can simply by
annotated with @SuppressWarnings("unused").
2021-04-08 08:19:01 -04:00
Dawid Weiss e3ae57a3c1
LUCENE-9872: Make the most painful tasks in regenerate fully incremental (#60) 2021-04-02 09:56:47 +02:00
zacharymorn 79fcd99f4c
LUCENE-9883: Turn on ecj missingEnumCaseDespiteDefault setting (#56) 2021-03-31 15:50:52 +09:00
Dawid Weiss 32e891c60f LUCENE-9871: move dummy outputs aspect into a separate file. 2021-03-30 20:15:55 +02:00
Dawid Weiss fd685682be This removes the last of ant-compatibility hacks - cross-project dependency on test classes. Replaced with gradle's test fixture artifact sharing. Cleaned up spatial3d classes a bit too. 2021-03-30 12:35:33 +02:00
Dawid Weiss 3115797463 LUCENE-9871: clean up some old cruft and shuffle files around. Correct inputs/outputs on check broken links so that it's incremental. 2021-03-30 10:55:19 +02:00
Robert Muir 3596e05e5c
LUCENE-9878: enable redundantNullCheck in ecjLint (#44)
Detects common cases of unreachable/dead code.

For generated javacc code, the check is disabled via
SuppressWarnings("unused") because javacc generates strange/bad code such as:

  if ("" == null)

For TestStressNRTReplication's startNode() method, the check is also
disabled because analysis folds the "test evilness controls" which are
static final constants. This itself is a WTF, shouldn't we instead
randomize these evil things in our tests rather than hardcoding them to
specific values?
2021-03-27 11:43:47 -04:00
Robert Muir 690e256ec9
LUCENE-9881: synchronize ECJ linter with Eclipse IDE (#46)
Co-authored-by: Uwe Schindler <uschindler@apache.org>
2021-03-27 00:42:29 +01:00
Dawid Weiss f02799c511
Skip errorprone on non-nightlies. (#45) 2021-03-26 21:42:15 +01:00
zacharymorn 3ed87c867a
LUCENE-9864: Enforce @Override annotation everywhere (#40)
Requiring the annotation is helpful because if an abstract method is removed, the concrete methods will then show up as compile errors: preventing dead code from being accidentally left behind.

Co-authored-by: Robert Muir <rmuir@apache.org>
2021-03-25 17:50:38 -04:00
Uwe Schindler 3214e365e3
LUCENE-9856: Static analysis take 3: Remove redundant interfaces (#38)
Co-authored-by: Robert Muir <rmuir@apache.org>
2021-03-24 18:26:12 +01:00
Robert Muir 945b1cb872
LUCENE-9856: fail precommit on unused local variables, take two (#37)
Enable ecj unused local variable, private instance and method detection. Allow SuppressWarnings("unused") to disable unused checks (e.g. for generated code or very special tests). Fix gradlew regenerate for python 3.9 SuppressWarnings("unused") for generated javacc and jflex code. Enable a few other easy ecj checks such as Deprecated annotation, hashcode/equals, equals across different types.

Co-authored-by: Mike McCandless <mikemccand@apache.org>
2021-03-23 13:59:00 -04:00
Robert Muir e6c4956cf6
Revert "LUCENE-9856: fail precommit on unused local variables (#34)"
This reverts commit 20dba278bb.
2021-03-23 12:46:36 -04:00
Robert Muir 20dba278bb
LUCENE-9856: fail precommit on unused local variables (#34)
Enable ecj unused local variable, private instance and method detection. Allow SuppressWarnings("unused") to disable unused checks (e.g. for generated code or very special tests). Fix gradlew regenerate for python 3.9 SuppressWarnings("unused") for generated javacc and jflex code. Enable a few other easy ecj checks such as Deprecated annotation, hashcode/equals, equals across different types.

Co-authored-by: Mike McCandless <mikemccand@apache.org>
2021-03-23 11:09:24 -04:00
Dawid Weiss 078d0079d1
LUCENE-9861: pull tuned vm options into a separate aspect. (#33) 2021-03-23 10:39:09 +01:00
Dawid Weiss 246c4beb22
LUCENE-9854: Clean up utilities to download and extract test/ benchmark data sets. (#27) 2021-03-22 12:22:39 +01:00
Dawid Weiss 53bea54669
LUCENE-9375: cleaning up post-split conditional build logic and solr refs. (#22) 2021-03-18 11:04:45 +01:00
Dawid Weiss f8040c0ecf LUCENE-9650: errorprone plugin doesn't work on jdk16. A different workaround that keeps the dependency. 2021-03-15 10:19:27 +01:00
Dawid Weiss 8bbcc39583 Always include errorprone dependency, even if we're not checking. This ensures consistent use patterns across JVMs. 2021-03-11 22:27:25 +01:00
Dawid Weiss 7f5e660395
LUCENE-9375: some build file cleanups. (#10) 2021-03-10 21:47:37 +01:00
Dawid Weiss fdf486ba54 LUCENE-9375: post-repo-split removal of solr counterpart. 2021-03-10 11:20:08 +01:00
Dawid Weiss 409bc37c13
SOLR-14759: a few initial changes so that Lucene can be built independently while Solr code is still in place. (#2448) 2021-03-08 14:59:08 +01:00
Dawid Weiss d2fb89c22f LUCENE-9793: Add task time aggregation utility (enabled with -Ptask.times=true). 2021-02-20 20:18:16 +01:00
Eric Pugh f70a518f1b
SOLR-8138: Simple UI for issuing SQL queries (#2381)
* Updated SOLR-8138 files for Solr 9.

This code was mostly written by Michael Suzuki,  i just tweaked it to load, and updated the version of ui-grid to the 4.10 version.

* unused file, we use the .min version.

* add an entry for the ui-grid project to license file.

Co-authored-by: epugh@opensourceconnections.com <>
2021-02-18 17:21:21 -05:00
Houston Putman 4bd4f7063b
LUCENE-9780: Only validate JARs for tasks that are enabled (#2382) 2021-02-17 18:12:27 -05:00
Kevin Watters 890f570bf5
LUCENE-9659 inequality support in payload check query (#2185)
Changes from SOLR-14787 supporting inequalities in SpanPayloadCheckQuery
2021-02-17 09:48:50 -05:00
Dawid Weiss f7e42bdb35
LUCENE-9768: Add source sets for src/tools, clean up forbidden API and formatting errors (#2361) 2021-02-12 17:03:54 +01:00
Peter Gromov 8a34cc7afd
LUCENE-9701: Hunspell: implement simple REP-based suggestion algorithm (#2251) 2021-02-01 10:23:54 +01:00
Mike Drob b335034615
Require Thread Names in Solr (#2264)
When we are creating a new thread we should give it a descriptive name and enforce this via ForbiddenAPIs. This doesn't apply to Runnable or Callable objects that we pass to an executor, since those should be getting named by the executor itself.

We don't require this in tests because the tests should be more self contained and there is less benefit in descriptive names. If somebody is already profiling a test, then they likely have the context to understand what the unnamed threads are doing, whereas a thread dump from a running Solr instance should have good thread names for everything. This is especially helpful when doing profiling, otherwise we end up with a bunch of Thread-# that are hard to tell apart and search on.
2021-01-28 15:04:15 -06:00
András Salamon 83e0397c42
SOLR-14297: Replace commons-codec Base64 with JDK8 Base64 (#2222) 2021-01-21 13:10:33 -05:00
Peter Gromov 939699f550
LUCENE-9667: Hunspell: add spellchecker API, support BREAK and FORBIDDENWORD affix rules (#2207) 2021-01-20 10:57:27 +01:00
Dawid Weiss 0ab9cb8079 LUCENE-9658: temporarily hook up spotlessCheck to precommit. 2021-01-07 10:57:57 +01:00
Dawid Weiss 2cbf261032 LUCENE-9570: code reformatting [final]. 2021-01-05 13:44:05 +01:00
Dawid Weiss 7f8b7ffbca LUCENE-9570: code reformatting [partial]. 2021-01-03 21:46:01 +01:00
Dawid Weiss 38c9d2ab76
LUCENE-9650: disable errorprone on jdk16+ (#2171) 2020-12-28 23:20:52 +01:00
Dawid Weiss 8ef6a0da56 LUCENE-9570: code reformatting [partial]. 2020-12-28 12:26:13 +01:00
Dawid Weiss 2d6ad2fee6 LUCENE-9570: code reformatting [partial]. 2020-12-23 12:41:23 +01:00
Dawid Weiss 6faa4f98e0 LUCENE-9570: code reformatting [partial]. 2020-12-18 13:02:08 +01:00
Dawid Weiss c94b035df8
LUCENE-9564: add spotless and gjf (automatic code formatter) 2020-12-17 13:11:54 +01:00
Dawid Weiss a29d7c70d5
LUCENE-9597: checkWorkingCopyClean shouldn't complain about untracked empty folders (similar to git status). Piggybacking jgit update. (#2061) 2020-11-03 12:50:05 +01:00
gezapeti cf6e831394
SOLR-14887 Upgrade JQuery to 3.5.1 (#1947) 2020-10-13 19:41:57 -04:00
Uwe Schindler 6acb7b4293 LUCENE-9577: move the checkBrokenLinks task to the documentation subprojects 2020-10-09 16:44:36 +02:00
Uwe Schindler f97208a790 LUCENE-9577: fix changed task name 2020-10-09 16:18:59 +02:00
Mike Drob 08e38d3452
LUCENE-9488 Create Release Artifacts with Gradle (#1905)
* Build Lucene binary distribution using Gradle
* Generate SHA-512 checksums for all release artifacts
* Update documentation artifacts included in binaries
* Delete some additional Ant relics

Co-authored-by: Dawid Weiss <dawid.weiss@carrotsearch.com>
Co-authored-by: Uwe Schindler <uschindler@apache.org>
2020-10-08 14:25:51 -05:00
Timothy Potter e879a52291
SOLR-14659: Remove restlet as dependency for the ManagedResource API (#1938)
Co-authored-by: noblepaul <noble.paul@gmail.com>
2020-10-04 11:21:49 -06:00
Erick Erickson f6c4f8a755 SOLR-14910: Use in-line tags for logger declarations in Gradle ValidateLogCalls that are non-standard, change //logok to //nowarn 2020-10-03 09:47:37 -04:00
Adrien Grand f8b7a60562
LUCENE-9550: Upgrade to Gradle 6.6.1. (#1933) 2020-09-30 11:17:55 +02:00
Tomoko Uchida 5e617ccc33
LUCENE-9317: Clean up split package in analyzers-common (#1836) 2020-09-28 16:49:28 +09:00
Uwe Schindler 8debc9d0c2
LUCENE-9517: Don't subclass Deflater and instead create a patch for setDictionary() using a functional interface (#1850) 2020-09-10 11:12:59 +02:00