Run UI compile checks in CI when only an OpenAPI spec changes - #70643
Merged
pierrejeambrun merged 1 commit intoJul 29, 2026
Conversation
shahar1
requested review from
amoghrajesh,
ashb,
bugraoz93,
choo121600,
ephraimbuddy,
gopidesupavan,
jason810496,
jedcunningham,
jscheffl,
potiuk and
vatsrahul1001
as code owners
July 28, 2026 21:02
Contributor
Author
|
CC: @seanghaeli |
bbovenzi
approved these changes
Jul 28, 2026
seanghaeli
approved these changes
Jul 28, 2026
amoghrajesh
approved these changes
Jul 29, 2026
apache#68919 changed _private_ui.yaml without regenerating the TypeScript client and CI stayed green: selective checks decide whether to skip the ts-compile-lint-* hooks from file groups that do not cover the UI codegen input specs, while the hooks themselves trigger on any yaml under the openapi directories. The stale client then masked a type error that broke main for every PR running full static checks. The same gap applied to v2-simple-auth-manager-generated.yaml, so a spec-only change also skipped the simple auth manager UI hook. Track the codegen-input specs in their own file group so spec-only changes run the UI hooks without forcing the full test matrix, and drop the main UI hook trigger for the simple auth manager spec: that pattern was copied in when the hook was created (apache#51725), a month after the spec was renamed v1 to v2 (apache#50705), so it has never matched a file - apache#53636 fixed the sibling hook's copy but missed this one. The main UI codegen does not consume that spec either.
shahar1
force-pushed
the
fix-selective-checks-ui-openapi
branch
from
July 29, 2026 05:40
2791035 to
d86ee7f
Compare
Contributor
Backport successfully created: v3-3-testNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
|
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.
#68919 changed
_private_ui.yamlwithout regenerating the UI TypeScript client and CI stayed green: selective checks decide whether to skip thets-compile-lint-*hooks from file groups that did not cover the UI codegen input specs, while the hooks' ownfiles:triggers match any yaml under the openapi directories. The stale committed client then masked a type error that brokemainfor every PR running full static checks (fixed by #70637). The same gap applied tov2-simple-auth-manager-generated.yaml: a spec-only change also skipped the simple auth manager UI hook.This tracks the codegen-input specs in their own
UI_OPENAPI_FILESgroup, used only in the hook-skip rule — deliberately not inAPI_CODEGEN_FILES, which would force the full test matrix for every UI-endpoint change. It also removes thets-compile-lint-uitrigger for the simple auth manager spec: that pattern was copied in when the hook was created (#51725), a month after the spec was renamed v1→v2 (#50705), so it has never matched a file — #53636 fixed the sibling hook's copy but missed this one — and the main UI codegen does not consume that spec (ui/openapi-merge.json).Verified: replaying #68919's exact file list now runs both hooks with
full-tests-needed=false; differentialSelectiveChecksruns across 50+ file-set/event/branch scenarios show the only changed output anywhere isskip-prek-hooks, and only for the spec files. The regression test pins each group pattern individually (mutation-tested), plus a targetednot inassertion that survives mechanical refreshes of the skip-list constants.related: #68919
Note
Land #70637 first: this PR itself triggers full static checks (
dev/breezeis inENVIRONMENT_FILES), which run the UI hook against the currently stale client onmain.Review notes (three independent review rounds; remaining items are cosmetic, taken or left at maintainer discretion): the doc parenthetical "a generated spec still does" could name the REST API spec explicitly; "superset of the first hook's triggers" in the group comment could carry an extra "openapi" qualifier; a prek hook asserting the hook triggers stay ⊆
UI_FILES ∪ UI_OPENAPI_FILESwould guard this drift class permanently and is left as a possible follow-up.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Fable 5) following the guidelines