prowler-changelog

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Changelog Locations

变更日志位置

ComponentFileVersion PrefixCurrent Version
UI
ui/CHANGELOG.md
None1.x.x
API
api/CHANGELOG.md
None1.x.x
MCP Server
mcp_server/CHANGELOG.md
None0.x.x
SDK
prowler/CHANGELOG.md
None5.x.x
组件文件版本前缀当前版本
UI
ui/CHANGELOG.md
1.x.x
API
api/CHANGELOG.md
1.x.x
MCP Server
mcp_server/CHANGELOG.md
0.x.x
SDK
prowler/CHANGELOG.md
5.x.x

Format Rules (keepachangelog.com)

格式规则(遵循keepachangelog.com)

Section Order (ALWAYS this order)

章节顺序(必须严格遵循此顺序)

markdown
undefined
markdown
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

undefined
undefined

Emoji Prefixes (REQUIRED for ALL components)

表情符号前缀(所有组件均要求使用)

SectionEmojiUsage
Added
### 🚀 Added
New features, checks, endpoints
Changed
### 🔄 Changed
Modifications to existing functionality
Deprecated
### ⚠️ Deprecated
Features marked for removal
Removed
### ❌ Removed
Deleted features
Fixed
### 🐞 Fixed
Bug fixes
Security
### 🔐 Security
Security patches, CVE fixes
章节表情符号用途
Added
### 🚀 Added
新功能、检查项、端点
Changed
### 🔄 Changed
现有功能的修改
Deprecated
### ⚠️ Deprecated
标记为待移除的功能
Removed
### ❌ Removed
已删除的功能
Fixed
### 🐞 Fixed
Bug修复
Security
### 🔐 Security
安全补丁、CVE修复

Entry Format

条目格式

markdown
undefined
markdown
undefined

Added

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
  • 现有变更条目 (#AAAA)
  • 新变更条目添加在此处末尾 (#BBBB)

**规则:**
- **在每个章节的末尾添加新条目**(在下一个章节标题或`---`之前)
- **章节标题后需空一行**再添加第一个条目
- **章节之间需空一行**
- 描述要具体:说明变更内容,而非原因(原因请在PR中说明)
- 每个PR对应一个条目(相关变更可链接多个PR)
- 条目末尾不要加句号
- 不要以冗余动词开头(章节标题已明确动作)
- **重要:严格保留章节顺序**——在未发布区块中添加新章节时,需插入到正确的位置(Added → Changed → Deprecated → Removed → Fixed → Security)。切勿不检查顺序就将新章节添加到顶部或底部

Semantic Versioning Rules

语义化版本规则

Prowler follows semver.org:
Change TypeVersion BumpExample
Bug fixes, patchesPATCH (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, removalsMAJOR (X.0.0)1.17.0 → 2.0.0
CRITICAL:
### ❌ Removed
entries MUST only appear in MAJOR version releases. Removing features is a breaking change.
Prowler遵循semver.org规范:
变更类型版本升级类型示例
Bug修复、补丁PATCH版本(x.y.Z1.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
重要:
### ❌ Removed
条目只能出现在MAJOR版本发布中。移除功能属于破坏性变更。

Released Versions Are Immutable

已发布版本不可修改

NEVER modify already released versions. Once a version is released (has a Prowler version tag like
v5.16.0
), its changelog section is frozen.
Common 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
undefined
markdown
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
--- # 版本之间用水平线分隔
undefined

Adding a Changelog Entry

添加变更日志条目

Step 1: Determine Affected Component(s)

步骤1:确定受影响的组件

bash
undefined
bash
undefined

Check 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:确定变更类型

ChangeSection
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

  • Existing fix one (#9997)
  • Existing fix two (#9998)
  • Button alignment in dashboard header (#9999) ← NEW ENTRY AT BOTTOM
  • 现有修复条目一 (#9997)
  • 现有修复条目二 (#9998)
  • 修复仪表板头部按钮对齐问题 (#9999) ← 新条目添加在此处末尾

🔐 Security

🔐 Security


This maintains chronological order within each section (oldest at top, newest at bottom).

这样可以保持每个章节内的时间顺序(最早的条目在顶部,最新的在底部)。

Examples

示例

Good Entries

正确的条目示例

markdown
undefined
markdown
undefined

🚀 Added

🚀 Added

  • Search bar when adding a provider (#9634)
  • 添加提供商时的搜索栏 (#9634)

🐞 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)
undefined

Bad Entries

错误的条目示例

markdown
undefined
markdown
undefined

BAD - 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) # 链接格式错误,表述口语化
undefined

PR Changelog Gate

PR变更日志检查机制

The
pr-check-changelog.yml
workflow enforces changelog entries:
  1. REQUIRED: PRs touching
    ui/
    ,
    api/
    ,
    mcp_server/
    , or
    prowler/
    MUST update the corresponding changelog
  2. SKIP: Add
    no-changelog
    label to bypass (use sparingly for docs-only, CI-only changes)
pr-check-changelog.yml
工作流会强制检查变更日志条目:
  1. 必填要求:涉及
    ui/
    api/
    mcp_server/
    prowler/
    目录的PR必须更新对应的变更日志
  2. 跳过检查:添加
    no-changelog
    标签可绕过检查(仅用于文档或CI专属变更,需谨慎使用)

Commands

命令

bash
undefined
bash
undefined

Check 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
undefined
head -50 ui/CHANGELOG.md head -50 api/CHANGELOG.md head -50 mcp_server/CHANGELOG.md head -50 prowler/CHANGELOG.md
undefined

Migration 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
undefined
API、MCP Server和SDK的变更日志目前缺少表情符号前缀。编辑这些文件时,请在更新章节标题的同时添加表情符号前缀:
markdown
undefined

Before (legacy)

之前(旧格式)

Added

Added

After (standardized)

之后(标准化格式)

🚀 Added

🚀 Added

undefined
undefined

Resources

参考资源