A graphical requirements editor for doorstop: https://github.com/doorstop-dev/doorstop
This tool is designed to view and edit doorstop requirements, as fast as possible.
- Install the required dependencies (Python 3.5+ required by doorstop):
pip install doorstop
pip install PySide6
pip install plantuml-markdown
- Download the
doorhole.py
script inside a directory listed in your PATH system variable for easier access - Make it executable
- Open a terminal inside your git folder (you should already have a doorstop requirement tree).
- Launch the script with
./doorhole.py
.
It will launch doorstop
internally, load all requirements, and after a while the editor window will appear.
Because all the tools lack something:
- doorstop GUI is slow while editing
- editing requirements using Calc or Excel is cumbersome
- you don't see PlantUML graphs (but you love them)
- faster than doorstop-gui
- open all requirement sets at once with tabs
- display requirements in a table-like interface
- edit and actually see plantUML graphs!
- create, view, edit, delete requirements
This tool is not performing a whole doorstop verification, because it would be rather slow (like doorstop GUI).
Use doorstop
for that, and add your own checks there.
The script uses by default the PlantUML online renderer at http://www.plantuml.com/plantuml.
If you experience issues with the above online renderer, you can:
- use another web renderer (Docker image: https://hub.docker.com/r/plantuml/plantuml-server), or
- install a local renderer
If you want to change the PlantUML web renderer, update line #24 of the doorhole.py
accordingly.
If you want to install PlantUML locally, read on!
- Download and install Java
- Download
plantuml.jar
from https://plantuml.com/download inside a directory listed in your PATH system variable for easier access. - Next to the
plantuml.jar
file, create theplantuml.bat
file with the following content:
@echo off
set mypath=%~dp0
setlocal
java -jar %mypath%\plantuml.jar -charset UTF-8 %*
Done!
The sad news is that this tool cannot render MathJax expressions right now. It's a Javascript loaded in the published HTML.