* 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>
2.9 KiB
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):contributors/contributors.json: commit stats per GitHub username. Generated bycraftrules/scripts/contributors.py; never hand-edit.contributors/people.toml: the names people chose for themselves. Each contributor adds only their own entry, in their own PR.
- 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 withui.clickWidget {"id": "button:aboutTab-contributors"}(-about,-models), and the list view withbutton: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.