Skip to content

Fix release-please failure from windows-platform-probes self-dependency cycle - #93

Merged
MikeGrier merged 8 commits into
mainfrom
copilot/fix-release-please-action
Sep 17, 2026
Merged

MikeGrier merged 8 commits into
mainfrom
copilot/fix-release-please-action

Conversation

Copilot AI commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

release-please was failing while building the Cargo workspace dependency graph. The failure came from windows-platform-probes depending on itself in dev-dependencies, which introduced a cycle that the release plugin could not order.

  • Manifest change

    • Remove the self dev-dependency from crates/windows-platform-probes/Cargo.toml.
    • Replace that implicit feature wiring with an explicit integration test target:
      • [[test]]
      • required-features = ["oracle-in-renderer"]
  • CI wiring

    • Update the probes test job to enable oracle-in-renderer explicitly when running the windows-platform-probes test suite.
    • Keep the integration test coverage that needs report_oracle, without leaving a package-to-itself edge in workspace metadata.
  • Net effect

    • release-please sees an acyclic workspace graph again.
    • Probe integration tests still run with the feature they require.
[[test]]
name = "a_real_report_agrees_with_itself"
path = "tests/a_real_report_agrees_with_itself.rs"
required-features = ["oracle-in-renderer"]
run: cargo test -p windows-platform-probes --features oracle-in-renderer --locked --no-fail-fast -- --include-ignored

Copilot AI lite review requested due to automatic review settings September 17, 2026 06:13

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.

Copilot wasn't able to review any files in this pull request.


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Co-authored-by: MikeGrier <220633264+MikeGrier@users.noreply.github.com>
Copilot AI review requested due to automatic review settings September 17, 2026 06:17
Copilot AI changed the title [WIP] Fix the failing GitHub Actions job release-please Fix release-please failure from windows-platform-probes self-dependency cycle Sep 17, 2026
Copilot AI requested a review from MikeGrier September 17, 2026 06:20

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.

🟡 Changes recommended

The lockfile is stale and default test wiring does not enable the required oracle feature.

Get a fresh assessment by requesting another Copilot review.

Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 3
  • Review effort level: Lite

Comment thread .github/workflows/ci.yml Outdated
# every test build, and a matching `serde` dev-dependency was dead weight --
# removed after confirming all 213 tests still pass without it.
# comment claimed.** The integration test that needs that gate is instead
# declared explicitly above with `required-features = ["oracle-in-renderer"]`,

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated in 646526a: regenerated Cargo.lock and removed the stale windows-platform-probes self-dependency entry from the package dependencies list.

Comment on lines +227 to +229
# declared explicitly above with `required-features = ["oracle-in-renderer"]`,
# so ordinary unit-test builds keep exercising the `cfg(test)` arm while that
# one target runs with the feature on.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated in befe334: corrected the stale oracle-in-renderer wiring references in src/lib.rs and src/topology_report.rs, and updated crates/windows-platform-probes/README.md test command to run with --features oracle-in-renderer.

Co-authored-by: MikeGrier <220633264+MikeGrier@users.noreply.github.com>
Copilot AI review requested due to automatic review settings September 17, 2026 06:25
Co-authored-by: MikeGrier <220633264+MikeGrier@users.noreply.github.com>
Copilot AI and others added 3 commits September 17, 2026 06:26
Co-authored-by: MikeGrier <220633264+MikeGrier@users.noreply.github.com>
Co-authored-by: MikeGrier <220633264+MikeGrier@users.noreply.github.com>
Co-authored-by: MikeGrier <220633264+MikeGrier@users.noreply.github.com>

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.

🟡 Changes recommended

Unresolved manifest and CI issues must be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Review details

Suppressed comments (3)

.github/workflows/ci.yml:167

  • This step is labeled as the default-feature test pass, but --features windows-platform-probes/oracle-in-renderer enables a non-default feature for that package. As a result CI no longer runs cargo test --workspace in the minimal configuration described at the top of this workflow; the separate probes job also runs with this feature enabled. Keep this command featureless for the default pass, and rely on the probes job (or a separate feature-on pass) for the required integration target.
        run: cargo test --workspace --locked --no-fail-fast

crates/windows-platform-probes/Cargo.toml:103

  • This target is now omitted by cargo ... --all-targets commands unless oracle-in-renderer is passed. In particular, the existing i686 and x86-64-without-cmpxchg16b dwcas-gating checks invoke cargo check -p windows-platform-probes --all-targets without that feature, so they no longer compile-check this integration target after the self-dependency removal. Add the feature to those cross-target checks or add equivalent feature-on checks to retain that coverage.
required-features = ["oracle-in-renderer"]

