|
| 1 | +:::{note} |
| 2 | +**AI Translation Notice** |
| 3 | + |
| 4 | +This document was automatically translated by `hunyuan-turbos-latest` model, for reference only. |
| 5 | + |
| 6 | +- Source document: agents/release_agent_capability.md |
| 7 | + |
| 8 | +- Translation time: 2025-12-22 11:53:32 |
| 9 | + |
| 10 | +- Translation model: `hunyuan-turbos-latest` |
| 11 | + |
| 12 | +Please report issues via [Community Channel](https://github.com/DragonOS-Community/DragonOS/issues) |
| 13 | + |
| 14 | +::: |
| 15 | + |
| 16 | +# DragonOS Release Assistant Capability Description (Reusable Template) |
| 17 | + |
| 18 | +A universal "Release Assistant" capability for future version releases, helping Agents automatically research changes since the last Tag and generate directly usable release notes. |
| 19 | + |
| 20 | +--- |
| 21 | + |
| 22 | +## Objectives |
| 23 | +- Automatically collect commits from `<PREV_TAG>..HEAD`, categorized by module. |
| 24 | +- Generate structured release notes (Key Highlights / Version Overview / Detailed Changes / Known Concerns / Acknowledgments). |
| 25 | +- Update the ChangeLog index and prepare key points for subsequent tweets. |
| 26 | + |
| 27 | +## Inputs |
| 28 | +- Previous version Tag (e.g., `V0.3.0`). If no Tag is available, a baseline commit must be specified. |
| 29 | +- Target version number (e.g., `0.4.0`) and release date. |
| 30 | + |
| 31 | +## Outputs |
| 32 | +- Commit snapshots: `dragonos_<VER>_commits_formatted.txt`, `dragonos_<VER>_commits_oneline.txt` |
| 33 | +- Release notes: `docs/community/ChangeLog/V0.<X>.x/V0.<X>.0.md` |
| 34 | +- ChangeLog index update: `docs/community/ChangeLog/index.rst` |
| 35 | +- (Optional) Draft of tweet key points |
| 36 | + |
| 37 | +## Path Conventions |
| 38 | +- Release notes directory: `docs/community/ChangeLog/V0.<X>.x/` |
| 39 | +- New entries should be appended to the toctree in `index.rst`: |
| 40 | + ```_translated_label__ |
| 41 | + V0.<X>.x/V0.<X>.0 |
| 42 | + _en```_translated_label__ |
| 43 | +
|
| 44 | +## Workflow Steps |
| 45 | +1) Determine the Baseline |
| 46 | + - `PREV_TAG=$(git tag | sort -V | grep -E "0\\.3\\.0|V0\\.3\\.0" | tail -1)` (Example) |
| 47 | + - Differential range: `$PREV_TAG..HEAD` |
| 48 | +
|
| 49 | +2) Export Commits |
| 50 | + _en```_translated_label__ |
| 51 | + git log $PREV_TAG..HEAD --no-merges \ |
| 52 | + --format="%H%nAuthor: %an <%ae>%nDate: %ad%nSubject: %s%n%n%b%n---" \ |
| 53 | + > ./dragonos_<VER>_commits_formatted.txt |
| 54 | +
|
| 55 | + git log $PREV_TAG..HEAD --no-merges --oneline \ |
| 56 | + > ./dragonos_<VER>_commits_oneline.txt |
| 57 | + _en``` |
| 58 | + - Saved in the repository root for review and appendices. |
| 59 | +
|
| 60 | +3) Categorize and Organize (Using Keywords/Directory Dual Approach) |
| 61 | + - I/O Multiplexing/Time: `pselect|poll|epoll|timer|clock|nanosleep` |
| 62 | + - File System/VFS: `tmpfs|ext4|fat|vfs|symlink|truncate|preadv|pwritev|fadvise|copy_file_range|creat|umask` |
| 63 | + - procfs/Observability: `/proc|stat|cmdline|maps|ns|printk` |
| 64 | + - Process/Signal/Execution: `exec|fork|wait|shebang|sig|rt_|tgkill|setresuid` |
| 65 | + - Memory/Page: `slab|page_cache|mmap|reclaim|user_access|iovec` |
| 66 | + - IPC/Pipe: `pipe|fifo|F_GETPIPE_SZ|F_SETPIPE_SZ` |
| 67 | + - Network/Device: `napi|udp|tty|ptmx|random` |
| 68 | + - Engineering/CI: `ci|workflow|container|devcontainer|build container|nightly` |
| 69 | + - Documentation/Community: `docs|README|Playground|translation` |
| 70 | + - Testing/gVisor: `gvisor|whitelist|blocklist` |
| 71 | +
|
| 72 | +4) Generate Draft Release Notes (Using the Current 0.4.0 Structure) |
| 73 | + - Sections: Key Highlights → Version Overview → Detailed Changes (by Module) → Known Concerns → Contributor Acknowledgments → References |
| 74 | + - Fill in detailed changes based on the previous categorization, with each entry stating "what was done + why it's important/impactful," along with PR/commit numbers. |
| 75 | +
|
| 76 | +5) Update the Index |
| 77 | + - Append the new version path to the toctree in `docs/community/ChangeLog/index.rst`. |
| 78 | +
|
| 79 | +6) Version Number and Publicly Visible Information Check |
| 80 | + - DragonOS version source: `kernel/Cargo.toml`'s `version` (affects uname / /proc/version / about). |
| 81 | + - Build script: `build-scripts/kernel_build/src/version_gen.rs` automatically generates `kernel/src/init/version_info.rs`. |
| 82 | + - Verification: After building, execute `uname -a`, `cat /proc/version`, `about` within the system to confirm `dragonos-<VER>`. |
| 83 | +
|
| 84 | +7) Validation and Quality |
| 85 | + - Format/Static Checks: `make fmt` (or `read_lints`). |
| 86 | + - Compilation: `make kernel`. |
| 87 | + - Key Regression Tests: I/O Multiplexing + Signal; tmpfs/chroot/mount propagation; wait queues; POSIX timer/CPU time; gVisor use cases. |
| 88 | +
|
| 89 | +8) Tweet Key Points (Optional) |
| 90 | + - Extract 3–5 capability/scenario descriptions from "Key Highlights" and "Detailed Changes," avoiding a mere list of commits. |
| 91 | +
|
| 92 | +## Release Notes Writing Guidelines (Abbreviated Template) |
| 93 | +``` |
| 94 | +# V0.<X>.0 |
| 95 | +> 发布日期: YYYY-MM-DD |
| 96 | +
|
| 97 | +## 核心亮点 |
| 98 | +- 3–6 条面向用户/场景的升级点 |
| 99 | + |
| 100 | +## 版本概览 |
| 101 | +- 按模块列一行概览(I/O、时间、文件系统、procfs、进程/信号、内存、IPC、网络、工程、文档/社区、gVisor…) |
| 102 | + |
| 103 | +## 详细变更 |
| 104 | +- 模块 A:若干条(含 PR/提交号) |
| 105 | +- 模块 B:… |
| 106 | + |
| 107 | +## 已知关注点 |
| 108 | +- 升级/测试建议与潜在风险 |
| 109 | + |
| 110 | +## 贡献者鸣谢 |
| 111 | +- 可列主要作者,或指向 Contributors 页面 |
| 112 | + |
| 113 | +## 参考资料 |
| 114 | +- CI Dashboard / Playground / Repo / Docs 等链接 |
| 115 | +``` |
| 116 | +
|
| 117 | +## Quick Command Summary (Example) |
| 118 | +``` |
| 119 | +PREV_TAG=V0.3.0 |
| 120 | +VER=0.4.0 |
| 121 | + |
| 122 | +git log $PREV_TAG..HEAD --no-merges \ |
| 123 | + --format="%H%nAuthor: %an <%ae>%nDate: %ad%nSubject: %s%n%n%b%n---" \ |
| 124 | + > ./dragonos_${VER}_commits_formatted.txt |
| 125 | +
|
| 126 | +git log $PREV_TAG..HEAD --no-merges --oneline \ |
| 127 | + > ./dragonos_${VER}_commits_oneline.txt |
| 128 | +``` |
| 129 | +
|
| 130 | +## Minimum Execution Checklist (Copy as-is for Reuse) |
| 131 | +1. Confirm PREV_TAG → Export commit files (formatted/oneline). |
| 132 | +2. Categorize by keywords/directory, forming a "Module → Key Points + PR Number" table. |
| 133 | +3. Use the template to write `docs/community/ChangeLog/V0.<X>.x/V0.<X>.0.md`. |
| 134 | +4. Update the `docs/community/ChangeLog/index.rst` toctree. |
| 135 | +5. If releasing: Change the version in `kernel/Cargo.toml` to `<VER>` → `make kernel` → Verify at runtime using `uname /proc/about`. |
| 136 | +6. Run necessary fmt/compilation/regression tests. |
0 commit comments