renovate: extend org default - #1
Merged
Merged
Conversation
Wires this repo up to Renovate via the shared jellyrock org config (jellyrock/.github//renovate/default). Part of the org-wide Renovate consolidation — no repo-specific overrides needed; ESLint/Prettier grouping, patch automerge gating, weekly minor/major schedule, and Docker digest pinning will all land via the org default (PR 6 in the rollout sequence). PR-triggered CI (.github/workflows/ci.yml) already covers `npm run check` (astro/tsc + eslint + prettier), which gates the patch automerge that the org default will enable.
Pre-existing bug uncovered when CI ran on a PR for the first time (no PRs had been opened against this repo before today, and the CI workflow only triggers on PRs — push to main runs the Deploy workflow which calls astro build, not astro check). copyMarkdownWithFrontmatter() had a "skip if frontmatter already exists" early-return. That blew up against jellyrock/docs/dev/*.md which now have topic:/related-files:/last-reviewed: frontmatter but no title: — Starlight's docsSchema requires title. Restructure into three cases: 1. No frontmatter → synthesize one from H1 / html h1 / filename 2. Frontmatter without title: → inject title; preserve everything else 3. Frontmatter with title: → pass through unchanged H1 is still stripped from the body when used as the title source so Starlight doesn't render the heading twice. Verified locally: astro check now reports 0 errors / 0 warnings / 0 hints across 11 dev-docs files.
Pure formatting; no logic change. Caught by check:prettier on CI.
cewert
force-pushed
the
renovate/extend-org-default
branch
from
May 21, 2026 16:22
d824f12 to
d448838
Compare
jellyrock/docs/dev/*.md contains 117 ```brighterscript code blocks across 8 files (the project's primary language). Without a registered grammar, astro-expressive-code logs a WARN for every block and falls back to plain-text rendering. Vendor the upstream TextMate grammar from rokucommunity (MIT-licensed, single JSON file, 43 KB) and register it via Starlight's expressiveCode.shiki option. The grammar's scope is source.brs and covers both .bs and .brs file types; alias \`brighterscript\` and \`bs\` fence labels to it. Files: - dev-docs/src/syntaxes/brightscript.tmLanguage.json: vendored grammar from rokucommunity/vscode-brightscript-language@v2.65.0 - dev-docs/src/syntaxes/.version-info: tracking annotation for Renovate (the sync workflow added in the next commit re-fetches the grammar when the ref bumps, so a single review/merge updates both files) - dev-docs/astro.config.mjs: load grammar, register langAlias - .prettierignore: exclude src/syntaxes/ so vendored upstream content keeps its original formatting through prettier --check Verified locally: npm run check passes, brighterscript code blocks now highlight properly with no expressive-code warnings.
Closes the loop on grammar vendoring. Without this, the previous commit's vendored JSON would silently drift from upstream until someone manually re-fetched. How it works: 1. Renovate scans dev-docs/src/syntaxes/.version-info (see new customManagers entry in renovate.json) and opens a PR bumping `ref: v2.65.0` → `ref: vX.Y.Z` when a new release of rokucommunity/vscode-brightscript-language ships. 2. The PR's path trigger fires sync-brightscript-grammar.yml. 3. The workflow re-fetches brightscript.tmLanguage.json from the new tag (raw.githubusercontent.com) and commits the updated JSON to the PR branch. 4. Both files are reviewed and merged together — atomic update. Hosted Renovate's free tier doesn't run postUpgradeTasks, so the classic "Renovate + run a script" pattern isn't available. A GitHub Actions workflow triggered by Renovate's PR is the substitute. Bumps don't automerge (per renovate.json packageRule): humans review the upstream release notes before adopting — grammar changes can subtly affect highlighting across 117 code blocks. Also: add .vscode/settings.json with files.associations for dotfiles whose first '#' line trips the markdownlint extension (.prettierignore → ignore, .version-info → yaml). One-time annoyance fix; eliminates the false-positive lint warnings in the IDE without affecting any actual tooling behavior.
This was referenced May 21, 2026
cewert
added a commit
to jellyrock/github-runner
that referenced
this pull request
May 21, 2026
The IDE's markdownlint extension flags dotfiles whose first line happens to start with '#' (gitignore/properties comments) or '---' (YAML start) as malformed markdown. None of those are markdown; the fix is a one- line files.associations entry per dotfile that's affected in this repo. Pure IDE config change — zero effect on CI, build, or runtime. Matches the pattern landed in jellyrock/docs#1.
3 tasks
cewert
added a commit
to jellyrock/shared-ui
that referenced
this pull request
May 21, 2026
The IDE's markdownlint extension flags dotfiles whose first line happens to start with '#' (gitignore/properties comments) or '---' (YAML start) as malformed markdown. None of those are markdown; the fix is a one- line files.associations entry per dotfile that's affected in this repo. Pure IDE config change — zero effect on CI, build, or runtime. Matches the pattern landed in jellyrock/docs#1.
cewert
added a commit
to jellyrock/github-runner
that referenced
this pull request
May 29, 2026
The IDE's markdownlint extension flags dotfiles whose first line happens to start with '#' (gitignore/properties comments) or '---' (YAML start) as malformed markdown. None of those are markdown; the fix is a one- line files.associations entry per dotfile that's affected in this repo. Pure IDE config change — zero effect on CI, build, or runtime. Matches the pattern landed in jellyrock/docs#1.
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.
Summary
Started as a one-line
renovate.json(extend org default). Grew during review because PR-triggered CI flushed out two pre-existing latent bugs that needed fixing for patch automerge to be safe here.5 commits:
renovate: extend org default— the original one-liner.fix: inject Starlight title: into existing frontmatter blocks—fetch-docs.mjs'scopyMarkdownWithFrontmatterbailed when any frontmatter existed. jellyrock docs usetopic:nottitle:, but Starlight'sdocsSchemarequirestitle:—astro checkblew up. Fix: three cases (no frontmatter / frontmatter-without-title / frontmatter-with-title). Latent since the CI workflow shipped — main only runsastro build(lenient), the CI'sastro checkhad never run because there were no prior PRs.style: prettier formatting—renovate.json+ the script change above didn't match the repo's prettier settings.docs: register BrightScript Shiki grammar— jellyrock docs have 117```brighterscriptcode blocks across 8 files; without a registered grammarastro-expressive-codelogs a WARN for every block and falls back to plain text. Vendor the MIT-licensed TextMate grammar fromrokucommunity/vscode-brightscript-language@v2.65.0intodev-docs/src/syntaxes/; register via Starlight'sexpressiveCode.shikioption; aliasbrighterscriptandbsto it.ci: auto-sync the vendored brightscript grammar— closes the loop on (4). Renovate watchesdev-docs/src/syntaxes/.version-infoand bumps the upstream ref; a new GitHub Actions workflow (sync-brightscript-grammar.yml) re-fetches the grammar JSON from the bumped tag and commits to the PR branch. Single review/merge updates both files atomically. (Hosted Renovate's free tier doesn't runpostUpgradeTasks, so the workflow substitutes.) Also adds.vscode/settings.jsonso the IDE stops mis-detecting.prettierignoreand.version-infoas markdown.Part of
Test plan
checkjob passes (astro/eslint/prettier)syncworkflow is a no-op when.version-infoisn't touched (verified on this PR)rokucommunity/vscode-brightscript-language(visible in Renovate's dashboard / dry-run output).version-info, the sync workflow re-fetches the grammar, both land together