prowler-changelog
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseChangelog Locations
变更日志位置
| Component | File | Version Prefix | Current Version |
|---|---|---|---|
| UI | | None | 1.x.x |
| API | | None | 1.x.x |
| MCP Server | | None | 0.x.x |
| SDK | | None | 5.x.x |
| 组件 | 文件 | 版本前缀 | 当前版本 |
|---|---|---|---|
| UI | | 无 | 1.x.x |
| API | | 无 | 1.x.x |
| MCP Server | | 无 | 0.x.x |
| SDK | | 无 | 5.x.x |
Format Rules (keepachangelog.com)
格式规则(遵循keepachangelog.com)
Section Order (ALWAYS this order)
章节顺序(必须严格遵循此顺序)
markdown
undefinedmarkdown
undefined[X.Y.Z] (Prowler vA.B.C) OR (Prowler UNRELEASED)
[X.Y.Z] (Prowler vA.B.C) 或 (Prowler UNRELEASED)
Added
Added
Changed
Changed
Deprecated
Deprecated
Removed
Removed
Fixed
Fixed
Security
Security
undefinedundefinedEmoji Prefixes (REQUIRED for ALL components)
表情符号前缀(所有组件均要求使用)
| Section | Emoji | Usage |
|---|---|---|
| Added | | New features, checks, endpoints |
| Changed | | Modifications to existing functionality |
| Deprecated | | Features marked for removal |
| Removed | | Deleted features |
| Fixed | | Bug fixes |
| Security | | Security patches, CVE fixes |
| 章节 | 表情符号 | 用途 |
|---|---|---|
| Added | | 新功能、检查项、端点 |
| Changed | | 现有功能的修改 |
| Deprecated | | 标记为待移除的功能 |
| Removed | | 已删除的功能 |
| Fixed | | Bug修复 |
| Security | | 安全补丁、CVE修复 |
Entry Format
条目格式
markdown
undefinedmarkdown
undefinedAdded
Added
Changed
Changed
**Rules:**
- **ADD NEW ENTRIES AT THE BOTTOM of each section** (before next section header or `---`)
- **Blank line after section header** before first entry
- **Blank line between sections**
- Be specific: what changed, not why (that's in the PR)
- One entry per PR (can link multiple PRs for related changes)
- No period at the end
- Do NOT start with redundant verbs (section header already provides the action)
- **CRITICAL: Preserve section order** — when adding a new section to the UNRELEASED block, insert it in the correct position relative to existing sections (Added → Changed → Deprecated → Removed → Fixed → Security). Never append a new section at the top or bottom without checking order
**规则:**
- **在每个章节的末尾添加新条目**(在下一个章节标题或`---`之前)
- **章节标题后需空一行**再添加第一个条目
- **章节之间需空一行**
- 描述要具体:说明变更内容,而非原因(原因请在PR中说明)
- 每个PR对应一个条目(相关变更可链接多个PR)
- 条目末尾不要加句号
- 不要以冗余动词开头(章节标题已明确动作)
- **重要:严格保留章节顺序**——在未发布区块中添加新章节时,需插入到正确的位置(Added → Changed → Deprecated → Removed → Fixed → Security)。切勿不检查顺序就将新章节添加到顶部或底部Semantic Versioning Rules
语义化版本规则
Prowler follows semver.org:
| Change Type | Version Bump | Example |
|---|---|---|
| Bug fixes, patches | PATCH (x.y.Z) | 1.16.1 → 1.16.2 |
| New features (backwards compatible) | MINOR (x.Y.0) | 1.16.2 → 1.17.0 |
| Breaking changes, removals | MAJOR (X.0.0) | 1.17.0 → 2.0.0 |
CRITICAL: entries MUST only appear in MAJOR version releases. Removing features is a breaking change.
### ❌ RemovedProwler遵循semver.org规范:
| 变更类型 | 版本升级类型 | 示例 |
|---|---|---|
| Bug修复、补丁 | PATCH版本(x.y.Z) | 1.16.1 → 1.16.2 |
| 新功能(向后兼容) | MINOR版本(x.Y.0) | 1.16.2 → 1.17.0 |
| 破坏性变更、功能移除 | MAJOR版本(X.0.0) | 1.17.0 → 2.0.0 |
重要: 条目只能出现在MAJOR版本发布中。移除功能属于破坏性变更。
### ❌ RemovedReleased Versions Are Immutable
已发布版本不可修改
NEVER modify already released versions. Once a version is released (has a Prowler version tag like ), its changelog section is frozen.
v5.16.0Common issue: A PR is created during release cycle X, includes a changelog entry, but merges after release. The entry is now in the wrong section.
markdown
undefined切勿修改已发布的版本。一旦版本发布(带有Prowler版本标签如),其变更日志章节即被冻结。
v5.16.0常见问题: 某个PR在版本X的发布周期内创建,包含了变更日志条目,但在版本发布后才合并。此时条目位于错误的章节中。
markdown
undefined[1.16.0] (Prowler v5.16.0) ← RELEASED, DO NOT MODIFY
[1.16.0] (Prowler v5.16.0) ← 已发布,请勿修改
Added
Added
- Feature from merged PR [(#9999)] ← WRONG! PR merged after release
- 已合并PR的功能 [(#9999)] ← 错误!PR在版本发布后才合并
[1.17.0] (Prowler UNRELEASED) ← Move entry HERE
[1.17.0] (Prowler UNRELEASED) ← 请将条目移至此处
**Fix:** Move the entry from the released version to the UNRELEASED section.
**修复方法:** 将条目从已发布版本章节移至未发布章节。Version Header Format
版本标题格式
markdown
undefinedmarkdown
undefined[1.17.0] (Prowler UNRELEASED) # For unreleased changes
[1.17.0] (Prowler UNRELEASED) # 用于未发布的变更
[1.16.0] (Prowler v5.16.0) # For released versions
[1.16.0] (Prowler v5.16.0) # 用于已发布的版本
--- # Horizontal rule between versions
undefined--- # 版本之间用水平线分隔
undefinedAdding a Changelog Entry
添加变更日志条目
Step 1: Determine Affected Component(s)
步骤1:确定受影响的组件
bash
undefinedbash
undefinedCheck which files changed
检查哪些文件发生了变更
git diff main...HEAD --name-only
| Path Pattern | Component |
|--------------|-----------|
| `ui/**` | UI |
| `api/**` | API |
| `mcp_server/**` | MCP Server |
| `prowler/**` | SDK |
| Multiple | Update ALL affected changelogs |git diff main...HEAD --name-only
| 路径模式 | 组件 |
|--------------|-----------|
| `ui/**` | UI |
| `api/**` | API |
| `mcp_server/**` | MCP Server |
| `prowler/**` | SDK |
| 多个路径 | 更新所有受影响的变更日志 |Step 2: Determine Change Type
步骤2:确定变更类型
| Change | Section |
|---|---|
| New feature, check, endpoint | 🚀 Added |
| Behavior change, refactor | 🔄 Changed |
| Bug fix | 🐞 Fixed |
| CVE patch, security improvement | 🔐 Security |
| Feature removal | ❌ Removed |
| Deprecation notice | ⚠️ Deprecated |
| 变更内容 | 对应章节 |
|---|---|
| 新功能、检查项、端点 | 🚀 Added |
| 行为变更、重构 | 🔄 Changed |
| Bug修复 | 🐞 Fixed |
| CVE补丁、安全改进 | 🔐 Security |
| 功能移除 | ❌ Removed |
| 弃用通知 | ⚠️ Deprecated |
Step 3: Add Entry at BOTTOM of Appropriate Section
步骤3:在对应章节末尾添加条目
CRITICAL: Add new entries at the BOTTOM of each section, NOT at the top.
markdown
undefined重要: 新条目需添加在每个章节的末尾,而非顶部。
markdown
undefined[1.17.0] (Prowler UNRELEASED)
[1.17.0] (Prowler UNRELEASED)
🐞 Fixed
🐞 Fixed
🔐 Security
🔐 Security
This maintains chronological order within each section (oldest at top, newest at bottom).
这样可以保持每个章节内的时间顺序(最早的条目在顶部,最新的在底部)。Examples
示例
Good Entries
正确的条目示例
markdown
undefinedmarkdown
undefined🚀 Added
🚀 Added
🐞 Fixed
🐞 Fixed
- OCI update credentials form failing silently due to missing provider UID (#9746)
- 修复OCI更新凭据表单因缺少提供商UID而静默失败的问题 (#9746)
🔐 Security
🔐 Security
- Node.js from 20.x to 24.13.0 LTS, patching 8 CVEs (#9797)
undefined- 将Node.js从20.x升级至24.13.0 LTS,修复8个CVE漏洞 (#9797)
undefinedBad Entries
错误的条目示例
markdown
undefinedmarkdown
undefinedBAD - Wrong section order (Fixed before Added)
错误 - 章节顺序错误(Fixed在Added之前)
🐞 Fixed
🐞 Fixed
- Some bug fix (#123)
- 某个Bug修复 (#123)
🚀 Added
🚀 Added
-
Some new feature (#456)
-
Fixed bug. # Too vague, has period
-
Added new feature for users # Missing PR link, redundant verb
-
Add search bar [(#123)] # Redundant verb (section already says "Added")
-
This PR adds a cool new thing (#123) # Wrong link format, conversational
undefined-
某个新功能 (#456)
-
修复了一个Bug。 # 描述过于模糊,末尾带有句号
-
为用户添加了新功能 # 缺少PR链接,动词冗余
-
Add搜索栏 [(#123)] # 动词冗余(章节标题已说明“Added”)
-
这个PR添加了一个很棒的新功能 (#123) # 链接格式错误,表述口语化
undefinedPR Changelog Gate
PR变更日志检查机制
The workflow enforces changelog entries:
pr-check-changelog.yml- REQUIRED: PRs touching ,
ui/,api/, ormcp_server/MUST update the corresponding changelogprowler/ - SKIP: Add label to bypass (use sparingly for docs-only, CI-only changes)
no-changelog
pr-check-changelog.yml- 必填要求:涉及、
ui/、api/或mcp_server/目录的PR必须更新对应的变更日志prowler/ - 跳过检查:添加标签可绕过检查(仅用于文档或CI专属变更,需谨慎使用)
no-changelog
Commands
命令
bash
undefinedbash
undefinedCheck which changelogs need updates based on changed files
根据变更文件检查需要更新哪些变更日志
git diff main...HEAD --name-only | grep -E '^(ui|api|mcp_server|prowler)/' | cut -d/ -f1 | sort -u
git diff main...HEAD --name-only | grep -E '^(ui|api|mcp_server|prowler)/' | cut -d/ -f1 | sort -u
View current UNRELEASED section
查看当前未发布章节
head -50 ui/CHANGELOG.md
head -50 api/CHANGELOG.md
head -50 mcp_server/CHANGELOG.md
head -50 prowler/CHANGELOG.md
undefinedhead -50 ui/CHANGELOG.md
head -50 api/CHANGELOG.md
head -50 mcp_server/CHANGELOG.md
head -50 prowler/CHANGELOG.md
undefinedMigration Note
迁移说明
API, MCP Server, and SDK changelogs currently lack emojis. When editing these files, add emoji prefixes to section headers as you update them:
markdown
undefinedAPI、MCP Server和SDK的变更日志目前缺少表情符号前缀。编辑这些文件时,请在更新章节标题的同时添加表情符号前缀:
markdown
undefinedBefore (legacy)
之前(旧格式)
Added
Added
After (standardized)
之后(标准化格式)
🚀 Added
🚀 Added
undefinedundefinedResources
参考资源
- Templates: See assets/ for entry templates
- keepachangelog.com: https://keepachangelog.com/en/1.1.0/
- 模板:请查看assets/目录下的条目模板
- keepachangelog.com:https://keepachangelog.com/en/1.1.0/