Skip to content

Add nightly check against known semantic convention repos and examples - #1672

Open
lmolkova wants to merge 3 commits into
open-telemetry:mainfrom
lmolkova:downstream-check
Open

Add nightly check against known semantic convention repos and examples#1672
lmolkova wants to merge 3 commits into
open-telemetry:mainfrom
lmolkova:downstream-check

Conversation

@lmolkova

@lmolkova lmolkova commented Aug 5, 2026

Copy link
Copy Markdown
Member

Runs the weaver built from this working tree against the weaver-driven CI checks of the repos that consume it, so breaking changes surface before a release. Repos and checks are declared in downstream-check.yaml, used by both just downstream-check and the nightly workflow.

Runs the weaver built from this working tree against the weaver-driven CI
checks of the repos that consume it, so breaking changes surface before a
release. Repos and checks are declared in downstream-check.yaml, used by both
`just downstream-check` and the nightly workflow.
@lmolkova
lmolkova requested a review from a team as a code owner August 5, 2026 17:40
@opentelemetry-pr-dashboard

opentelemetry-pr-dashboard Bot commented Aug 5, 2026

Copy link
Copy Markdown

Pull request dashboard status

Waiting on reviewers · refreshed 2026-08-05 19:38 UTC

Review the latest changes.

Status above doesn't look right?
  • Just replied or pushed? Anything around or after the refresh time above may not be picked up yet — give it a few minutes.
  • Anything look wrong? Report it with what you expected; it helps us improve the dashboard.

@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.4%. Comparing base (702f2d6) to head (50d2208).

Additional details and impacted files
@@           Coverage Diff           @@
##            main   #1672     +/-   ##
=======================================
- Coverage   81.4%   81.4%   -0.1%     
=======================================
  Files        131     131             
  Lines      11714   11714             
=======================================
- Hits        9539    9538      -1     
- Misses      2175    2176      +1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

The downstream check drives sh commands, so it is unix-only in practice, but
it still has to compile everywhere: gate the process-group handling on unix
and fall back to killing just the spawned child.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a nightly (and on-demand) “downstream check” that builds Weaver from this repo and runs a curated set of Weaver-driven checks in downstream repositories, so breaking changes are detected before release.

Changes:

  • Introduces cargo xtask downstream-check to clone downstream repos and execute configured checks with timeouts and a summary.
  • Adds downstream-check.yaml as the single source of truth for downstream repos/refs/check commands (shared by local just and the nightly workflow).
  • Adds a Downstream Check GitHub Actions workflow plus contributing docs and a just downstream-check entry point.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
justfile Adds a just downstream-check wrapper over the new xtask.
downstream-check.yaml Declares the downstream repos and the weaver-driven checks to run in each.
crates/xtask/src/main.rs Wires a new downstream-check subcommand into xtask dispatch and help text.
crates/xtask/src/downstream.rs Implements cloning, selection, execution, timeouts, and reporting for downstream checks.
crates/xtask/Cargo.toml Adds serde/serde_yaml deps needed to parse the YAML config.
CONTRIBUTING.md Documents how to run downstream checks locally and what the nightly does.
Cargo.lock Locks new serde/serde_yaml transitive dependencies for xtask.
.github/workflows/downstream-check.yml Adds the nightly/dispatch workflow and a tracking-issue reporter job.
Suppressed comments (2)

crates/xtask/src/downstream.rs:446

  • On timeout, this unconditionally calls kill_group(...) (Unix-only) and relies on the external kill command. To keep xtask portable enough to compile on Windows/macOS, gate the Unix path and fall back to child.kill() on non-Unix platforms.
        }
        if Instant::now() >= deadline {
            eprintln!("!!! timed out, killing the check");
            kill_check(&mut child);

crates/xtask/src/downstream.rs:456

  • kill_group is inherently Unix-specific (spawns the kill command and targets a process group). Once the timeout path is cfg-gated, this function should also be #[cfg(unix)] so the crate still compiles on non-Unix platforms.

/// Signals the whole process group of a check, so anything it spawned dies too.
#[cfg(all(unix, not(tarpaulin_include)))]
fn kill_check(child: &mut Child) {

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread crates/xtask/src/downstream.rs
Comment thread crates/xtask/src/downstream.rs
Comment thread crates/xtask/src/downstream.rs
Comment thread downstream-check.yaml
Comment thread crates/xtask/src/downstream.rs
Comment thread .github/workflows/downstream-check.yml
Build ui/dist in the workflow (the weaver binary embeds it), shell-quote the
weaver path substituted into the check commands, keep multi-line errors from
breaking the job summary table, and fail the live-check example if the admin
endpoint never comes up.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants