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.0
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.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / trlc-3.1.0-py3-none-any.whl
| Download URL | trlc-3.1.0-py3-none-any.whl |
|---|---|
| Size | 109.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2c42f7b4306266019306c540b01a72844b96ceccbf68e0481a510a42f45927a4
|
|
BLAKE2b-256 checksum How to use checksums |
150fd0a0edd9d82a40d092e8379f6d54b493e288c8674ae5b3dac095e8e10ab8
|
| 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 Sep 30, 2026.
Transparency log