Skip to main content

make-release

Use when cutting a new TinyUSB release — version bump, regenerated files, the per-release changelog, and validation before the maintainer commits and tags.

소스 정보

저장소
hathach/tinyusb
최근 소스 활동
2026년 9월 24일 15:47
감지된 SKILL.md 언어
영어
스타
7,192
포크
1,552

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
make-release
description
Use when cutting a new TinyUSB release — version bump, regenerated files, the per-release changelog, and validation before the maintainer commits and tags.
# Cut a TinyUSB Release **Don't commit or tag during prep** — leave changes unstaged for the maintainer (step 4). Work in a worktree. Agree the version `X.Y.Z` with the maintainer first (their call, not derivable from the diff). ## 1. Bump + regenerate ```bash R=.claude/skills/make-release/scripts/release.py $R bump X.Y.Z # tusb_option.h, repository.yml, library.json, sonar-project.properties .claude/skills/build-doc/scripts/gen_doc.py # docs/reference/{boards,dependencies}.rst, hil_boards.md .claude/skills/build-doc/scripts/gen_presets.py # hw/bsp/BoardPresets.json + per-example CMakePresets.json . "$IDF_PATH/export.sh" && python3 tools/family_json.py refresh # hw/bsp/family.json: every board re-observed ``` `refresh` configures every cmake board once, Espressif included, so it needs every toolchain and every dependency at its pin (`tools/get_deps.py all`) and the ESP-IDF environment sourced; it exits 1 naming each board it could not observe, and a row it could not observe keeps its old value. Nothing between releases re-checks rows against `src/common/tusb_mcu.h`, `hw/bsp/family_support.cmake` or example-eligibility edits (an example's `CMakeLists.txt`, `skip.txt` or `only.txt`, which decide a row's `roles`); this step is where they catch up. `bump` refuses a version that is not `X.Y.Z` or equals the current one, and refuses (writing nothing) when a file's version line no longer matches its pattern — fix the file or the pattern, never hand-edit around it. The regenerated files change only if boards, deps or the HIL rosters did (see the build-doc skill for what a diff there means). ## 2. Changelog — `docs/changelog/` (the hard part) New file `docs/changelog/X.Y.Z.md`, listed **first** in `docs/changelog/index.rst`. The PR set comes from **commit reachability, not merge date** (a date query wrongly pulls in the prior release's changelog PR at the boundary): ```bash $R prs --prev <previous-X.Y.Z> [--head master] > /tmp/prs.txt # '#N<TAB>title<TAB>[labels]', one PR per line ``` It refuses when `--prev` is not an ancestor of the head, and when a first-parent commit is not a merged PR (a direct push: decide what to do with it, do not silence the guard). A PR merged into a *feature branch* folds into its parent (won't appear alone) — reflect its final state in the parent's bullet. **Curate** into the prior file's exact Markdown (MyST) style: - Title = version (`# X.Y.Z`), then italic date (ask if unknown). Add to top of `index.rst`. - Section order: **General** (New MCUs and Boards / Code Quality and Build / Documentation) → **API Changes** → **Device Stack** (per class) → **Host Stack** → **Controller Driver (DCD & HCD)** (per driver) → **Testing** → **Contributors**. Sections are `##`; each class/driver group is a `###` sub-heading, not a bullet. - Single backticks for symbols; group related PRs into one bullet (don't dump). `Port *`/driver labels help bucket DCD/HCD. - **Contributors**: unique non-bot PR authors, alphabetical (the only contributor credit — no separate page): `$R contributors --prev <previous-X.Y.Z>` prints the line; drop any CI/service account it did not recognise. ## 3. Validate (leave unstaged) ```bash pre-commit run --all-files # every file step 1 regenerated, unit tests included .claude/skills/build-doc/scripts/build_doc.py -c # docs build clean, warnings fail it (see build-doc skill) python3 .claude/skills/build/scripts/check_build.py --board stm32f407disco -e device/cdc_msc # smoke build, a release changes no firmware git diff --stat -- ':!.idea' # .idea/* is IDE noise ``` Confirm the version matches across `tusb_option.h` / `library.json` / `repository.yml` / `sonar-project.properties`. ## 4. Finalize (maintainer) ```bash git add -A -- ':!.idea' && git commit -m "Bump version to X.Y.Z" git tag -a X.Y.Z -m "Release X.Y.Z" # tags are unprefixed (0.20.0, not v0.20.0) git push origin <branch> X.Y.Z ``` Then create the GitHub release from the tag.
GitHub에서 보기