fix(ci): git-source gpui-form; patch gpui-query release build; clear lint drift - #6
Closed
hmziqagent wants to merge 2 commits into
Closed
Conversation
…lint drift 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. gpui-form -> git deps (no vendoring, no absolute paths) - All seven crates from freeoxide/gpui-form @ 8a373a9 (one checkout). That repo pins the identical zed gpui (1d217ee) + gpui-component (e416af7) revs as this workspace -> single unified graph; resolves to 0.5.2, the exact version master's Cargo.lock always carried. crates.io is not an option: only the older 0.5.1 architecture is published there and the -schema/-component*/-codegen crates were never published. gpui-query release build (second blocker hiding behind the first) - cargo check --release fails INSIDE published gpui-query 0.1.4 (also 0.2.0 and upstream master): the release-only #[cfg(not(debug_assertions))] fallback in hook/query_hooks.rs calls cx.new() without importing gpui::AppContext. Dev builds never compile that branch, which masked it; no release build of this pinned graph had ever run. Patch to hmziqagent/gpui-query @ f84eac4 (v0.1.4 + the one-line cfg-gated import fix; PRred upstream as freeoxide/gpui-query#11 - drop the patch once a fixed release ships). - scripts/toggle-gpui-query.sh: marker block now holds exactly one active line (default git rev <-> standalone Mac checkout); two active gpui-query keys would be a TOML duplicate-key error. Clippy / fmt (audit-sweep drift, never validated by CI) - #[allow(clippy::double_must_use)] on NotificationBackend - new nightly lint on #[async_trait]'s generated must_use wrappers. - cargo fmt --all over 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's REPO env was dead code (heredoc escaping), 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/ silently skipped). Validation (local, nightly 2026-08-16, mirrors every CI job): check / check --release / clippy -- -D warnings / fmt --all --check / test -p gpui-starter --lib (187 passed) - all green.
The test lane does full codegen of the zed git graph; any Cargo.lock change invalidates the rust-cache key and the cold rebuild at -j2 needs 60-100+ min. PR freeoxide#6's first run was cancelled by the 30-min cap at 30m17s with rustc mid-compile (all other jobs green). Warm runs stay far under the cap.
hmziqrs
pushed a commit
that referenced
this pull request
Aug 23, 2026
gpui-component e416af7 -> 5a5e2ab (main HEAD); zed gpui/gpui_platform/ gpui_macros now FLOAT (rev-less git deps, frozen by the lockfile) — pinning a zed rev in this workspace while gpui-component@main declares its zed deps unpinned splits the graph into two gpui 0.2.2 copies and every cross-copy trait/method call fails (Styled, FluentBuilder, ElementId From, ClickEvent closures, SharedString). The version = selectors on the zed deps stay: the zed repo root carries 0.0.0 stub packages that otherwise make cargo abort with "resolved to more than one candidate". Resolves to a single gpui (zed#fd82517). gpui-form pins move to hmziqagent/gpui-form@47e296a (bump/gpui-ecosystem branch): same float discipline + the one real API port — StyledExt::focused_border was removed upstream; date_picker/file_picker now use ThemeStyled::focus_ring_style(window, cx), the same idiom the framework's own inputs use. App-side renames (the only two genuine June->Aug breaks): - gpui_component::scroll::ScrollbarShow -> ScrollbarMode; Theme .scrollbar_show -> .scrollbar_mode. The persisted config field keeps its scrollbar_show name and the variants are unchanged, so existing config files still deserialize. - TextViewStyle gained inline_code: HighlightStyle — defaulted (its background falls back to the theme accent). Also raises the CI test-job timeout 30 -> 120 min: any Cargo.lock change invalidates the rust-cache key and the cold rebuild needs 60-100+ min at -j2 (PR #6's first run was cancelled by the 30-min cap mid-compile). Validation (local, nightly 2026-08-16, mirrors every CI job): check / check --release (26m) / clippy -- -D warnings / fmt --all --check / test -p gpui-starter --lib (187 passed) — all green.
Contributor
Author
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).5a5e2ab) + its zed rev (e0931d5a) once this lands — kept separate so CI-repair and ecosystem-bump breakage stay attributable.🤖 Generated with Claude Code