Switch the view gate on, and bring CI up to the conventions - #19
Merged
Merged
Conversation
Three things that had drifted, and one that was never there. **The workflows follow the naming rule again** (CONVENTIONS §2): lower kebab case, a verb prefix that means the same in every repository, and a `name:` a reader can trace back to the file when they see a red check. This retitles every required status check at once - branch protection has to be moved with it. **A weekly run.** The sibling repositories are resolved from their main branch with no version pin, and not one workflow here had a schedule. A rename upstream therefore broke this repository silently and stayed broken until somebody happened to open a pull request. rap-ext spent ten days that way with a green badge; this is the trigger that would have caught it. **`check` and `test`.** CONVENTIONS §3 asks every repository for both, because they are the two commands somebody types before reading anything - and `check` runs what CI runs, so a contributor can reproduce it. abaplint is pinned through the lockfile, actions are pinned to a commit with the version in a trailing comment, and Dependabot groups the updates into one pull request. **abap2ui5lint**, which is the new one. It reads an app class and the view it builds together, and until the views moved onto the released builder it could not read a line of this repository. What it finds today is frozen in abap2ui5lint-baseline.json: those entries are counted and never listed, a NEW finding fails the gate, and an entry whose finding is gone is stale and fails too - so the file only shrinks. The README badge block follows the samples layout: what the addon is, then the workflows grouped by what they prove, then two shields.io endpoints the linter rewrites on every run. Those two exist because a green workflow badge only says the job exited zero - which was equally true when the linter had nothing here it could check. The render gate stays off, for the reason this repository has always given: it loads every control from the UI5 distribution, and the controls this repository exists to ship are not in it. The property gate is new, and it reads every view - including the two sap.ui.core.Item bindings in sample_05 that resolve against no binding context and render empty. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XUhL1rra5QZbr4hV14YZXM
CONVENTIONS §6 asks every repository for a README, an AGENTS.md, a CLAUDE.md pointing at it, a CONTRIBUTING.md and a SECURITY.md. Between the eleven addons there were four AGENTS.md, no CLAUDE.md at all, no CONTRIBUTING.md at all, and six SECURITY.md. The CONTRIBUTING.md is the one that earns its keep: it names the gates this repository actually has, what each one proves, and how the abap2UI5-linter baseline works - that a recorded finding is counted and never listed, that a new one fails, and that an entry whose finding is gone is stale and fails too, so the file only shrinks. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XUhL1rra5QZbr4hV14YZXM
5 tasks
The two shields.io endpoints the linter writes were sitting in a row of their own at the bottom, next to a check-abap2ui5 workflow badge. samples arranges them differently, and the arrangement carries the meaning: - the CORPUS badge belongs in the identity row, beside the namespace. "2 apps · 2 views · 20 controls" is what this repository IS, not what a run made of it. - the CHECKS badge REPLACES the check-abap2ui5 workflow badge instead of standing beside it. A workflow badge only says the job exited zero, which was equally true while the linter could not read a single view here; the endpoint says how many rules passed, and goes grey when there is nothing to check. Carrying both said the weaker thing twice. Where the linter runs as one job of a broader `check` workflow rather than in a dedicated one, that workflow badge stays - it reports abaplint and the build gates too, which the endpoint does not. Also fixed while rearranging: the ABAP badge was linking to `#install` in every repository, and only three of them have such a section. It links to the real heading where there is one and is a plain image where there is not - a badge whose link goes nowhere being the thing this audit was about. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XUhL1rra5QZbr4hV14YZXM
The vendor and app2bsp gates have been red on main since 15 August, at their "is up to date" steps. The cause is a local build committed by mistake: app/webapp/cc/LibUrls.js carries the variant that vendors every library into the BSP, which belongs on the `local` branch, while src/01/ still carried the CDN one. app2bsp regenerated from app/ and got a different file than the committed artefact, every run. `npm run vendor && npm run app2bsp` restores the CDN build. That also lets two library versions reach the shipped BSP, which is the whole point of the gate - the CDN URLs are derived from package.json so that the URL a system loads and the version this repository was tested against are the same by construction: chartjs-chart-venn 4.2.7 -> 4.3.7 dompurify 3.1.6 -> 3.4.13 Running both generators again produces no further change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XUhL1rra5QZbr4hV14YZXM
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.
Part of an audit across all thirteen abap2UI5 repositories. This one is the outlier in a good way: its views were already on
z2ui5_cl_ui5_view_builder, so nothing here needed porting. What it did not have was a gate reading them.Two real defects, found the moment one ran
Plus four
non-released-apiwarnings (the vendored AJSON copy in the core'ssrc/00/01, which is internal and renamed without notice), twobinding-type-mismatchonsap.m.StepInputwhere a character field is bound to afloatproperty, and one layout hint. Nine findings in a repository whose CI was green.They are recorded in
abap2ui5lint-baseline.jsonrather than fixed here — fixing a binding is an app change and belongs in its own pull request. The baseline counts them and never lists them; a new finding fails the gate, and an entry whose finding is gone is stale and fails too, so the file only shrinks.The render gate stays off
Deliberately, and this is the one repository where that is the right call — the header of
check.ymlhas said so all along. The render gate loads every control from the UI5 distribution, and the controls this repository exists to ship (z2ui5_cci.cc.SignaturePadand the rest) are not in it: a custom control is invisible to UI5 metadata by definition.abap2ui5lint.jsoncnow says it in the config, with that reason, instead of it being implicit in a workflow comment.The property gate reads every view regardless — 12 files, 11 views, 197 controls of 32 types.
CI
checkworkflow, next toabaplint.checkwas missing — CONVENTIONS §3 asks every repository forcheckandtest, and this one had onlytest.npm run checkruns lint, the view gate and the Node tests.A note for
sql-consoleThat repository named
z2ui5_cl_cc_spreadsheet— the name this one used before the move to theccinamespace — and has not compiled since. sql-console#24 moves it ontoz2ui5_cl_cci_spreadsheet=>render( ), so the tag is owned here rather than hand-built there, which is what let the two drift apart.Verification
npm run checkpasses; the view gate reports 12 files, 0 failing.Generated by Claude Code