Repository navigation
feat: Backstage 1.55.0 remove ignored github:repo:create inputs - #170
Conversation
|
Release blocker (awaiting issue owner decision): the issue-required package ID |
|
Independent code review gate remains blocked despite name-length CI fix: flow |
|
Fresh actual-diff final review at ed2b941 found P2 false TODO: anchored direct |
…OLE-153-recovery-writer.-User-merged-shared-hook-README-PR-175-at-c292df7-curre-a378134b-4bad11c-43d0-s0-t0
Summary
Closes #153. For Backstage 1.55.0 Template YAML, remove the 20 now-ignored direct
inputkeys only onspec.steps[]with exactaction: github:repo:create. Preserve unrelated steps/keys, comments, YAML spelling, and multi-document boundaries. Quoted target actions under tags/anchors, including aliases to quoted anchors, receive an idempotent review TODO rather than silently skipping affected input. Foldedgithub:repo:create-extrastays untouched. An unreferenced anchored input mapping is edited directly; shared anchored input, merges, ambiguous aliases/expressions, and folded target actions retain original input and receive a review TODO. No AI fixup.Fixture before → after (the non-target
github:repo:pushstep retains itsprotectDefaultBranch):- id: create action: github:repo:create input: repoUrl: github.com?repo=demo&owner=team - protectDefaultBranch: true - sourcePath: ./skeleton - requiredLinearHistory: true description: keep mePackage name:
@backstage/remove-ignored-repo-create-inputs(44 chars), rather than the 51-character ID proposed in #153; approved to satisfy the registry limit. Minor changeset:.changeset/little-emus-invite.md. RootREADME.mdis byte-identical to current PR base (594ea8f5735e99fa549d3efe9228c145f2cf3d67): manual README index sync remains separate perCONTRIBUTING.md.Evidence
Follow-up gate commit
6fe89df5b1b664860df7090767e6afee83306dd2, fast-forwarded from36cbcf2dcf71ad35d8ee2790ccd6444c3271e827(prior edit fix); merge commit522798c04b49b3287975a539c35f5e2b71d64b7eintegrates main594ea8f5735e99fa549d3efe9228c145f2cf3d67. No force push; independent exact-head reconciliation review found no blockers.Dense gate now runs from package
yarn test→ rootyarn testand changed-package CI. Same 1,200-step workflow runs three no-op and three real transforms, taking the median of each; the no-op changes one action character per step but keeps byte length/parser shape. Real median must stay below 5× no-op median; no absolute timeout. Every result is byte-compared, plus a repeat run verifies idempotence. Swapping onlyscripts/codemod.tsto old5781917caused the new gate to fail (no-op=1,526ms, real=33,676ms; exit 1); current source passed (1,524ms/1,528ms; exit 0). Repeated samples reduce scheduling noise; timings remain synthetic and machine-dependent, not a production latency guarantee.Full shipped-workflow diagnostic, 3,005 files (2,700 eligible inert + 300
node_modulesexcluded + five positives): no-op 1.046s → real 1.047s → repeat 3.060s. Five positive files exactly match fixture SHA-256; no-op and repeat full-corpus hashes unchanged relative to preceding runs; excluded files unchanged. Dense shipped-workflow 600 steps: no-op 1.042s → real 1.039s → repeat 1.039s; 1,200 steps: 1.044s → 1.051s → 1.037s. Both dense outputs byte-match generated expected text, retain everydescriptionandrepoUrl, remove 1,200/2,400 deprecated keys, and remain byte-identical on repeat. Baseline independent evidence: 600 real 9.927s, 1,200 real 35.979s (3.62× doubling); new observed real times are near no-op. Hash snapshots, argv, return codes, and CLI logs:C:/Users/pschu/AppData/Local/Temp/jssg-pr170-optimized-q3tbn6q4. First no-op benchmark run completed but log writing failed on Windowscp1252; rerun succeeded and is the reported no-op timing. Callback counts were not instrumented.55/55 JSSG fixtures and workflow validation passed, covering CRLF without EOF newline, Unicode, comments, aliases/TODO and idempotence.
yarn format,yarn format:check,yarn lint, packageyarn test, rootyarn test,yarn check:changed, andgit diff --checkpassed locally; root test median=1,525ms no-op/1,517ms real. Husky pre-commit/pre-push hooks active; neither bypassed. No--allow-fs, YAML reserialization, hand-edited versions, or root README churn. Existing minor changeset.changeset/little-emus-invite.mdremains.Full root
yarn testcreates the known feat(v1.55.0): add remove-relations-compatibility-config codemod #162 untracked 145-bytecodemods/v1.55.0/remove-relations-compatibility-config/tests/flow-inline-comment-preserved-when-catalog-emptied/metrics.json(Git blob42847c1041d21d4278619381aa2d51455bc1b654). The exact path/size/blob were verified, the file backed up outside the worktree at/tmp/pr170-metrics-a44Lh0.json, then only that artifact was removed; root tests do not leave the worktree clean without this cleanup.Exact-head GitHub CI
TestandChangeset Checksucceeded at522798c04b49b3287975a539c35f5e2b71d64b7e: https://github.com/backstage/codemods/actions/runs/38457958066 .Testpassed 55 fixtures and the integrated dense gate (no-op=1,270ms, real=1,271ms; synthetic medians of three).Merge Danger
Door: two-way; additive codemod package + fixtures + changeset, reversible by revert. Blast radius: only this YAML migration package; existing templates change only when users run it. Root README unchanged versus PR base. Dense-file timing is synthetic, repeated same-size relative evidence, not a production throughput guarantee; fresh independent exact-head review found no blockers. Only #170 is in scope for merge; Version Packages #177 and draft recipes #158–#160 remain unmerged; publishing stays separate.