Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 2 additions & 9 deletions scip-java/src/main/resources/scip-java/scip_java.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
"""
Expand Down Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down