Skip to content

Remove system specific information from stable-status.txt #10177

@guibou

Description

@guibou

Description of the problem / feature request:

The file stable-status.txt contains BUILD_HOST and BUILD_USER which depend on the local system, hence is not reproducible.

It means that rule using this file will never hit a remote cache.

One current workaround is to use a projection rule to select only the reproducible part of the file. For example, the following:

genrule(
    name = "stable_stable_status",
    srcs = [],
    outs = ["stable-stable-status.txt"],  
    cmd = """
    cat bazel-out/stable-status.txt | grep -v BUILD_HOST | grep -v BUILD_USER  > $@
    """,
    stamp = True,
)

I'd like an empty stable-status.txt by default. If user really want the hostname and username in the file, they can use --workspace_status_command to fill it.

Feature requests: what underlying problem are you trying to solve with this feature?

I'd like to have an environment which is more friendly for remote caching by default. I realized the problem when debugging really poor remote cache hit rate.

What operating system are you running Bazel on?

Linux

What's the output of bazel info release?

INFO: Writing tracer profile to '/home/guillaume/.cache/bazel/_bazel_guillaume/9923957c70cd7b59bec21e32af97c8be/command.profile.gz'
INFO: Invocation ID: ad08eddd-5242-4a7d-9b67-92a829cef8bb
release 0.29.0- (@non-git)

If bazel info release returns "development version" or "(@Non-Git)", tell us how you built Bazel.

Technically that's a bazel 1.0.0-rc3 built with nix, patched with 4385531 and #8888

Metadata

Metadata

Assignees

Labels

team-CoreSkyframe, bazel query, BEP, options parsing, bazelrcuntriaged

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions