The file should be plain text containing a sequence of details. Each detail is a group of lines in name: value
pairs. For multiline values, indent by one space on the lines after the first. You can leave blank lines between requirements for readability.
For more details, see the man page: man rmtoo-req-format
Currently the following tags are supported:
implementable
or detailable
not done
or finished
master requirement
, requirement
, or design decision
For detailed semantics, see the man page: man rmtoo-req-format
You must - each requirement must go in one file. This is a core design principle of rmToo.
Yes - each requirement has an ID which is the case-sensitive name of the file where it’s described, without the suffix.
Example: file name OutputPrio.req
→ ID OutputPrio
Use the Solved by
field to specify dependencies:
Solved by
field per requirementSolved by
except for leaf requirements (those that cannot/should not be detailed further)Example:
Solved by: DatabaseConnection NetworkModule
To start a new paragraph, write \par
at the end of the current paragraph. This will be automatically converted to the appropriate output format.
The effort estimation is meant to be a symbolic effort point number as used in SCRUM. It’s a relative measure, not an absolute time estimate.
None - this is a symbolic number representing relative effort, not time units.
Supported values are:
not done
- Requirement is not yet implementedfinished
- Requirement has been completedSupported values are:
master requirement
- High-level requirementrequirement
- Standard requirementdesign decision
- Architectural or design choiceClass can be:
implementable
- Requirement is detailed enough to be implementeddetailable
(default) - Requirement needs further elaboration and dependent requirementsrm requirement.req
git rm requirement.req
git commit -m "Remove requirement"
No - this is not possible. Most Python files assume that the top-level directory is called rmtoo
.
This typically happens when a requirement was removed or renamed. The automatically generated dependency file must be deleted:
rm .rmtoo_dependencies
# or
make force
There is no need to compile rmToo. It comes as a set of Python modules. You can unpack and use it directly.
This indicates that the PYTHONPATH is not set correctly when using the tar packaged version of rmToo. Make sure you’ve followed the installation instructions.
Try removing all old .pyc files:
find . -name "*.pyc" | xargs rm
The coverage should then be correctly computed.
If you’re using strange line delimiters (such as carriage return and linefeed - as used by Windows), rmToo cannot parse the requirements. Convert to the commonly used Unix format using only line feeds (LF, 0x0A).
You can convert line endings with:
dos2unix your-requirement.req
Problem: pip install fails Solution: Try using a virtual environment:
python3 -m venv venv
source venv/bin/activate
pip install rmtoo
Problem: LaTeX not found Solution: Install LaTeX for your platform:
# Ubuntu/Debian
sudo apt install texlive-latex-base texlive-latex-extra
# macOS
sudo port install texlive
# Windows (Cygwin)
# Install tetex package
Problem: Graphviz not found Solution: Install graphviz:
# Ubuntu/Debian
sudo apt install graphviz
# macOS
sudo port install graphviz
# Windows
# Download from graphviz.org and add to PATH
Problem: Permission denied errors Solution: Check file permissions and use virtual environments
Problem: Configuration not found Solution: Ensure Config.json exists in your project directory
Problem: Invalid configuration Solution: Validate your JSON/YAML syntax
man rmtoo
for overview