crates/windows-platform-probes/src/topology_report.rs:987

  • The required-feature integration test does not spawn a probe: a_real_report_agrees_with_itself builds the report in-process (real_report() calls report). This comment therefore misstates where the assertion runs and could send future changes to the wrong test boundary; describe the integration target as invoking this renderer directly (the separate stdout test is the one that spawns a binary).
    // be discovered: binaries built by the feature-on test command assert, so a
    // probe spawned by the required-feature integration target aborts on a
    // contradiction instead of printing it; and so does an `--all-features`
  • Files reviewed: 5/6 changed files
  • Comments generated: 1
  • Review effort level: Lite

Comment thread crates/windows-platform-probes/Cargo.toml
Copilot AI review requested due to automatic review settings September 17, 2026 06:31
Copilot AI requested a review from MikeGrier September 17, 2026 06:32
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@MikeGrier
MikeGrier marked this pull request as ready for review September 17, 2026 06:36

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.

🔵 Needs a closer look

Unfeatured test paths still lack direct serde, CI coverage is incomplete, and default builds skip the documented integration tier.

Review details

Suppressed comments (3)

.github/workflows/ci.yml:233

  • report_oracle is still compiled for this package's unit-test target under cfg(test), but serde is declared only as an optional normal dependency. This flag applies only to --test a_real_report_agrees_with_itself; the preceding probe test and the workspace default build/test --all-targets (as well as the cross-target checks) still select this crate without the feature, so removing the self dev-dependency leaves those test builds without the direct serde dependency. Restore a direct test-only serde dependency or consistently exclude the probe crate from no-feature workspace checks and run its test targets with the feature enabled.
        run: cargo test -p windows-platform-probes --features oracle-in-renderer --locked --test a_real_report_agrees_with_itself -- --include-ignored

crates/windows-platform-probes/Cargo.toml:103

  • Declaring required-features makes this integration target disappear from ordinary default-feature cargo build/test --all-targets; Cargo compiles it only when oracle-in-renderer is enabled. That contradicts the crate README's unchanged statement that every tier is compiled by an ordinary workspace build (README.md:62-63), so a green default build no longer implies this tier was compiled; update that documentation or make the default build feature-on.
[[test]]
name = "a_real_report_agrees_with_itself"
path = "tests/a_real_report_agrees_with_itself.rs"
required-features = ["oracle-in-renderer"]

crates/windows-platform-probes/Cargo.toml:229

  • The unfeatured unit-test command still compiles the library with cfg(test), so it includes report_oracle; that module directly uses serde::Deserializer, but serde is only an optional normal dependency and the remaining serde_json dev-dependency does not enable this crate's optional serde feature. As a result, the ordinary unit-test configuration has no direct serde dependency for the oracle path. Add serde as a dev-dependency (while keeping the optional dependency for feature-on integration builds), or otherwise provide the dependency to the unfeatured unit-test build.
# declared explicitly above with `required-features = ["oracle-in-renderer"]`,
# so ordinary unit-test builds keep exercising the `cfg(test)` arm while that
# one target runs with the feature on.
  • Files reviewed: 5/6 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings September 17, 2026 06:39
@MikeGrier
MikeGrier merged commit 7666411 into main Sep 17, 2026
32 checks passed
@MikeGrier
MikeGrier deleted the copilot/fix-release-please-action branch September 17, 2026 06:40

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.

🔵 Needs a closer look

Review follow-ups remain for duplicate CI coverage and inaccurate renderer-test documentation.

Review details

Suppressed comments (2)

.github/workflows/ci.yml:233

  • cargo test --workspace --all-features in the build-test job already enables this feature and includes this required-features integration target, so this step runs the same target again without adding coverage. Either remove this duplicate invocation, or exclude windows-platform-probes from the workspace-wide all-features test and keep this as its sole feature-on run.
      - name: cargo test (windows-platform-probes oracle-in-renderer integration target)
        env:
          RUST_BACKTRACE: 1
          RUST_LIB_BACKTRACE: 1
        run: cargo test -p windows-platform-probes --features oracle-in-renderer --locked --test a_real_report_agrees_with_itself -- --include-ignored

crates/windows-platform-probes/src/topology_report.rs:988

  • This describes a child process that the required-feature target does not create: a_real_report_agrees_with_itself calls report/report_unmeasured directly in the test process. That distinction matters when documenting what the target exercises; describe the direct renderer call instead of saying a spawned probe aborts.
    // be discovered: binaries built by the feature-on test command assert, so a
    // probe spawned by the required-feature integration target aborts on a
    // contradiction instead of printing it; and so does an `--all-features`
    // build. The evidence survives in every case, because the assertion's
  • Files reviewed: 5/6 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

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.

3 participants