Files
Brandon ThomasandClaude Opus 5.5 4159ceb1b0 About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#252)
* About: contributors compiled in from contributors.json (Contributors + Models tabs, grab bag + table, sortable, name toggle)

Adds the craftrules standard (standards/contributors.md) to LightCraft: contributors/contributors.json
is generated by craftrules/scripts/contributors.py and baked into the binary by
crates/ui-egui/build.rs (merged next to the tr_format! generation) as static tables. The About
dialog gets tabs About · Contributors · Models. Each contributor line: @username, opt-in
display/real name, PRs, commits, lines +/−/Δ, binary assets +/−, first/last commit. Sortable by
every column; alphabetical ignores case and the leading @. Tabs and the list view are
control-channel widgets (button:aboutTab-*, button:creditsTable / button:creditsGrabBag).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Contributors docs: craftrules is two levels up (../../craftrules)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Contributors: self-submitted names in contributors/people.toml; AGENTS.md credit-yourself section

build.rs reads contributors/people.toml next to the generated contributors.json and shows a name only
for entries the generator verified as written by that person (craftrules standards/contributors.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Contributors: regenerate (verified people.toml entries)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Contributors: regenerate after rebase onto main

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Contributors: regenerate (verified people.toml entries)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 21:22:08 -04:00

2.9 KiB

Contributors in the About window

About ▸ Contributors credits everyone who contributed to LightCraft, and About ▸ Models credits the AI models named in Co-Authored-By trailers. This follows the shared craftrules standard standards/contributors.md; this page is the local copy of the decision.

Decision

  • Two files, both compiled into the binary by the UI crate's build.rs (nothing is read from disk or the network at run time; the web build has them too):
  • Each contributor gets one line: GitHub username (always), display name (opt-in, or their synced GitHub profile name), real name (only if they told us), merged PRs, commits, lines added, lines deleted, binary assets added, binary assets removed, first and last commit date.
  • The list is shown as a grab bag (names flowing as text) or a table, in the same order. It sorts by name, PRs, commits, lines added, lines deleted, line delta, binary assets added/removed, first or last commit date. The name toggle cycles Username → Display name → Real name; a missing name falls back to @username. Alphabetical sorting is case-insensitive and ignores the @.

In LightCraft

  • The About dialog (crates/ui-egui/src/panels/dialogs.rs, Help ▸ About LightCraft) has the tabs About · Contributors · Models; the control channel can switch them with ui.clickWidget {"id": "button:aboutTab-contributors"} (-about, -models), and the list view with button:creditsGrabBag / button:creditsTable.

Credit yourself

Add your entry to contributors/people.toml in a PR you commit yourself (every field optional):

[people.your-github-username]
real_name = "Your Name"
display_name = "Nickname"
sync_github_name = true   # use the name on your public GitHub profile as display name

or, with craftrules checked out next to craft-apps/:

python3 ../../craftrules/scripts/contributors.py --add-me . --real-name "Your Name" --sync-github-name

Names show after the next refresh: the script checks that each entry was committed by its own user (or by a maintainer with a consent_source). Delete your entry to remove your names.

Refreshing (maintainers)

python3 ../../craftrules/scripts/contributors.py .           # regenerate + verify; needs git, Python 3.11+, gh
python3 ../../craftrules/scripts/contributors.py --check .   # verify people.toml only

Commit the updated contributors/contributors.json. Git author names and emails are never recorded.