summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-06-30 10:57:26 +0700
committerhathach <[email protected]>2026-06-30 10:57:26 +0700
commit461dff59119addc8df38fca6189a2b691c77dedc (patch)
tree57c517953464d8199a631b7f61367a221a43251d
parent0657ecf72839dbed263624af524d10d77d9c2b06 (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.md7
-rw-r--r--.pre-commit-config.yaml4
-rw-r--r--docs/_static/custom.css10
-rw-r--r--docs/_templates/sidebar/brand.html11
-rw-r--r--docs/_templates/sidebar/sponsor.html8
-rwxr-xr-xdocs/conf.py13
-rw-r--r--docs/info/changelog/0.18.0.rst2
-rw-r--r--docs/info/changelog/0.20.0.rst2
-rw-r--r--docs/info/changelog/0.7.0.rst2
-rwxr-xr-xtools/make_release.py2
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)