diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 3e43360..2c099bb 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -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: 一定要保持注释,因为它记录了重要的维护信息 diff --git a/doc/README.md b/doc/README.md index ec59276..041855e 100644 --- a/doc/README.md +++ b/doc/README.md @@ -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)
具体 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)
-- 关于维护者身份的说明,请参考 [./50-协作者与维护者.md](./50-协作者与维护者.md) +- 关于维护者身份的说明,请参考 [50-协作者与维护者.md](./50-协作者与维护者.md)