Skip to content

docs: require signed commits, rename CONTRIBUTE.md to CONTRIBUTING.md - #880

Merged
coderdan merged 1 commit into
mainfrom
docs/require-signed-commits
Aug 11, 2026
Merged

coderdan merged 1 commit into
mainfrom
docs/require-signed-commits

Conversation

@coderdan

@coderdan coderdan commented Aug 11, 2026 •

Copy link
Copy Markdown
Contributor

A third-party PR landed recently with unsigned commits. Two reasons that happened, and this fixes both.

1. The guidelines never said signing was required

Adds a Signing Your Commits section to the contributor guidelines, plus a step in "Making Changes" pointing at it. It covers:

  • The requirement itself — every commit in a PR must be signed, unsigned PRs don't merge — and why it matters for a repo whose packages ship as dependencies into other people's apps.
  • SSH signing setup, including the gotcha that a key registered on GitHub as an authentication key won't produce a Verified badge; it has to be added as a Signing Key.
  • GPG signing setup.
  • The signing-key email must match the Git config email and be verified on GitHub, or commits show as Unverified rather than Verified.
  • How to retroactively sign already-pushed commits (git rebase --exec 'git commit --amend --no-edit -S' main + --force-with-lease), with a warning to only force-push your own PR branch.

2. Contributors were probably never shown the file

The file was named CONTRIBUTE.md. GitHub only surfaces its "Contributing guidelines" prompt on new issues and PRs for CONTRIBUTING.md (in the repo root, .github/, or docs/), so the document was effectively invisible to drive-by contributors.

Renamed to CONTRIBUTING.md and updated the inbound references:

  • README.md
  • packages/stack/README.md
  • the target list in scripts/lint-no-dead-package-paths.mjs

node scripts/lint-no-dead-package-paths.mjs passes; biome check clean on the touched files.

Closes #881.

Two changes to the contributor guidelines:

1. Add a "Signing Your Commits" section. All commits in a PR must be
   cryptographically signed. Covers SSH and GPG setup, the GitHub key-type
   and email-matching gotchas that produce an Unverified badge, and how to
   retroactively sign commits that were already pushed.

2. Rename the file to CONTRIBUTING.md. GitHub only surfaces the
   "Contributing guidelines" prompt on new issues and PRs for that exact
   filename, so third-party contributors were never shown this document —
   which is a large part of why unsigned PRs arrive. Inbound links in
   README.md, packages/stack/README.md, and the target list in
   scripts/lint-no-dead-package-paths.mjs updated to match.
@coderdan
coderdan requested a review from a team as a code owner August 11, 2026 04:46
@changeset-bot

changeset-bot Bot commented Aug 11, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 5510e27

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderdan
coderdan requested review from auxesis and tobyhede August 11, 2026 04:48

@auxesis auxesis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beauty, love your work @coderdan.

@coderdan
coderdan merged commit 1d0018a into main Aug 11, 2026
9 checks passed
@coderdan
coderdan deleted the docs/require-signed-commits branch August 11, 2026 05:31
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.

Document the signed-commits policy in CONTRIBUTE.md

2 participants