You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Roadmap lint cannot check a Blocked-by decision anchor in a non-Markdown file #3567
_check_blocked_by in specfuse/loop/lint_roadmap.py checks that the file exists and sits under decisions.location, but checks the fragment only for Markdown targets (target.suffix == ".md"). A renamed or withdrawn decision passes the same way, so the one check that ties a blocker to a specific decision is off for the projects style: entries was added for.
Proposed
Add an opt-in decisions.entryKey naming the key that holds an entry's id. Without it, behavior stays as today.
Report a missing fragment as an ERROR under status: blocked, worded like the Markdown finding: … points at '<file>', which has no anchor '<id>'.
A decision still under review links to the file with no fragment, or to its PR; both already pass. The link gains its #id when the entry lands.
If the target's shape cannot be read for entryKey, report a clear finding, never a silent pass.
Notes for the fix
Do not parse the whole file with _miniyaml. It rejects block scalars and flow mappings by design (literal/folded block scalars unsupported), and decision files can hold both. The loop has no runtime dependencies, so scan lines for entryKey: <value>, and use stdlib json for JSON.
Rows not in blocked never reach these link checks; a leftover Blocked-by block already gets a WARN, which covers a forgotten unblock.
Activity