mirror of
https://github.com/RubyMetric/chsrc
synced 2025-08-12 23:27:34 +08:00
Update doc
This commit is contained in:
parent
d48bbc92e0
commit
9c51e8c0f1
58
.github/copilot-instructions.md
vendored
58
.github/copilot-instructions.md
vendored
@ -9,72 +9,24 @@
|
||||
|
||||
- **Framework**: 在目录 `src/framework/` 中,包含了核心实现,支持 recipe
|
||||
|
||||
- `chef.c` 里实现了 chef DSL,你可以使用它来确定正确的使用方法
|
||||
- `struct.h` 里定义了各种数据结构和宏,这是整个 chsrc 的核心,也是 chef DSL 的核心
|
||||
- `chef.c` 里实现了 chef DSL,你可以使用它来确定正确的使用方法
|
||||
|
||||
- **Recipes**: 在目录 `src/recipe/` 中,包含了针对不同目标的具体实现
|
||||
|
||||
- `lang/` - 编程语言的包管理器 (Python pip, Node.js npm, 等等)
|
||||
- `os/` - 操作系统的包管理器 (Ubuntu apt, Arch pacman, 等等)
|
||||
- `ware/` - 软件工具和应用 (Docker, Homebrew, 等等)
|
||||
- `lang/` - 编程语言 (Ruby, JavaScript 等等)
|
||||
- `os/` - 操作系统 (Ubuntu, Arch Linux 等等)
|
||||
- `ware/` - 软件工具和应用 (Docker, Homebrew 等等)
|
||||
|
||||
|
||||
## 项目当前状态: chef DSL 迁移
|
||||
|
||||
项目正在进行现代化改造,从旧模式迁移到新的 "chef DSL" 模式。
|
||||
|
||||
### Recipe 新模式
|
||||
|
||||
请阅读 `src/recipe/recipe-template.c`, 每一个 recipe 都应该遵循这个模板。每一个文件都应该定义 prelude,在这个函数里
|
||||
|
||||
`chef.c` 里实现了 chef DSL,你可以使用它来确定正确的使用方法。
|
||||
|
||||
1. 填充维护者信息
|
||||
2. recipe 元数据
|
||||
3. recipe 支持的 feature
|
||||
4. 初始化源信息 (包括 upstream)
|
||||
|
||||
|
||||
### Recipe 旧模式 (To Be Removed):
|
||||
|
||||
- 文件头的注释信息
|
||||
- `static Source_t target_sources[]` 数组
|
||||
- `def_sources_n(target)` 宏
|
||||
- `Feature_t target_feat()` 函数
|
||||
- `def_target_gsf()` 宏
|
||||
|
||||
## Coding Guidelines
|
||||
|
||||
### When Modernizing Files:
|
||||
|
||||
1. **保持重要的技术注释** - 如对 URLs 的注释,实现备注等等
|
||||
|
||||
2. **正确转换元数据**:
|
||||
|
||||
- 提取旧头文件中的作者/贡献者信息
|
||||
- 保留创建日期和重要更新日期
|
||||
- 保留技术备注和警告
|
||||
- 请注意新的 Target_t 结构体
|
||||
|
||||
3. **使用 chef DSL**:
|
||||
|
||||
- `def_target()` 在文件最开头
|
||||
- `prelude()` 函数包含所有元数据
|
||||
- `def_sources_begin/end` 用于源定义
|
||||
|
||||
4. **Remove completely**:
|
||||
|
||||
- 旧的文件头部包含许可证/作者信息
|
||||
- `Feature_t` 函数删除
|
||||
- `static Source_t` 数组删除
|
||||
- 旧的宏调用在文件末尾删除
|
||||
|
||||
### C Coding Style:
|
||||
|
||||
请阅读 `doc/03-为什么拒绝使用代码格式化工具.md`
|
||||
|
||||
### Important Project Concepts:
|
||||
|
||||
请阅读 `doc/10-Write-A-Recipe-Even-If-You-Dont-Know-C.md`
|
||||
请阅读 `doc/10-如何编写recipe.md`
|
||||
|
||||
## Important: 一定要保持注释,因为它记录了重要的维护信息
|
||||
|
@ -14,20 +14,20 @@
|
||||
|
||||
E2E (End-to-End) 开发文档:
|
||||
|
||||
- 开发环境准备,如何编译和测试,请参考 [./01-开发与构建](./01-开发与构建)
|
||||
- 直接推送还是提交 PR,请参考 [./02-提交与贡献.md](./02-提交与贡献.md)
|
||||
- 代码风格,请参考 [./03-为什么拒绝使用代码格式化工具.md](./03-为什么拒绝使用代码格式化工具.md)
|
||||
- 开发环境准备,如何编译和测试,请参考 [01-开发与构建.md](./01-开发与构建.md)
|
||||
- 直接推送还是提交 PR,请参考 [02-提交与贡献.md](./02-提交与贡献.md)
|
||||
- 代码风格,请参考 [03-为什么拒绝使用代码格式化工具.md](./03-为什么拒绝使用代码格式化工具.md)
|
||||
|
||||
<br>
|
||||
|
||||
具体 recipe 相关:
|
||||
|
||||
- 如何编写一个具体的 recipe,请参考 [./10-如何编写recipe.md](./10-如何编写recipe.md)
|
||||
- 如何修改换源URL、模糊/精准测速URL,请参考 [./11-如何修改URL.md](./11-如何修改URL.md)
|
||||
- 如何编写一个具体的 recipe,请参考 [10-如何编写recipe.md](./10-如何编写recipe.md)
|
||||
- 如何修改换源URL、模糊/精准测速URL,请参考 [11-如何修改URL.md](./11-如何修改URL.md)
|
||||
|
||||
<br>
|
||||
|
||||
- 关于维护者身份的说明,请参考 [./50-协作者与维护者.md](./50-协作者与维护者.md)
|
||||
- 关于维护者身份的说明,请参考 [50-协作者与维护者.md](./50-协作者与维护者.md)
|
||||
|
||||
<br>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user