Requirements Manager
This tool helps to manage requirements written in Markdown.
Install
Reqman is a binary file that must be stored in a directory. The files can be found here.
For Linux, the execution bit must still be set.
chmod u+x reqman
Commands
The date format for the output can be specified with the parameter --date-format
.
The format can be looked up in the first column of the table below.
Layout | Java notation | C notation | Notes |
---|---|---|---|
2006-01-02 | yyyy-MM-dd | %F | ISO 8601 |
20060102 | yyyyMMdd | %Y%m%d | ISO 8601 |
January 02, 2006 | MMMM dd, yyyy | %B %d, %Y | |
02 January 2006 | dd MMMM yyyy | %d %B %Y | |
02-Jan-2006 | dd-MMM-yyyy | %d-%b-%Y | |
01/02/06 | MM/dd/yy | %D | US |
01/02/2006 | MM/dd/yyyy | %m/%d/%Y | US |
010206 | MMddyy | %m%d%y | US |
Jan-02-06 | MMM-dd-yy | %b-%d-%y | US |
Jan-02-2006 | MMM-dd-yyyy | %b-%d-%Y | US |
06 | yy | %y | |
Mon | EEE | %a | |
Monday | EEEE | %A | |
Jan-06 | MMM-yy | %b-%y |
Help
There is help on the command line for each individual command.
reqman --help
New Requiremants
A new request can be created with the following command.
reqman requirements add --id 1425
A completely new file with a structure is created. The --id 1425
is both the file name and the ID of the request.
All available fields are listed in the new file.
Output a PDF
A pdf can be created using the following command:
reqman overview \
print \
--path=requirement/documents \
--column=ID \
--column=Title \
--template=template/schukai.md \
--latex-template-path=requirement/template/schukai.latex \
--output=report.pdf \
--format=pdf
In this case the markdown files in the path requirement/documents
are read.
A table with all requirements is created in the file and the two columns
ID
and Title
are used. Additional columns can be added using additional options --column
.
File template/schukai.md
is used as a template.
The LaTeX template requirement/template/schukai.latex
is used for the design of the pdf.
The output format is PDF and the filename of the pdf document is report.pdf
.
You can use a complete directory or a subdirectory as the path.
Output of the tasks
reqman tasks print --path=examples/
The output is then of the type:
AUFGABE | BIS | ERLEDIGT | DATEI |
---|---|---|---|
das ist das erste todo 1 | — | — | ./req1/001-1425.md |
Output of the items
reqman requirements print --path examples/ --column ID --column Title
The output is then of the type:
ID | TITEL |
---|---|
A1 | My requirement |
More columns can be added with --column
.
Output of requirements
reqman requirements print --path=example/ --column=ID --column=
The output is then of the type:
ID | GRUPPE | NAME | TYP | BESCHREIBUNG | BIS | ERLEDIGT | AM | VON | DATEI |
---|---|---|---|---|---|---|---|---|---|
23423-Beistellung1 | A1 | Beistellung eines Bildes | Bild | Großes Logo | 2022-12-12 | ✓ | 2022-12-01 | Me | ./req1/002/002-01.md |
Output changelog
reqman changelog print --path=example/
The output is then of the type:
### 01.05.2022
- Requirement (R2)
### 24.01.2022
- Requirement (R1)
Structure
The Text
The individual requirements are Markdown files with integrated YAML structure. The YAML structure must
be introduced with ---
and closed with ...
.
The data from the YAML block can be integrated in the text via placeholders.
For example, the following statement can be used to include the items within the document.
{{ if .Items }}
**Items**
| ID | Name | Delivery until | Provided on |
|--------------------|--------------|----------------------:|-----------------------------------------:|
{{ range .Items
}}| {{ .ID }} | {{ .Name }} | {{ .DeliveryUntil.Format "02.Jan" }} | {{ .ProvidedOn.Format "02.Jan" }} |
{{ end }}
{{ end }}
If the PDF function is used, LaTeX commands can also be included in the text. For example, the LaTex instruction `/newline' leads to a line break.
Latex
Individual LaTeX commands can be looked up here: