feat(framework): credit GitHub contributors in generated release notes
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- github, github-actions, typescript
Hướng nghiên cứu
Start by reading release-please-config.json and .github/workflows/ci.yml, then compare the generated v5.10.0 release. Trace where root and component release notes are produced and run the existing tests before changing behavior. Done means human PR authors are credited once per applicable release, bots are excluded, and repeated generation remains unchanged.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
Release Please lists changes, pull requests and commits, but the generated GitHub releases do not credit the people behind them by GitHub handle.
The current v5.10.0 release contains no @handle mentions.
Scope
- After release-please creates the releases, a CI step appends each changelog line's commit author as
(@handle)(Symfony-style), in every GitHub release of the cycle: root and each component. A component credits only the authors of its own commits. mainaccepts only merge commits (rulesetallowed_merge_methods: ["merge"]), so a promote can be neither squashed nor rebased. The release PR switches from--squash --adminto--merge --admin; ahotfix/*lands as a merge commit.
Findings
Verified in a throwaway sandbox repository (since deleted) and against this repository, read-only.
- release-please's native
include-commit-authorscredits nobody in 17.11.2, the latest release:parseConventionalCommitsdrops the commit author. Upstream bug googleapis/release-please#2761, fix googleapis/release-please#2892 still open. Hence the post-processing step. changelog-type: githubis rejected: it reads the whole range between tags, which is wrong for component releases.- A prototype of the step, run twice on the sandbox's releases, credited every line and changed nothing the second time. A read-only dry run over
v5.10.0credited all 44 lines, including those ending in, closes #…. - On the last 60 PRs merged into
next, the squash commit's author is the PR author (55/55 humans), even when someone else merges. - Editing a release fires
release: edited;back-merge.ymllistens only topublished, so crediting does not re-run it. - Under a merge-only ruleset, a bypass actor in
pull_requestmode (the live mode foraidd-botand teamadmin) still cannot squash, even with--admin. The current--squash --adminrelease merge would therefore be refused: the release PR must move to--mergebefore the live ruleset changes. - A release PR merged as a merge commit is tagged normally (sandbox, and #135 /
v4.1.0here). commitlint ignoresMerge pull request …subjects. Back-merge and a second cycle work unchanged. - A squashed promote makes release-please report "No user facing commits found": the week's entries vanish from the notes without any signal.
Acceptance criteria
- Every changelog line that links a commit, in every GitHub release of a cycle, ends with its commit author's
@handle, or the author's name when no account resolves. - A component release credits only authors of commits in that component.
- Re-running the step changes nothing.
- Tests cover multiple contributors, a repeated contributor, a bot, a
closes #Nline, a line without a SHA, and an already-credited line. -
mainrefuses squash and rebase merges;.github/rulesets/main.jsonand the live ruleset agree. - The release PR merges with
--merge --admin, is tagged, and back-merge still foldsmainintonext. - The live ruleset changes only after one release has merged with
--merge. - Each guard ships with a test that fails when the guard is removed.
Accepted tradeoffs
- Per-line credit only: no contributor section, no deduplication.
- The maintainer is credited like everyone else;
(@dependabot[bot])appears on dependency lines. - Only the GitHub releases carry handles;
CHANGELOG.mdand the release PR body do not. - A multi-author PR credits its author only;
Co-authored-by:trailers are ignored. - A
hotfix/*lands as a merge commit instead of a squash. - Bullets under
⚠ BREAKING CHANGESlink no commit and stay uncredited; the same commit is credited on its own line in its section.
Follow-up
- Once googleapis/release-please#2892 ships in a pinned
release-please-action: turn oninclude-commit-authors, delete the post-processing step and its script, and check a release still credits every line.
Prior art in this repo
release-please-config.json.github/workflows/ci.yml.github/workflows/promote.yml.github/rulesets/main.json- Release
v5.10.0. - Brief and plan:
aidd_docs/tasks/2026_09/2026_09_23_credit-contributors-release-notes/
Out of scope
- Rewriting Git history.
- Other forms of contribution (issues, reviews, discussions).
- A contributor section or recap list.
- A weekly shout-out on overall contribution (separate issue).
- Manually maintained changelogs.
- Ngôn ngữ chính
- TypeScript
- Star
- 481
- Fork
- 45
- Merge trung bình
- 19 giờ 38 phút
- Pull request đã merge (30 ngày)
- 108
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ai-driven-dev/framework
-
refactor(aidd-orchestrator): the check zone says when to stop, and reviews its axes in one round Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
ai-driven-dev/framework#887 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
ai-driven-dev/framework#873 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
ai-driven-dev/framework#872 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
ai-driven-dev/framework#625 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
ai-driven-dev/framework#467 · 1 bình luận ·
Tất cả issue của ai-driven-dev/framework
Issue tương tự
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
Mend: dependency security vulnerability untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100