Repository navigation
row 88: the suite steps build the example cdylibs their tests load by name, always (stacked on #831) - #924
Merged
Conversation
….yaml mirrors modernci-config (oracle, manual)
…ad by name before its first suite xtask/tests/ci_test_fixtures.rs reads every test under crates/ that names its fixture build (`cargo build -p <package> --examples`: busbar-plugin-loader, busbar) and every .ci/*.yaml step that runs `cargo nextest run`, and refuses a step that does not run `cargo build --locked -p <package> --examples` for each before its first suite. Red on this commit: default.yaml test, default.yaml test-gated and predev.yaml test-gated build neither, so a ModernCI run scoped to busbar alone leaves the loader's neutral_frame_door unbuilt (#833's 22 root::serve/root::registry failures).
…y name, always A test that dlopens an example cdylib fails, never skips, when it is absent. The `test` step only got the loader's examples as a side effect of a workspace-wide test build; under `scope: affected` a run of busbar alone built none, and the neutral frame door's 22 composition-root tests failed on changes that never touched them (#833). Each suite step (default.yaml test and test-gated, predev.yaml test-gated) now runs `cargo build --locked -p busbar-plugin-loader --examples` and `cargo build --locked -p busbar --examples` before its first suite. Always: no variable tells a step the affected set, so the build cannot be keyed to it. Turns the previous commit's RED green.
MattJackson
marked this pull request as ready for review
October 14, 2026 13:49
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
… tenant owns toolchain; operator removed Rust on v0.4.1448). Each cargo check sources .ci/tool.sh when present (#1035) else the inline BUSBAR_TOOL_SH (pinned, sha-verified rustup-init 1.28.2 + rustup toolchain install, nextest 0.9.148, deny 0.20.2, jq 1.7.1). Also re-syncs with predev's file (#924 example cdylib builds; git-history on gates).
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
…tenant owns toolchain; operator removed Rust on v0.4.1448). Each cargo check sources .ci/tool.sh when present (#1035) else the inline BUSBAR_TOOL_SH (pinned, sha-verified rustup-init 1.28.2 + rustup toolchain install, nextest 0.9.148, deny 0.20.2, jq 1.7.1). Also re-syncs with predev's file (#924 example cdylib builds; git-history on gates).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Row 88 (predev
testgreen). This is a stacked draft on #831 (lane-ci-test-gated) and stays a draft until #831 lands (rule 19).Root cause
A test that dlopens an example cdylib fails, and never skips, when that library is absent (
crates/busbar/tests/common/plugins.rs::missing). Theteststep only gotbusbar-plugin-loader's examples because a workspace-wide test build happened to build them. Underscope: affected, a run ofbusbaralone builds no other package's examples. On #833, a run of 1,189 tests covering onlybusbar, that leftneutral_frame_doorunbuilt, and 22 tests failed with "the neutral_frame_door cdylib is not built":root::serve::money_tests(serve_money.rs),root::serve::framed_testsand tworoot::registry::tests. The same tests pass on full runs (#842, #821).Change
c2c3f548b0RED:xtask/tests/ci_test_fixtures.rs::an_affected_scope_run_of_busbar_alone_builds_the_examples_its_tests_load.crates/names in its fixture-build command (cargo build -p <package> --examples). Today that isbusbar-plugin-loaderandbusbar. The test fails if the scan finds neither, so it can never pass on an empty scan..ci/*.yamlstep that runscargo nextest runto runcargo build --locked -p <package> --examplesfor each of them before its first suite.default.yaml:test,default.yaml:test-gatedandpredev.yaml:test-gated.f6ada72804fix: those three steps build both packages' examples by name, unconditionally. The build cannot be limited to scopes that need it, because no variable gives a step the affected set (.ci/uses onlyMODERNCI_TO_SHA,MODERNCI_TO,MODERNCI_COMMITandMODERNCI_ONLY). Building by package name also keeps the build from being narrowed by a scope that rewrites--workspace.Not a
$change.