Skip to main content

update-changelog

Use this skill when asked to generate or update release notes in docs/release_notes.md with major changes, new features, architecture updates, performance improvements, bug fixes, and deprecations.

Quellinformationen

Repository
AI-Hypercomputer/maxtext
Letzte Quellaktivität
24. September 2026 um 21:17
Erkannte Sprache von SKILL.md
Englisch
Sterne
2.435
Forks
617

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
update-changelog
description
Use this skill when asked to generate or update release notes in docs/release_notes.md with major changes, new features, architecture updates, performance improvements, bug fixes, and deprecations.
# Release Notes Updater (`docs/release_notes.md`) This skill automates gathering, categorizing, synthesizing, and documenting major changes, bug fixes, and deprecations in MaxText to announce in upcoming releases. It can be run either on a schedule or ad-hoc for any date range. ## Workflow Steps ### 1. Gather Commits & Pull Requests (`raw_commits.txt`) Run the helper script [gather_changes.py](../update-changelog/scripts/gather_changes.py) from the repository root with `--mode collect` to extract all valid commits since `**Last Updated**: <commit_hash>` in `docs/release_notes.md` into `raw_commits.txt`, tagged with reconciliation IDs (`[ref:#XXXX]` or `[ref:<hash>]`): ```bash python3 .gemini/skills/update-changelog/scripts/gather_changes.py --mode collect ``` The script automatically: - Walks `--first-parent` on `main` and resolves GitHub Merge PR numbers (`#XXXX`) to their initial feature/fix commit on the PR branch (ignoring follow-up review feedback or comment cleanup commits). - Excludes any changes in `tests/`, `.github/`, `.gemini/`, `src/maxtext/training_engine/`, `src/maxtext/experimental/` (`experimental/`), `src/dependencies/dockerfiles/`, `src/dependencies/scripts/`, `tools/`, `pytest.ini`, `README.md`, `*Dockerfile`, and `docs/release_notes.md`. Keep this list in sync with `EXCLUDED_PATH_PREFIXES` / `EXCLUDED_FILES` in the script. - Excludes container/Docker image vulnerability fixes, Docker registry migrations (e.g., Artifact Registry), Gemini/agent skill updates, `pytest-split` / test runner splitting, `Latest News` announcements, `"No public description"` commits, broken link / `toctree` / Sphinx doc-build fixes, and test-only fixes. - Strips Copybara/Piper internal metadata (`PiperOrigin-RevId`). - Reads `**Last Updated**: <commit_hash>` from `docs/release_notes.md` (if present) so subsequent runs automatically inspect only commits in `<last_commit>..HEAD`. - Consolidates multi-part PR series (e.g., `[NNX] Delete Linen (1/5)..(5/5)`, `FP8`, `DeepSeek-V4`) into single unified entries. - Outputs a flat list of cleaned candidate commits with ReadTheDocs links and a tracking tag `[ref:...]` on every item in `raw_commits.txt` to guarantee no commit is dropped during synthesis. ### 2. Categorize & Polish into `new_notes.md` (Without Dropping Any `[ref:...]` IDs) Read `raw_commits.txt` and categorize + rewrite the entries into a polished, synthesized Markdown block saved to `new_notes.md`. > **CRITICAL — Do Not Drop Any `[ref:...]` IDs**: > - Every `[ref:...]` ID present in `raw_commits.txt` **must** appear in `new_notes.md`. > - When combining multiple related commits/PRs into a single cohesive bullet, include all of their IDs on that bullet (e.g., `[ref:#5051, #5052, #5053]`). > - Step 3 runs a deterministic reconciliation check that compares all `[ref:...]` IDs in `raw_commits.txt` against `new_notes.md` and fails if any ID is missing, before automatically stripping the temporary `[ref:...]` tags upon injection. **Semantic Categorization by Gemini**: - Inspect each entry's summary in `raw_commits.txt` (and run `git show <hash>` if needed) to place it into the appropriate section (`#### Changes`, `#### Bug Fixes`, or `#### Deprecations`) and category. - **Disambiguating Model Changes (`DeepSeek`, `Qwen`, `Gemma`, `Llama`, `Mixtral`, `GPT`, etc.)**: Model commits often impact more than just pre-training. Categorize them based on their actual scope: - Full model onboarding, decoders, layers, or cross-cutting architecture support -> **Models** - Vision, audio, speech encoders/processors (e.g., Qwen3-VL, Gemma3 vision, SigLIP/CLIP) -> **Multimodal** - RL (GRPO/DPO), SFT, LoRA/QLoRA, vLLM rollouts, or Tunix integration for a model -> **Post-Training** - Sharding (FSDP/FSDP2/SPMD/Tensor Parallel/Megatron), quantization (FP8/FP4/Qwix/AQT), or kernel speedups -> **Performance** - Attention mechanisms (Splash/Ring/CP/Ulysses), RoPE/MRoPE, MTP, Block Diffusion, or DiLoCo -> **Pre-Training** - If a major PR or PR series spans multiple areas (e.g., adding a new model along with its multimodal processor or RL recipe), either group the architectural onboarding under **Models** and mention the specific capability under **Multimodal** / **Post-Training**, or consolidate under the primary user-facing category. 1. **`#### Changes`**: - **Group related PRs**: If multiple commits contribute to a single feature (e.g., FP8 Orbax restoration and scale tensor ingestion), combine them into a single cohesive bullet and merge their `[ref:...]` tags. - **Links**: Do **not** append GitHub PR links (`[PR #XXXX](...)`) to bullets. Only include documentation links from ReadTheDocs (`https://maxtext.readthedocs.io/en/latest/...`) when relevant documentation, guides, or tutorials exist for the change. - **Use MaxText Category Headings**: - **Models** (new model integrations, decoders, layers, MoE routing, Flax NNX migration) - **Multimodal** (vision/audio/speech encoders, multimodal processors, CLIP, SigLIP, VL models) - **Pre-Training** (attention kernels, Context Parallelism / Ring / Ulysses, RoPE/MRoPE, MTP, Block Diffusion, DiLoCo) - **Post-Training** (GRPO, DPO, SFT, LoRA/QLoRA, Raiden weight sync, vLLM rollout) - **Performance** (sharding, SPMD, FSDP/FSDP2, tensor parallelism, Megatron, FP8/FP4, Qwix, AQT, Muon optimizer, SparseCore, GEMM overlap) - **Checkpointing / Goodput** (Orbax, Zarr3, OCDBT, multi-tier checkpointing, elasticity) - **Usability** (evaluation harnesses, tutorials, guides, documentation, configs) 2. **`#### Bug Fixes`**: - Merge notable user-facing bug fixes into a single flat list under `#### Bug Fixes` (without splitting into category subheadings or adding PR links), keeping their `[ref:...]` tags. 3. **`#### Deprecations`**: - Merge all deprecations into a single unified list under `#### Deprecations` (without splitting into category subheadings), keeping their `[ref:...]` tags. Document deprecated or removed configuration flags, legacy modules/layers (e.g., Flax Linen removal, `pure_nnx` config flags), deprecated CLI scripts, or dropped dependencies. ### 3. Reconciliation Check (`--mode verify`) & Deterministic Injection (`--mode inject`) 1. **Reconciliation Check (`--mode verify`)**: Verify that `new_notes.md` contains every `[ref:...]` ID from `raw_commits.txt`: ```bash python3 .gemini/skills/update-changelog/scripts/gather_changes.py --mode verify ``` If any commit/PR ID was dropped during synthesis, the script exits with code `1` and prints the exact dropped IDs. Fix `new_notes.md` so all IDs are accounted for and re-run `--mode verify`. 2. **Deterministic Injection (`--mode inject`)**: Once verification passes, strip all temporary `[ref:...]` tags from `new_notes.md`, update `**Last Updated**: <head_commit_hash>`, and deterministically splice the clean Markdown block into [docs/release_notes.md](../../../docs/release_notes.md): ```bash python3 .gemini/skills/update-changelog/scripts/gather_changes.py --mode inject ``` Keep `raw_commits.txt` and `new_notes.md` in the workspace so the CI workflow can also run `--mode verify` and `--mode inject` before committing `docs/release_notes.md`. ### 4. Validation Verify your changes before completing the task: 1. Run `git diff docs/release_notes.md` to ensure clean Markdown formatting and that `**Last Updated**: <head_commit_hash>` is updated. 2. Confirm that bullets do not contain GitHub PR links or leftover `[ref:...]` tags, and that any documentation links point to ReadTheDocs (`https://maxtext.readthedocs.io/en/latest/...`). 3. Re-run `python3 .gemini/skills/update-changelog/scripts/gather_changes.py --mode collect` to verify that it detects `**Last Updated**: <head_commit_hash>` and reports `No new commits`.
Auf GitHub ansehen