diff options
| author | hathach <[email protected]> | 2026-06-30 10:57:26 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2026-06-30 10:57:26 +0700 |
| commit | 461dff59119addc8df38fca6189a2b691c77dedc (patch) | |
| tree | 57c517953464d8199a631b7f61367a221a43251d | |
| parent | 0657ecf72839dbed263624af524d10d77d9c2b06 (diff) | |
Fix code-review findings (changelog rendering, release skill, sidebar)
- changelog: fix 3 silent RST mis-renders carried over from the old monolith
— Markdown link in 0.7.0, mismatched/single backticks in 0.18.0 / 0.20.0
- make-release skill contributors one-liner: parallelize the gh fetch, anchor
the bot filter (was a substring that dropped handles like "abbott"), and join
with ", " (paste -sd cycles the delimiter -> "@a,@b @c"); finalize now stages
only the reviewed set (git add -A -- ':!.idea'); drop the obsolete CRLF gotcha
- make_release.py: emit LF not CRLF in the repository.yml insertion (fixes the
gotcha at the source)
- docs sidebar: drop the hardcoded furo component list; override brand.html to
include furo's own template + the sponsor button (decoupled from furo
internals, no upper-bound pin needed); move sponsor styles into custom.css
- .pre-commit-config.yaml: drop stale end-of-file-fixer excludes for the
deleted contributors/CoC include shims
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
| -rw-r--r-- | .claude/skills/make-release/SKILL.md | 7 | ||||
| -rw-r--r-- | .pre-commit-config.yaml | 4 | ||||
| -rw-r--r-- | docs/_static/custom.css | 10 | ||||
| -rw-r--r-- | docs/_templates/sidebar/brand.html | 11 | ||||
| -rw-r--r-- | docs/_templates/sidebar/sponsor.html | 8 | ||||
| -rwxr-xr-x | docs/conf.py | 13 | ||||
| -rw-r--r-- | docs/info/changelog/0.18.0.rst | 2 | ||||
| -rw-r--r-- | docs/info/changelog/0.20.0.rst | 2 | ||||
| -rw-r--r-- | docs/info/changelog/0.7.0.rst | 2 | ||||
| -rwxr-xr-x | tools/make_release.py | 2 |
10 files changed, 29 insertions, 32 deletions
diff --git a/.claude/skills/make-release/SKILL.md b/.claude/skills/make-release/SKILL.md index 3b5bcff1e..ad44d40c6 100644 --- a/.claude/skills/make-release/SKILL.md +++ b/.claude/skills/make-release/SKILL.md @@ -18,7 +18,6 @@ Refreshes `src/tusb_option.h`, `repository.yml`, `library.json`, `sonar-project. Gotchas: - `gen_doc` imports `pandas` + `tabulate` at line 3 and crashes before writing if they're missing (not in `docs/requirements.txt`) → `pip install pandas tabulate`. See the **build-doc** skill. -- The `repository.yml` regex inserts a literal `\r\n`, leaving one CRLF line → `sed -i 's/\r$//' repository.yml`. - `boards.rst` is written with no trailing newline → pre-commit's `end-of-file-fixer` adds it; run pre-commit on the regenerated files (step 3). ## 2. Changelog — `docs/info/changelog/` (the hard part) @@ -49,8 +48,8 @@ Then **curate** into the existing sections, matching the prior release file's RS - **Contributors** section credits the release's PR authors (this is where contributor credit lives — there is no separate contributors page). List the unique non-bot author handles alphabetically: ```bash - while read n; do gh pr view "$n" --json author --jq '.author.login'; done < /tmp/prs.txt \ - | grep -viE 'bot|copilot|claude' | sort -uf | sed 's/^/@/' | paste -sd', ' + xargs -P8 -I{} gh pr view {} --json author --jq '.author.login' < /tmp/prs.txt \ + | grep -viE '\[bot\]$|^(copilot|claude|dependabot|github-actions)$' | sort -uf | sed 's/^/@/' | paste -sd, - | sed 's/,/, /g' # then drop any CI/service accounts ``` ## 3. Validate (all unstaged) @@ -73,7 +72,7 @@ Confirm version is consistent across `tusb_option.h` / `library.json` / `reposit After reviewing the unstaged diff: ```bash -git add -A && git commit -m "Bump version to X.Y.Z" # -A so the new changelog file is staged +git add -A -- ':!.idea' && git commit -m "Bump version to X.Y.Z" # match the reviewed diff; stages the new changelog file git tag -a X.Y.Z -m "Release X.Y.Z" # tags are unprefixed (e.g. 0.20.0, not v0.20.0) git push origin <branch> X.Y.Z ``` diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9cd4a5ed1..f4a297289 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,9 +16,7 @@ repos: exclude: | (?x)^( .idea/| - hw/bsp/mcx/sdk/| - docs/contributing/code_of_conduct.rst| - docs/info/contributors.rst + hw/bsp/mcx/sdk/ ) - id: forbid-submodules diff --git a/docs/_static/custom.css b/docs/_static/custom.css index d64d26047..ee187e945 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -1,3 +1,13 @@ .clear-both { clear: both; } + +.sidebar-sponsor { + display: flex; + justify-content: center; + padding: 0.4rem var(--sidebar-item-spacing-horizontal) 0.6rem; +} +.sidebar-sponsor iframe { + border: 0; + border-radius: 6px; +} diff --git a/docs/_templates/sidebar/brand.html b/docs/_templates/sidebar/brand.html new file mode 100644 index 000000000..ad0cae989 --- /dev/null +++ b/docs/_templates/sidebar/brand.html @@ -0,0 +1,11 @@ +{# Override furo's sidebar brand: keep the original (logo, links home), then add + a GitHub Sponsors button just below it. Using "!sidebar/brand.html" includes + the theme's own template, so we don't re-list furo's sidebar components and + stay decoupled from furo's internal layout. #} +{% include "!sidebar/brand.html" %} +<div class="sidebar-sponsor"> + <iframe src="https://github.com/sponsors/hathach/button" + title="Sponsor TinyUSB" + height="32" width="114" + loading="lazy"></iframe> +</div> diff --git a/docs/_templates/sidebar/sponsor.html b/docs/_templates/sidebar/sponsor.html deleted file mode 100644 index db066a76c..000000000 --- a/docs/_templates/sidebar/sponsor.html +++ /dev/null @@ -1,8 +0,0 @@ -{# GitHub Sponsors button, shown just below the logo in the sidebar. #} -<div class="sidebar-sponsor" style="display: flex; justify-content: center; padding: 0.4rem var(--sidebar-item-spacing-horizontal) 0.6rem;"> - <iframe src="https://github.com/sponsors/hathach/button" - title="Sponsor TinyUSB" - height="32" width="114" - style="border: 0; border-radius: 6px;" - loading="lazy"></iframe> -</div> diff --git a/docs/conf.py b/docs/conf.py index 7f670f082..c6d04bff5 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -43,19 +43,6 @@ html_favicon = 'assets/logo.svg' html_theme_options = { 'sidebar_hide_name': True, } -# Furo default sidebar with a Sponsor button inserted just below the logo. -html_sidebars = { - '**': [ - 'sidebar/brand.html', - 'sidebar/sponsor.html', - 'sidebar/search.html', - 'sidebar/scroll-start.html', - 'sidebar/navigation.html', - 'sidebar/ethical-ads.html', - 'sidebar/scroll-end.html', - 'sidebar/variant-selector.html', - ] -} html_static_path = ['_static'] html_css_files = ['custom.css'] diff --git a/docs/info/changelog/0.18.0.rst b/docs/info/changelog/0.18.0.rst index cb10265b1..05dfd0579 100644 --- a/docs/info/changelog/0.18.0.rst +++ b/docs/info/changelog/0.18.0.rst @@ -12,7 +12,7 @@ New MCUs - Better support dcache, make sure all usb-transferred buffer are cache line aligned and occupy full cache line - Build ARM IAR with CircleCI -- Improve HIL with `dual/host_info_to_device_cdc`` optional for pico/pico2, enable dwc2 dma test +- Improve HIL with ``dual/host_info_to_device_cdc`` optional for pico/pico2, enable dwc2 dma test API Changes ----------- diff --git a/docs/info/changelog/0.20.0.rst b/docs/info/changelog/0.20.0.rst index 503d1c14e..d5952a830 100644 --- a/docs/info/changelog/0.20.0.rst +++ b/docs/info/changelog/0.20.0.rst @@ -68,7 +68,7 @@ Audio ^^^^^ - Add UAC1 support -- Implement RX FIFO threshold adjustment with `tud_audio_get/set_ep_in_fifo_threshold()` +- Implement RX FIFO threshold adjustment with ``tud_audio_get/set_ep_in_fifo_threshold()`` CDC ^^^ diff --git a/docs/info/changelog/0.7.0.rst b/docs/info/changelog/0.7.0.rst index 36fde9be5..664b323c8 100644 --- a/docs/info/changelog/0.7.0.rst +++ b/docs/info/changelog/0.7.0.rst @@ -53,7 +53,7 @@ USB Device USBD ^^^^ -- Add new class driver for **Bluetooth HCI** class driver with example can be found in [mynewt-tinyusb-example](https://github.com/hathach/mynewt-tinyusb-example) since it needs mynewt OS to run with. +- Add new class driver for **Bluetooth HCI** class driver with example can be found in `mynewt-tinyusb-example <https://github.com/hathach/mynewt-tinyusb-example>`__ since it needs mynewt OS to run with. - Fix USBD endpoint usage racing condition with ``usbd_edpt_claim()``/``usbd_edpt_release()`` - Added ``tud_task_event_ready()`` and ``osal_queue_empty()``. This API is needed to check before enter low power mode with WFI/WFE - Rename USB IRQ Handler to ``dcd_int_handler()``. Application must define IRQ handler in which it calls this API. diff --git a/tools/make_release.py b/tools/make_release.py index d27ce20b3..fc118af14 100755 --- a/tools/make_release.py +++ b/tools/make_release.py @@ -30,7 +30,7 @@ with open(f_repository_yml) as f: fdata = f.read() if fdata.find(version) < 0: - fdata = re.sub(r'("0-latest"): "\d+\.\d+\.\d+"', r'"{}": "{}"\r\n \1: "{}"'.format(version, version, version), fdata) + fdata = re.sub(r'("0-latest"): "\d+\.\d+\.\d+"', r'"{}": "{}"\n \1: "{}"'.format(version, version, version), fdata) with open(f_repository_yml, 'w') as f: f.write(fdata) |
