This repository contains Truss Standard Requests (TSRs) — formal design documents for proposing, discussing, and adopting changes to the Truss programming language, its standard library, tooling, and governance.
A TSR (Truss Standard Request) is the primary mechanism for making significant changes to Truss. Each TSR is a design document that follows a structured format and goes through a formal lifecycle (Draft → Proposal → Discussion → Review → Accepted/Rejected → Active).
TSRs are analogous to Python's PEPs, Java's JEPs, or Rust's RFCs.
| Link | Purpose |
|---|---|
| TSR-000 | The TSR process itself (normative) |
| TEMPLATE.md | Template for writing new TSRs |
| Index | A categorized overview of all TSRs |
| Status | Meaning |
|---|---|
| Draft | Author is writing; not yet submitted |
| Proposal | Submitted, awaiting review and number assignment |
| Discussion | Open for community feedback (min 14 days) |
| Review | Under active review by core team |
| Accepted | Approved; awaiting implementation |
| Rejected | Declined (reason documented) |
| Deferred | Postponed to future consideration |
| Active | Implemented and released in a Truss version |
-
Copy the template
cp TEMPLATE.md TSR-NNN.md
(Leave
NNNas placeholder until assigned) -
Write your proposal following the template structure
-
Submit by opening a Pull Request to this repository
-
Wait for number assignment — a reviewer will assign a TSR number and move your TSR to
Proposalstatus -
Participate in discussion — after the PR is merged, discussion happens via GitHub Issues / Discussions
-
Iterate based on feedback
For full details, read TSR-000: TSR Purpose and Process.
| File a TSR for: | File an Issue for: |
|---|---|
| Language syntax changes | Bug reports |
| New keywords or operators | Small feature requests |
| Standard library API additions/removals | Documentation improvements |
| Major toolchain changes (LSP, build system) | Performance regressions |
| Process or governance changes | Question or help request |
| Design decisions requiring broad consensus | Minor enhancements (single file change) |
When in doubt, file an issue first. A maintainer may suggest upgrading to a TSR.
truss-community/TSR/
├── README.md # This file
├── TEMPLATE.md # Template for new TSRs
├── TSR-000.md # The TSR process specification
├── TSR-001.md # Individual TSRs
├── TSR-002.md
├── text/ # Archived or rejected TSRs
│ ├── rejected/
│ └── deferred/
└── meta/ # Process documentation
├── voting.md
└── reviewers.md
- Be constructive — focus on ideas, not individuals
- Back claims with reasoning — "I don't like it" is insufficient
- Assume good faith — authors invest significant effort
- Stay on topic — off-topic comments may be removed
- Minimum discussion period is 14 days for Standards Track TSRs
Discussion happens in:
- GitHub Discussions (preferred for long-form)
- Truss Discord
#tsrchannel (for real-time chat)
- After discussion concludes, a Reviewer (core team member) summarizes consensus
- Final Decision Maker (Language Lead or Technical Committee) issues a ruling:
- Accept — move to
Acceptedstatus - Reject — move to
Rejectedwith written rationale - Defer — move to
Deferred(revisit later)
- Accept — move to
All decisions are documented in the TSR itself under Rationale and the PR/issue discussion.
| Name | Area of Focus |
|---|---|
| To be appointed | Language design |
| To be appointed | Standard library |
| To be appointed | Tooling / compiler |
| To be appointed | Process |
- Typos or formatting issues → Open a small PR
- Clarifying an existing TSR → Open an issue first
- Proposing a new TSR → See How to Propose a TSR
All TSRs in this repository are licensed under CC BY 4.0.
- Truss Language Website (Not avaliable)
- Truss GitHub Organization