Treat Requirements Like Code (TRLC)
TRLC is a domain-specific language developed at BMW for writing (and linking) requirements with meta-data.
The repository contains:
-
The language reference manual for TRLC. Previous versions are also available.
-
A pure Python reference implementation of TRLC.
The implementation is not very fast, but designed to be pedantically correct in following the language definition. The tools also include a powerful static analysis tool to find issues with types and user-defined check rules.
The Python implementation can be used for several purposes:
-
It can be used to validate other TRLC implementations.
-
It can be used to validate a body of requirements (e.g. a CI check that all requirements are well formed)
-
The API can be used to write other tools based on TRLC (for example a tool to render the requirements in HTML, a tool to diff requirements or perform an impact analysis, or a tool to perform software traceability, etc.)
Documentation
For normal users
- Tutorial (read this as a first introduction)
- Bazel integration (how to use TRLC inside a Bazel build)
- User manual: TRLC linter (the user manual for the TRLC static analysis and linter)
- Release Notes (read this to find out what’s new)
- License
For advanced users
- Language Reference Manual (for language lawyers)
- Python API Documentation (API reference for end-users)
- AST Hierarchy (overview over all classes in the AST)
For TRLC developers
- Set up development environment
- Lexer/Parser Hierarchy (overview over all classes related to the lexing and parsing of TRLC)
- Tool Architecture Overview
- TRLC Static Checker Slides (Kinda incomplete, designed to go along with a code walkthrough)
- Requirements Coverage Report
- Code Coverage Report
Tools Available
- TRLC_RST: Convert TRLC Requirements for Sphinx Build
- Converters: Multiple converters from TRLC to other file formats. The tool suite is maintained by NewTec GmbH.
Dependencies
Run-time
Acknowledgements
Special thanks to Florian Schanda for his many valuable contributions to this repository.
Metadata
Release files for trlc 3.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trlc-3.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / trlc-3.1.1-py3-none-any.whl
| Download URL | trlc-3.1.1-py3-none-any.whl |
|---|---|
| Size | 110.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6ac19a2ac0dc3817319756e51ee31dd58cfa432cd70a279d9efb977242d47fea
|
|
BLAKE2b-256 checksum How to use checksums |
4d371d08fe4120b4191cef50b369f5e68d02ea8e584fdb3cc538180b4f26191f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logSecurity for trlc 3.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 1 file in this release has been uploaded with provenance metadata.
Attestation for trlc-3.1.1-py3-none-any.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.