Skip to content

Commit f4fa437

Browse files
docs: mark the serve query service as production ready (#482)
The `serve` query service has been validated internally in production CI, so the docs should no longer present it as experimental. - Drop the "(experimental)" qualifier from the Query Service heading and add a lead sentence stating it is production ready and supported. - Reword the `modifiedFilepaths` caveat: the superset requirement is a correctness contract on the caller's list, not a marker of instability. - Retitle "Notes and current limitations" to "Notes and operational guidance"; the remaining bullets are operational facts, not caveats. - Drop the "Experimental:" prefix from the `generate-hashes --modified-filepaths` help text, whose semantics the serve POST body shares. README.md and tools/readme_template.md are kept in sync (the README is generated from the template), and the rendered CLI help block was taken verbatim from a fresh //tools:cli_help_output build rather than hand-wrapped. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent a161daa commit f4fa437

3 files changed

Lines changed: 20 additions & 15 deletions

File tree

‎README.md‎

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,10 @@ neither ever truncates silently — the full count is always reported:
191191
* `--maxDepth` (default `-1`, unbounded) stops the search N dependency hops above the queried
192192
target. When a bound cuts the search short, a warning says so.
193193

194-
## Query Service (experimental)
194+
## Query Service
195+
196+
`bazel-diff serve` is production ready — it has been validated internally in production CI and is
197+
supported for production use.
195198

196199
Instead of running `generate-hashes` from scratch on every CI invocation, you can run `bazel-diff` as
197200
a long-running HTTP service that answers affectedness queries between two git revisions and caches
@@ -242,8 +245,8 @@ curl 'http://localhost:8080/impacted_targets?from=main&to=my-feature-branch'
242245
as unchanged, turning an O(all source files) content read into O(changed files) — the same
243246
optimization as `generate-hashes --modified-filepaths`. The list must be a **superset** of what
244247
actually changed: a truly-changed file left off it is content-skipped on both sides and its
245-
impacted targets are missed (hence experimental). Omit it (or send `[]`) for the full-content hash,
246-
identical to the GET form. `POST /impacted_targets_with_distances` accepts the same body.
248+
impacted targets are missed, so treat the list as a correctness contract. Omit it (or send `[]`)
249+
for the full-content hash, identical to the GET form. `POST /impacted_targets_with_distances` accepts the same body.
247250

248251
```bash
249252
curl -X POST http://localhost:8080/impacted_targets \
@@ -343,7 +346,7 @@ revision are also harmless — entries are deterministic per key, so last-write-
343346
content. The `--cacheMax*` pruning flags bound the *local* tier only; bound the bucket with an S3
344347
lifecycle policy instead.
345348

346-
Notes and current limitations:
349+
Notes and operational guidance:
347350

348351
* Distance metrics (`/impacted_targets_with_distances`) and the generate-hashes graph
349352
(`/dependency_edges`) require the dependency-edge graph, which is
@@ -546,12 +549,11 @@ workspace.
546549
hashes. Disabling it catches configuration issues
547550
by failing loudly. Defaults to `false`
548551
-m, --modified-filepaths=<modifiedFilepaths>
549-
Experimental: A text file containing a newline
550-
separated list of filepaths (relative to the
551-
workspace) these filepaths should represent the
552-
modified files between the specified revisions and
553-
will be used to scope what files are hashed during
554-
hash generation.
552+
A text file containing a newline separated list of
553+
filepaths (relative to the workspace) these
554+
filepaths should represent the modified files
555+
between the specified revisions and will be used to
556+
scope what files are hashed during hash generation.
555557
-s, --seed-filepaths=<seedFilepaths>
556558
A text file containing a newline separated list of
557559
filepaths. Each file in this list will be read and

‎cli/src/main/kotlin/com/bazel_diff/cli/GenerateHashesCommand.kt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ open class GenerateHashesCommand : Callable<Int> {
179179
names = ["-m", "--modified-filepaths"],
180180
description =
181181
[
182-
"Experimental: A text file containing a newline separated list of filepaths (relative to the workspace) these filepaths should represent the modified files between the specified revisions and will be used to scope what files are hashed during hash generation."])
182+
"A text file containing a newline separated list of filepaths (relative to the workspace) these filepaths should represent the modified files between the specified revisions and will be used to scope what files are hashed during hash generation."])
183183
var modifiedFilepaths: File? = null
184184

185185
@CommandLine.Option(

‎tools/readme_template.md‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,10 @@ neither ever truncates silently — the full count is always reported:
191191
* `--maxDepth` (default `-1`, unbounded) stops the search N dependency hops above the queried
192192
target. When a bound cuts the search short, a warning says so.
193193

194-
## Query Service (experimental)
194+
## Query Service
195+
196+
`bazel-diff serve` is production ready — it has been validated internally in production CI and is
197+
supported for production use.
195198

196199
Instead of running `generate-hashes` from scratch on every CI invocation, you can run `bazel-diff` as
197200
a long-running HTTP service that answers affectedness queries between two git revisions and caches
@@ -242,8 +245,8 @@ curl 'http://localhost:8080/impacted_targets?from=main&to=my-feature-branch'
242245
as unchanged, turning an O(all source files) content read into O(changed files) — the same
243246
optimization as `generate-hashes --modified-filepaths`. The list must be a **superset** of what
244247
actually changed: a truly-changed file left off it is content-skipped on both sides and its
245-
impacted targets are missed (hence experimental). Omit it (or send `[]`) for the full-content hash,
246-
identical to the GET form. `POST /impacted_targets_with_distances` accepts the same body.
248+
impacted targets are missed, so treat the list as a correctness contract. Omit it (or send `[]`)
249+
for the full-content hash, identical to the GET form. `POST /impacted_targets_with_distances` accepts the same body.
247250

248251
```bash
249252
curl -X POST http://localhost:8080/impacted_targets \
@@ -343,7 +346,7 @@ revision are also harmless — entries are deterministic per key, so last-write-
343346
content. The `--cacheMax*` pruning flags bound the *local* tier only; bound the bucket with an S3
344347
lifecycle policy instead.
345348

346-
Notes and current limitations:
349+
Notes and operational guidance:
347350

348351
* Distance metrics (`/impacted_targets_with_distances`) and the generate-hashes graph
349352
(`/dependency_edges`) require the dependency-edge graph, which is

0 commit comments

Comments
 (0)