Skip to content

Rewrite the contributor guide and tidy the repo docs - #416

Merged
SpaiR merged 6 commits into
mainfrom
chore/repo-housekeeping
Jul 27, 2026
Merged

Rewrite the contributor guide and tidy the repo docs#416
SpaiR merged 6 commits into
mainfrom
chore/repo-housekeeping

Conversation

@SpaiR

@SpaiR SpaiR commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

Move CONTRIBUTING.md to the repo root, rewrite it into an actual contributor guide, and align AGENTS.md, README.md, and the PR template with it.

The old file was mostly the generic contributing template — an empty "open a new issue" link, a bug-report section duplicating the issue forms, and commit rules that had drifted from the real history (build listed as both a type and a scope, no deps scope, a mandatory 20-character body that most fix/chore commits ignore).

What the rewrite adds:

  • Quick start--recurse-submodules, prerequisites, the checks to run before pushing.
  • Before you start — the four rules that actually block review, up top: never edit src/generated/java/, never commit bin/ natives, one topic per PR, doclint must pass.
  • Commit format — types extended to feat|fix|perf|refactor|docs|test|build|chore|revert, scopes from 3 to 13 matching the module layout, ! + BREAKING CHANGE: convention.
  • Pull requests — new section: the title must be a valid commit header since PRs are squash-merged, plus body sections, label mapping onto the labels that exist, and what CI covers.
  • Releases — new section: the versioning scheme (MAJOR.MINOR tracks Dear ImGui, PATCH is our own counter), the consequence that the version can never signal a breaking change, and the tag → CI → draft release → Maven Central procedure.
  • Bug reports — the two issue templates linked directly, replacing the generic prose.

Also on this branch: CLAUDE.md trimmed to defer entirely to AGENTS.md, and per-module bin/ output from Eclipse/VS Code Java builds added to .gitignore.

Type of change

  • Minor changes or tweaks (quality of life stuff)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Notes for reviewer

  • Docs only — no code, build, or CI logic touched.
  • The versioning section is reverse-engineered from the tags: v1.92.0↔imgui 1.92.7, v1.90.01.90.9, v1.89.01.89.9, and v1.87.0v1.87.7 on one upstream version. Worth confirming that is the intended rule and not just how it happened to land.
  • The release procedure is written from .github/workflows/ci.yml and buildSrc/scripts/publish.sh. Any manual step that lives only in your head is missing from it.
  • Repo labels were extended to one per commit type (perf, refactor, test, build, revert added, chore narrowed to housekeeping), plus breaking-change. The label table in the guide is now a direct mapping.
  • PR titles are prose sentences rather than commit headers; the conventional header goes into the squash subject at merge time. That adds one step to the merge dialog — say if you'd rather switch to merge commits instead.

SpaiR and others added 4 commits July 27, 2026 09:04
Update references in AGENTS.md now that it's no longer under docs/.
Avoid duplicating the summary list, which drifts from AGENTS.md as it changes.
Root bin/ holds tracked native libs, so only ignore */bin/.
The old file was mostly the generic contributing template: an empty
"open a new issue" link, a bug-report section duplicating the issue
forms, and commit rules that no longer matched the history — `build`
listed as both a type and a scope, no `deps` scope, and a mandatory
20-character body that most `fix`/`chore` commits ignore.

- add quick start, prerequisites, and the checks to run before pushing
- lift the rules that actually block review to the top: never edit
  src/generated, never commit bin/ natives, one topic per PR, doclint
- extend commit types to feat|fix|perf|refactor|docs|test|build|chore|
  revert, and scopes from 3 to 13 matching the module layout
- add PR rules: the title must be a valid commit header since PRs are
  squash-merged, plus body sections, label mapping, and CI coverage
- document the release procedure and the versioning scheme — MAJOR.MINOR
  tracks Dear ImGui, so the version can never signal a breaking change
- point AGENTS.md and README at CONTRIBUTING.md as the commit/PR/release
  authority, and give the PR template matching sections

Co-authored-by: Claude <noreply@anthropic.com>
@SpaiR SpaiR added the docs Improvements or additions to documentation label Jul 27, 2026
A conventional header is a poor PR title: it describes the first or
largest commit rather than the whole change, and it reads badly in the
PR list where a reviewer is scanning for what a change does. The type
is already carried by the label, so the prefix is redundant there.

- title is now a descriptive sentence, sentence case, no prefix
- the conventional header is written into the squash subject at merge
  time, so `main` history is unaffected
- sync the rule across the PR template and AGENTS.md

Co-authored-by: Claude <noreply@anthropic.com>
@SpaiR SpaiR changed the title docs: rewrite CONTRIBUTING.md and move it to the repo root Rewrite the contributor guide and tidy the repo docs Jul 27, 2026
The repo now has a label per commit type (perf, refactor, test, build,
revert added; chore's description narrowed to housekeeping so it no
longer overlaps refactor), plus breaking-change. Collapsing five types
into `chore` lost the distinction the types exist to make.

- replace the many-to-one table with a direct type -> label mapping
- `build(deps)` still takes `deps`, which Dependabot applies itself
- breaking-change stacks on top of the type label; with the version
  pinned to Dear ImGui it is the only visible marker in the PR list

Co-authored-by: Claude <noreply@anthropic.com>
@SpaiR
SpaiR merged commit 3a73cee into main Jul 27, 2026
7 checks passed
@SpaiR
SpaiR deleted the chore/repo-housekeeping branch July 27, 2026 07:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant