The streaming path reported no timings at all, so we have no data for the
path that most runs take. It now reports a total duration, which is also
populated on the download-then-extract path.
That path additionally reports the extraction duration, which was
previously computed but only logged.
`downloadDurationMs` keeps its existing meaning of time spent downloading
alone, so existing telemetry stays comparable.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 628ce334-991a-4578-9c1b-93d2e96bbddb
We are considering shipping trimmed CodeQL bundles containing the CLI and a
single language, as an alternative to today's combined per-platform bundle. This
PR establishes a baseline for how long the current bundle takes, so the effect
can be measured.
downloadAndExtract has two paths. The streaming path (Zstandard on Linux,
which most hosted runners take) downloads and extracts concurrently, and
returned an empty status report — so the dominant path reported no timings at
all. The download-then-extract path reported the download duration and only
logged the extraction duration.
tools_total_duration_ms is the field to compare across the change, being the
only one populated on both paths. The component fields are left unpopulated on
the streaming path, where downloading and extracting overlap and cannot be told
apart. tools_download_duration_ms keeps its existing meaning so earlier data
remains comparable.
The total is wall-clock across the whole call, so where streaming fails it
includes the failed attempt and its cleanup. Those runs stay identifiable: on
Linux, a report containing tools_download_duration_ms is one where streaming
failed.
Compressed bundle size is deliberately not reported. For the common case it is a
function of CLI version and platform, so it is already knowable from the release
assets — and the size saving is the part of this that can be predicted, whereas
the durations are not.
No changelog entry, as there is no user-facing change.
Risk assessment
in what order, and no new failure modes on the download path.
Which use cases does this change impact?
Workflow types:
Products:
Environments:
How did/will you validate this change?
fallback from streaming to download-then-extract.
If something goes wrong after this change is released, what are the mitigation and rollback strategies?
How will you know if something goes wrong after this change is released?
appearing with plausible values is the signal that it works.
Are there any special considerations for merging or releasing this change?
before any change to how the bundle is packaged, since its purpose is to
establish a baseline.
Merge / deployment checklist