fix(ci): git-source gpui-form; patch gpui-query release build; clear lint drift - #4
Merged
hmziqrs merged 1 commit intoAug 22, 2026
Conversation
…build master CI has been red since 2026-07-21 (runs 29828508874, 30356195053): every job died at workspace-manifest load because Cargo.toml pointed the seven gpui-form* deps at absolute local paths (/Users/hmziq/fo/form/...), which exist on no runner or other dev machine. Manifest - Restore crates/gpui-form* (v0.5.1, byte-identical to 3bcacd5 - the set CI last built green in PR freeoxide#3) as workspace members with relative path deps. They inherit master's pinned gpui/gpui-component revs via workspace = true, keeping the graph unified. Published crates.io 0.5.1 is an older architecture (no component/schema/codegen crates) and cannot compile form_page.rs; vendoring is the only CI-buildable source until the 0.5.x set is published. - Cargo.lock reconciled: 7x 0.5.2->0.5.1 + trybuild/target-triple dev-deps; cargo metadata --locked passes. gpui-query release build (would have stayed red behind the manifest fix) - cargo check --release fails INSIDE published gpui-query 0.1.4 (also 0.2.0, and upstream master): hook/query_hooks.rs's release-only #[cfg(not(debug_assertions))] fallback calls cx.new() without importing gpui::AppContext. Dev builds never compile that branch, which is how every green run masked it - no release build of this pinned graph has ever run. Vendor the published 0.1.4 source at crates/gpui-query with a cfg-gated one-line import fix, patched in permanently via [patch.crates-io]. - scripts/toggle-gpui-query.sh rewritten: the marker block now holds exactly one active line (vendored default <-> standalone checkout); two active gpui-query keys would be a TOML duplicate-key error. Clippy / fmt - #[allow(clippy::double_must_use)] on NotificationBackend - new nightly lint on #[async_trait]'s generated must_use wrappers. - cargo fmt --all over the audit-sweep drift (20 files; those commits never saw a fmt check - CI died before reaching it). Release pipeline (ships broken artifacts; not exercised by CI runs) - gen-pkgbuild.sh: bake the releasing repo into the PKGBUILD's ${REPO:-...} default. release.yml's REPO env was dead code - the heredoc escape kept the default hard-coded, so fork-cut releases ship PKGBUILDs whose source URL 404s. - gen-pkgbuild.sh package(): prefix paths with gpui-starter/ to match the tarball's nested layout (install hit the directory; lib/ was silently skipped). Validation (local, nightly 2026-08-16, mirrors CI exactly): check / check --release / clippy -- -D warnings / fmt --all --check / test -p gpui-starter --lib (187 passed) - all green.
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.
Why master CI is red
Both failing runs (29828508874, 30356195053) died at workspace-manifest load on every job:
bb628cbpointed the sevengpui-form*deps at absolute local paths;2c3e5c2deleted the vendoredcrates/. No runner (or other dev machine) can even runcargo metadata.The fix — external sources, nothing vendored
gpui-form → git deps
All seven crates from
freeoxide/gpui-form@8a373a9(single checkout, no vendored files in this repo). That repo pins the identical zed gpui (1d217ee) and gpui-component (e416af7) revs as this workspace → one unified graph (verified in the lock), resolving to 0.5.2 — the exact version master'sCargo.lockalways carried. crates.io is not an option: only the older 0.5.1 architecture is published there, and-schema/-component*/-codegenwere never published at all.gpui-query release build — second blocker hiding behind the first
cargo check --release(the Check job runs it; so does every release build) fails inside publishedgpui-query0.1.4 — also 0.2.0 and upstream master:hook/query_hooks.rs's release-only#[cfg(not(debug_assertions))]fallback callscx.new()without importinggpui::AppContext. Dev builds never compile that branch — which is how every green run masked it. The app cannot ship a release as-is.Fix:
[patch.crates-io]→hmziqagent/gpui-query @ f84eac4(= tagv0.1.4+ the one-line cfg-gated import fix). Upstream PR: freeoxide/gpui-query#11 — once a fixed release ships, delete the patch line.scripts/toggle-gpui-query.shnow enforces exactly-one-active-line in the marker block (default git rev ↔ standalone Mac checkout; two active keys = TOML error).Clippy / fmt (audit-sweep drift, never validated by CI)
#[allow(clippy::double_must_use)]onNotificationBackend— new nightly lint on#[async_trait]'s generated#[must_use]wrappers.cargo fmt --allover 20 files of drift.Release pipeline (ships broken artifacts; not exercised by CI runs)
gen-pkgbuild.sh: bake the releasing repo into the PKGBUILD's${REPO:-…}default —release.yml'sREPOenv was dead code (heredoc escaping), so fork-cut releases ship PKGBUILDs whosesource=URL 404s.gen-pkgbuild.shpackage(): prefix paths withgpui-starter/to match the tarball's nested layout (installwas hitting the directory;lib/was silently skipped).Validation (local, nightly 2026-08-16 — mirrors every CI job)
cargo checkcargo check --releasecargo clippy -- -D warningscargo fmt --all -- --checkcargo test -p gpui-starter --libLock verified: single
gpui-componentrev, singlees-fluentfamily,gpui-form*all 0.5.2 from one git checkout,gpui-query0.1.4+fix from the pinned patch rev.Known residuals (documented, deliberately not "fixed" here)
timeout-minutes.RUST_MIN_STACKstays removed from release jobs (deliberate, documented, root cause fixed).freeoxide/gpui-form@8a373a9(pin bumps are now explicit rev changes) andhmziqagent/gpui-query@f84eac4(retire after fix: import AppContext for release-profile cx.new() in use_query_manual gpui-query#11 ships in a release).🤖 Generated with Claude Code