Skip to main content

sync-changelog

Sync the changelog from the Dart SDK repo to update the changelog.yml entries in the site repository.

跳到安装

来源信息

仓库
dart-lang/site-www
最近来源活动
2026年5月12日 17:52
检测到的 SKILL.md 语言
英语
星标
1,052
分支
793

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
sync-changelog
description
Sync the changelog from the Dart SDK repo to update the changelog.yml entries in the site repository.
# Sync SDK changelog When you need to update the changelog entries in `src/data/changelog.yml` with the latest changes from the Dart SDK repository, carefully follow the steps outlined in this skill. ## Validate the SDK version Before running the sync tool, verify the Dart SDK version you wish to sync. It should be a stable release, not a pre-release, and in `major.minor.patch` format. If the user provides a version with just `major.minor`, you can assume a patch version of `0`. For example, `3.11` implies `3.11.0`. If necessary, you can validate what versions are available to sync by checking the [SDK changelog](https://raw.githubusercontent.com/dart-lang/sdk/main/CHANGELOG.md) and checking what h2 headers (`##`) are present. ## Sync and verify SDK changelog entries 1. **Run the sync tool** Execute the `sync-changelog` CLI command from within the website repository and specify the SDK version you want to sync. - **Command:** ```bash dart run dash_site sync-changelog --version <VERSION> ``` - **Example:** ```bash dart run dash_site sync-changelog --version 3.11.0 ``` > [!TIP] > You can preview the changes first by specifying the `--dry-run` flag: > > ```bash > dart run dash_site sync-changelog --version 3.11.0 --dry-run > ``` 2. **Verify changes** Check `src/data/changelog.yml` to ensure new entries are correct. - Review the diff: `git diff src/data/changelog.yml` - Ensure formatting is consistent and the new entries are prepended correctly. 3. **Filter and prune entries** Remove entries that don't represent concrete, user-facing changes to the Dart SDK, Dart language, or its surrounding tooling. **Remove entries that are:** - **Vague or nebulous:** Such as "Various performance improvements" or "Minor internal updates". Users need to know _what improved. - **Non-functional:** Such as "Thanks to @user for...", "Fixed typo in comment". - **Redundant:** Entries that duplicate others for the same feature. 4. **Refine tags** Review the `description` of each new entry. The tool uses keywords to infer tags, (such as "fixes" -> `fixed`, "adds" -> `new`), but **you must verify them**. **Rule:** If an entry has the wrong tag, or is just `changed` when it should be specific, **you must correct it** in `src/data/changelog.yml` before finishing. Entries **can and should** have multiple tags if applicable, such as having both `removed` and `breaking`. **Available tags and guidelines:** - `new`: For new features, additions, or introductions, such as indicated by "Added ..." or "Introduced...". - `fixed`: For bug fixes, such as indicated by "Fixed ..." or "Bug fix...". - `deprecated`: For deprecations, such as indicated by "Deprecated..." or "marked as legacy...". - `experimental`: For changes related to experimental features, such as indicated by "Experimental..." or "Preview...". - `removed`: For feature, capability, or API removals, such as indicated by "Removed..." or "Deleted...". - `breaking`: For breaking or backwards incompatible changes, such as indicated by "Breaking change...". Often used with `removed` or other significant modifications. - `versioned`: For changes that are language versioned, such as a new language syntax which often are. - `changed`: For general updates or modifications, a default tag that can be used as a fallback. **Example:** ```yaml - version: 3.11.0 # ... description: | Added support for Unix domain sockets... tags: - new # Changed from 'changed' because it adds a new feature. ``` 5. **Ensure the presence of links** Ensure every entry has a valid URL set as its `link` field. If no specific issue or PR link is available in the description, link to the specific section in the SDK changelog. - **Format:** `https://github.com/dart-lang/sdk/blob/main/CHANGELOG.md#<VERSION_ANCHOR>` - **Example:** `https://github.com/dart-lang/sdk/blob/main/CHANGELOG.md#3110` (for 3.11.0) ```yaml - version: 3.11.0 # ... link: https://github.com/dart-lang/sdk/blob/main/CHANGELOG.md#3110 ``` 6. **Fix any formatting or typo issues** Review the changelog entries for issues such as: - Markdown or YAML syntax issues. - Typos or grammatical errors. - `subArea` fields that aren't in sentence case. For example, use "Type promotion" instead of "Type Promotion". If a word isn't a proper noun, and it isn't the first word, don't capitalize it. If found, fix them before continuing on. 7. **Request user review** Notify the user that the changelog has been updated and tags refined. Ask them to verify the changes before committing. ## Troubleshooting - If no entries are found, verify the version exists in the [SDK changelog](https://raw.githubusercontent.com/dart-lang/sdk/main/CHANGELOG.md). - If entries are missing or malformed, check the tool logic in `tool/dash_site/lib/src/commands/sync_changelog.dart`.
在 GitHub 查看