Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

docs: changelog fragments instead of one shared CHANGELOG.md (every PR conflicts on it)

未关闭
#1,268 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
文档
描述清晰度
描述清楚
活跃度
活跃
技术栈
c

调研方向

Look at the existing CHANGELOG.md structure and the release process in tools/. Study how other projects like CPython (blurb) or Go implement fragment-based changelogs. The work involves creating a new directory (e.g., changes/), writing a script to assemble fragments, and adding a CI gate to enforce fragment creation for PRs touching src/ or lib/. Done when two PRs adding fragments no longer conflict and the release script produces an identical CHANGELOG.md section.

由索引模型根据 Issue 内容生成。

描述

area:docs help wanted kind:decision

Problem. CHANGELOG.md is one 11,638-line file touched by 66 commits in the last month. Every concurrent PR edits the same region, so every pair of PRs conflicts on it: the same friction class as the pinned counts in #1264 (a conflict also stops pull_request CI from running at all, as seen on #1260).

What mature languages do. Each change carries its own fragment file, and a tool assembles them at release:

  • CPython: Misc/NEWS.d/ fragments via blurb.
  • Go (since 1.23): doc/next/*.md fragments merged into the release notes.
  • Rust: a relnotes PR label, from which the release team curates RELEASES.md.
  • Many Python projects: towncrier.

Bar (what must be true).

  1. A PR adds changes/<category>/<PR-or-slug>.md (category ∈ Added/Changed/Fixed/Removed/Security or the repo's existing headings) and never edits CHANGELOG.md directly.
  2. The release-cut step (tools/ + the release skill) assembles the fragments into a new CHANGELOG.md section and deletes them, deterministically: same fragments → byte-identical section.
  3. A gate: a PR that touches src/ or lib/ without a fragment fails, unless an explicit skip-changelog label or trailer is present. CHANGELOG.md edits outside a release cut fail.
  4. Two PRs each adding a fragment never conflict with each other. Prove it with two branches.
  5. Existing history in CHANGELOG.md is untouched.

Ranked #1 of the docs follow-ups from the 2026-09-22 comparison with other languages (cheapest, and it removes a guaranteed conflict from every PR). Refs #1264.

主要语言
C
星标
3
派生
7
平均合并
4 小时 7 分钟
30 天内合并 PR
112

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

InauguralSystems/EigenScript 的其他 Issue

查看 InauguralSystems/EigenScript 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。