-
Notifications
You must be signed in to change notification settings - Fork 247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unavoidable "[Importer$] Expected to find just 1 match" warnings in sbt sub-project builds #341
Comments
Until the fix (#345) is merged and released, you can use the same workaround I used in our internal sbt-plugin to at least silence the warning: private val importerLogger = java.util.logging.Logger.getLogger("com.twitter.scrooge.frontend.Importer$")
importerLogger.setLevel(java.util.logging.Level.OFF) It's hacky but the best solution I could find for the time being 🙂 |
Problem As described in twitter/scrooge/#341 a lot of warnings are generated when using scrooge in projects with sbt sub modules as a root dir importer is always added. Solution Add a new setting scroogeThriftIncludeRoot that makes this behaviour configurable. The default behaviour is as it is now. Result Users won't see a ton of warnings. Closes #345 Signed-off-by: Joy Bestourous <[email protected]> Differential Revision: https://phabricator.twitter.biz/D633782
Next scrooge sbt version will have a setting to disable this scroogeThriftIncludeRoot := false |
I am not sure that the issue here is really that the root folder is included by default, but rather with the way absolute paths are handled. Any DirImporter will successfully resolve an absolute path, and when compiling a thrift file, it is the first file that the importer(s) resolve, and is going to be an absolute path. So while not including the root directory as an importer will solve this for some projects, it will still result in spurious warnings any time that a project has I believe conditioning the warning on a check like this would suffice to solve the problem more generally: scrooge/scrooge-generator/src/main/scala/com/twitter/scrooge/frontend/Importer.scala Lines 87 to 88 in 76504ba
|
(if others agree, I'd be happy to submit a PR) |
Also seeing this quite a bit. I tend to ignore it and I always see the correct behavior in the generated code. This makes me think that @jstultz is correct in that these are spurious warnings. Anyone maintainers have more context here? |
I've added |
Describe the bug
For an sbt multi-project build which uses the ScroogeSBT autoplugin on a subproject, an unavoidable warning message (
warn [Importer$] Expected to find just 1 match for ...
, introduced March 2020 with 9191deb) will be shown for every single.thrift
file found, with no possible way to configure the project to avoid that warning.To Reproduce
Steps to reproduce the behavior:
.thrift
files insrc/main/thrift
sbt compile
.thrift
file:Expected behavior
Warnings should not be shown, or it should be at least possible to configure the sbt project in such a way that there are not two
DirImporter
s for the same file. The number of warnings shown at the moment is heavily noisy, at least if you have many.thrift
files.Environment
sbt v1.4.4, scrooge v20.10.0
Additional context
The warning was introduced with 9191deb. It's probably valid, but the fact that there are two paths found (the project root, and the path of the subproject
src/main/thrift
dir) is because the root is hard-coded into the scroogeCompiler
class, and there's no way to turn it off:scrooge/scrooge-generator/src/main/scala/com/twitter/scrooge/Compiler.scala
Line 48 in 37edfe5
...I've played the
scroogeThriftIncludes
setting, and could not find any way to remove the warnings.cc @mosesn
The text was updated successfully, but these errors were encountered: