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) <noreply@anthropic.com>
This commit is contained in:
hathach
2026-06-30 10:57:26 +07:00
parent 0657ecf728
commit 461dff5911
10 changed files with 29 additions and 32 deletions

View File

@ -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
```

View File

@ -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

View File

@ -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;
}

11
docs/_templates/sidebar/brand.html vendored Normal file
View File

@ -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>

View File

@ -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>

View File

@ -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']

View File

@ -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
-----------

View File

@ -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
^^^

View File

@ -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.

View File

@ -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)