Skip to content

🔧 chore(repository): 统一主页仓库元数据 - #121

Merged
ZhaoXingPeng merged 1 commit into
mainfrom
chore/120-homepage-metadata
Sep 8, 2026
Merged

ZhaoXingPeng merged 1 commit into
mainfrom
chore/120-homepage-metadata

Conversation

@ZhaoXingPeng

Copy link
Copy Markdown
Owner

关联 Issue

Closes #120

背景(Situation)

仓库主页的 .gitignore、config 和 LICENSE 分别显示与当前内容不匹配的历史提交:算法功能标题、init 和 Initial commit。这些条目既不符合已落地的 Gitmoji + Conventional Commits 规则,也掩盖了三个仓库元数据文件的实际维护状态。

任务(Task)

以一条单主题维护提交更新上述三个路径,并做不改变功能和许可证授权的最小仓库卫生改进,使主页三个路径显示同一个规范标题。

行动(Action)

  • .gitignore:在项目专用区显式忽略本地 .ci-smoke/ 虚拟环境,避免根目录意外加入 smoke 依赖与二进制。
  • config/config.example.yaml:增加复制到已忽略 config/local.yaml 的说明,明确 tracked 样例只能保留非敏感占位值。
  • LICENSE:添加 SPDX-License-Identifier: MIT;原 MIT 授权和免责声明文本不变。
  • 没有做什么:不修改运行时代码、依赖、测试、配置 schema、许可证权利、版本或发布物。

验证(Verification)

python -c "import yaml, pathlib; yaml.safe_load(...); print('config YAML OK')"
config YAML OK

git check-ignore -v .ci-smoke/pyvenv.cfg
.gitignore:178:.ci-smoke/  .ci-smoke/pyvenv.cfg

git diff --cached --check
通过

python scripts/validate_commit_title.py --title ':wrench: chore(repository): 统一主页仓库元数据'
OK: :wrench: chore(repository): 统一主页仓库元数据

最终提交 5de57a0 的变更统计为 3 个文件、6 行新增、1 行删除。由于没有 Python 运行时代码或测试逻辑变更,本 PR 不重复运行完整单元测试;完整 CI 矩阵仍由 GitHub Actions 执行。

实验与证据(Evidence)

  • 对真实本地文件 .ci-smoke/pyvenv.cfg 调用 git check-ignore -v,确认匹配的是根 .gitignore 的新规则,而非仅依赖目录内的忽略文件。
  • 使用 YAML 解析器加载更新后的配置样例,确认新增注释不改变配置数据结构。
  • 审阅 git diff -- LICENSE,只有 SPDX 行和空行新增,原 MIT 文本未改写。
  • 本 PR 不涉及数据库、性能或端到端行为;没有性能实验,不作性能结论。

兼容性、风险与回滚

  • 公共 API / 数据格式 / 迁移:无。配置新增的只是注释;config/local.yaml 原本已被忽略。
  • 风险与已知限制:SPDX 标识改善自动许可证识别,但不替代法律审查;根忽略规则只影响未追踪的 .ci-smoke/ 文件。
  • 回滚:还原提交 5de57a0 即可恢复三个文件的先前内容;无数据或运行时状态需要迁移。
  • 后续 Issue:无。后续根目录元数据变更继续使用同一标题规范,不重写已合并历史。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

维护范围确认(2026-09-08)

当前结论

这是一条有意限定为三条根目录路径的元数据维护提交。它同时解决主页最后提交标题不统一和两个实际仓库卫生问题:根级 smoke 环境忽略、配置样例的本地凭据提醒;许可证仅添加可机读识别,不改变授权条款。

变更与设计取舍

  • 提交:5de57a0。
  • .ci-smoke/ 是本机创建的虚拟环境,内部虽有自己的忽略文件,但根 .gitignore 也应显式保护它,避免目录移动、嵌套规则失效或根级 git add 误纳入依赖。
  • 配置说明明确指向已忽略的 config/local.yaml,而不是新增另一个配置格式或示例凭据。
  • SPDX-License-Identifier: MIT 作为单独头部行保留 MIT 文本的每一条授权与免责声明;没有改变版权行或许可证类型。

验证与证据

  • 变更限定为 .gitignore、LICENSE 和 config/config.example.yaml,git show --stat 为 3 文件、6 行新增、1 行删除。
  • git diff --check 已通过;配置将用 YAML 解析器读取,忽略规则将对真实 .ci-smoke/pyvenv.cfg 验证。
  • 本变更不需要数据库、模板或性能实验,不能据此宣称运行时改进。

兼容性与下一步

  • .ci-smoke/ 已存在于本地且未追踪,根规则只影响以后未跟踪文件的暂存行为。
  • 若根级 smoke 目录以后需要版本控制,应在独立 Issue 中显式移除规则并提交受控文件,不能靠 -f 绕过。
  • 回滚只需还原 5de57a0;没有迁移或运行时状态。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

本地验证记录(2026-09-08)

当前结论

配置样例仍是有效 YAML,根级忽略规则实际命中本地 smoke 虚拟环境,许可证 diff 仅增加 SPDX 识别行;提交标题符合新元数据门禁。

变更与设计取舍

  • 提交:5de57a0。
  • 测试采用真实工作区中的 .ci-smoke/pyvenv.cfg,不是假设性路径;配置解析只验证注释不会改动 YAML 值。

验证与证据

  • python -c "import yaml, pathlib; yaml.safe_load(pathlib.Path('config/config.example.yaml').read_text(encoding='utf-8')); print('config YAML OK')":config YAML OK。
  • git check-ignore -v .ci-smoke/pyvenv.cfg:输出 .gitignore:178:.ci-smoke/,证明由根规则命中。
  • git diff --cached --check:通过,最终 diff 没有 CRLF 全文件噪声或 trailing whitespace。
  • python scripts/validate_commit_title.py --title ':wrench: chore(repository): 统一主页仓库元数据':通过。
  • git diff -- LICENSE:仅新增 SPDX-License-Identifier: MIT 和分隔空行;MIT 文本逐行保持。

兼容性与下一步

  • 未执行完整单元测试,因为本 PR 不改 Python、模板或运行时逻辑;CI 的完整矩阵仍是合并门禁。
  • 审查重点是确认三条路径由同一提交覆盖,且主页条目在 squash 后显示该标准标题。
  • GitHub Actions 成功后可 squash 合并;历史提交不需要重写。

@ZhaoXingPeng
ZhaoXingPeng merged commit 2803b40 into main Sep 8, 2026
10 checks passed
@ZhaoXingPeng
ZhaoXingPeng deleted the chore/120-homepage-metadata branch September 9, 2026 02:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🔧 chore(repository): 统一主页仓库元数据

1 participant