The collectAnalysis task an be a bit slow and delays client connections
from running commands. This commit adds an option to skip the analysis
if it isn't needed. The default behavior is left as it was.
Appveyor supports uploading build artifacts that can be downloaded after
the build completes. This can be used to build and distribute graalvm
native images for mac, linux and windows since appveyor supports all
three of these platforms. Appveyor allows custom builds based on the
git branch. Since building the graalvm native images is slow, the new
config will only build the native image when a branch called
`build-graal` is pushed. Otherwise it will run the normal scripted tests
that it has always run.
In Load.scala and Defaults.scala, the AppConfiguration.baseDirectory is
dealiased when it is a symlink. This commit dealiases the
AppConfiguration.baseDirectory if it is a symlink so that sbt
`appConfiguration.value.baseDirectory` should be the same as
`baseDirectory.value`.
Rather than enumerate all of the watch keys that may appear unused
though they can be used by the `~` command, rework lintUnused to take a
function `String => Boolean` instead of `Set[String] => Boolean`.
The AppConfiguration.baseDirectory is dealiased during project loading.
Not dealiasing the symlink here could cause a discrepancy between the
`baseDirectory` key and the value of the base key in the root paths map.
This should fix the errors that are sometimes seen with abrupt sbt
shutdowns:
```
2020-06-22 12:46:33,475 shutdown-hooks-run-all ERROR No Log4j 2
configuration file found. Using default configuration (logging only
errors to the console), or user programmatically provided
configurations. Set system property 'log4j2.debug' to show Log4j 2
internal initialization logging. See
https://logging.apache.org/log4j/2.x/manual/configuration.html for
instructions on how to configure Log4j 2
```
In global bspWorkspace setting, retrieve all projects and all configurations that contain the bspTargetIdentifier setting, so that:
- the IntegrationTest configuration, when added to a project, is automatically associated to a BSP target
- a custom configuration that contains the `Defaults.configSettings` is also associated to a BSP target
Try parse the required semanticdbVersion in the initialization request metadata
Issue a warning if the semanticdb plugin is not enabled
Issue a warning if the semanticdb version is lower than the required