👨💻 about me home CV/Resume News 🖊️ Contact Codeberg Github LinkedIn 🏆 Best of LuaX (tools) pub bang ypp panda lsvg ldc req yreq Fizzbuzz Calculadoira TPG picfg Belenos (intro) dnsfilter badges 🔀 Git Repos
Made in Europe
Req is a deliberately ultra-minimalist requirement management tool.
It is inspired by tagref and adds the notions of requirement sets and relations.
I wrote several tools (e.g. yreq) to deal with requirements. req is an attempt to replace tagref in the process described in Simplify your project documentation: Markdown + forge, that’s all you need.
If you like req (or LuaX) and are willing to support its development, please consider donating:
req requires LuaX.
# install req in ~/.local/bin
git clone https://codeberg.org/cdsoft/req
cd req
bang && ninja installor set $PREFIX to install req to a custom
directory ($PREFIX/bin and $PREFIX/lib):
export PREFIX=/path # install req to /path/bin
git clone https://codeberg.org/cdsoft/req
cd req
bang && ninja installThis will install 2 files in $PREFIX/bin:
$PREFIX/bin/req: req command line utility
compiled with LuaX. It can be run without any
dependency.$PREFIX/bin/req.lua: req.lua command line
utility bundled with LuaX as a standalone Lua script. It requires a Lua 5.4 or 5.5
interpreter (e.g.: lua).In case precompiled binaries are needed (GNU/Linux, MacOS, Windows),
some can be found at cdelord.fr/pub. These archives contain
req as well as some other softwares more or less related to
LuaX.
$ req -h
Usage: req [-h] [-v] [-c <conf.toml>] [-o <file>] [-M <file.d>] [-f]
Req is an ultra-minimalist requirement management tool.
Options:
-h, --help Show this help message and exit.
-v, --version Show req version
-c <conf.toml> Use a specific configuration file (default: req.toml)
-o <file> Output file (Plain text, Markdown, Lua, JSON)
-M <file.d> Save dependencies to a make dependency file (-o must be provided)
-f Fail on error
For more information, see https://codeberg.org/cdsoft/req
req just does one thing: it scans files for requirements
and checks the requirement graph. It lists duplicate, unknown and unused
requirements.
req is inspired by tagref. It reuses the
notion of tags (requirements) and references with a similar syntax.
req builds and checks a requirement graph.
WithIn engineering, a requirement is a condition that must be satisfied for the output of a work effort to be acceptable. It is an explicit, objective, clear and often quantitative description of a condition to be satisfied by a material, design, product, or service.
req a requirement is a piece of
specification/code/test/… It is identified by a requirement marker.
A requirement starts with a user-defined tag (a noun). It takes a
requirement identifier (a string). E.g.:
[noun:identifier]
[verb:identifier]
In this example, [verb:identifier] refers to
[noun:identifier] in an upstream document.
This syntax is compatible with tagref.
Note
Naming conventions:
The configuration file is a TOML file that defines:
The default configuration file is req.toml.
[spec:set_specification]
The set table contains tables (one per set) defining the
set name and its files:
[set."Set Name"]
noun = "set-noun"
path = [ "path1", "path2"... ]
include = [ "pattern1", "pattern2"...]
ignore = [ "pattern1", "pattern2"...]The files of a set are collected recursively in all directories
listed in the path attribute. In a git repository, only
files belonging to the repository are listed.
The include field is an optional list of file patterns
to include ([spec:included_files]).
The ignore field is an optional list of file patterns to
ignore ([spec:ignored_files]).
[spec:ignore_preprocessed_files]
When the include parameter contains files or patterns
ending with .in (files traditionally meant to be
preprocessed, e.g. *.md.in) then the corresponding
preprocessed files (without the .in extension) are
ignored.
[spec:relation_specification]
The relation table contains tables (one per relation)
defining the relation name and the upstream/downstream sets of
files:
[relation."Relation Name"]
verb = "relation-verb"
up = "Upstream set name"
down = "Downstream set name"See the req configuration
file.
req shall check the configuration consistency:
The requirements and references shall meet certains conditions:
The final report shall contain:
req is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
req is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with req. If not, see <https://www.gnu.org/licenses/>.
For further information about req you can visit
https://codeberg.org/cdsoft/req
This site is powered by LuaX, bang, ypp, cdsoft.css and Pandoc.
Mirrors: cdelord.fr – christophe.delord.free.fr – cdsoft.codeberg.page