diff --git a/docs/getting-started.md b/docs/getting-started.md index 80c86c80..c2599355 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -354,12 +354,6 @@ The `--bazel-scip-java-binary` argument is required due to implementation details, scip-java runs an [aspect](https://bazel.build/extending/aspects) that requires the absolute path to the `scip-java` binary. -> The current solution for automatic indexing step is not yet 100% hermetic and, -> therefore, relies on `--spawn_strategy=local` under the hood. Depending on -> your use-case, this might be OK or not. If there is demand for it, it's should -> be possible to make the indexing fully hermetic and compatible with Bazel's -> sandbox with some extra work. - #### Manual - `select` It's possible to index Bazel codebases by integrating scip-java directly into diff --git a/scip-java/src/main/resources/scip-java/scip_java.bzl b/scip-java/src/main/resources/scip-java/scip_java.bzl index 93337381..63f5358d 100644 --- a/scip-java/src/main/resources/scip-java/scip_java.bzl +++ b/scip-java/src/main/resources/scip-java/scip_java.bzl @@ -14,12 +14,6 @@ many *.scip (https://github.com/sourcegraph/scip) and These files encode information about which symbols are referenced from which locations in your source code. -This aspect only works on Linux when using the `local` spawn strategy because -the `run_shell` action writes SemanticDB and SCIP files to the provided ---targetroot argument. It should be possible to avoid this requirement -in the future if there's a strong desire to make the aspect work with the -default (sandboxed) spawn strategy. - Use the command below to merge all of these SCIP files into a single index: find bazel-bin/ -type f -name '*.scip' | xargs cat > index.scip @@ -34,7 +28,7 @@ Use `src code-intel upload` to upload the unified SCIP file to Sourcegraph: Example command to run this aspect directly: - bazel build //... --spawn_strategy=local --aspects path/to/scip_java.bzl%scip_java_aspect --output_groups=scip --define=sourceroot=$(pwd) --define=scip_java_binary=$(which scip-java) --define=java_home=$JAVA_HOME + bazel build //... --aspects path/to/scip_java.bzl%scip_java_aspect --output_groups=scip --define=scip_java_binary=$(which scip-java) --define=java_home=$JAVA_HOME To learn more about aspects: https://bazel.build/extending/aspects """ @@ -140,9 +134,8 @@ def _scip_java(target, ctx): deps = [javac_action.inputs, annotations.processor_classpath] ctx.actions.run_shell( - command = "\"{}\" index --no-cleanup --index-semanticdb.allow-empty-index --cwd \"{}\" --targetroot {} --scip-config \"{}\" --output \"{}\"".format( + command = "\"{}\" index --no-cleanup --index-semanticdb.allow-empty-index --targetroot {} --scip-config \"{}\" --output \"{}\"".format( ctx.var["scip_java_binary"], - ctx.var["sourceroot"], targetroot.path, build_config_path.path, scip_output.path, diff --git a/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/BazelBuildTool.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/BazelBuildTool.scala index c88ed4cd..15aea32a 100644 --- a/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/BazelBuildTool.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/BazelBuildTool.scala @@ -63,13 +63,9 @@ class BazelBuildTool(index: IndexCommand) extends BuildTool("Bazel", index) { "bazel", "build", "--noshow_progress", - // The local strategy is required for now because we write SemanticDB and SCIP files - // to the provided targetroot directory. - "--spawn_strategy=local", "--aspects", s"$aspectLabel%scip_java_aspect", "--output_groups=scip", - s"--define=sourceroot=${index.workingDirectory}", s"--define=java_home=$javaHome", s"--define=scip_java_binary=$scipJavaBinary", "--verbose_failures"