Crates.io | rst_app |
lib.rs | rst_app |
version | 0.3.7 |
source | src |
created_at | 2016-08-10 20:42:27.012068 |
updated_at | 2016-11-30 20:09:15.262795 |
description | rst: the requirements tracking tool made for developers |
homepage | |
repository | https://github.com/vitiral/rst |
max_upload_size | |
id | 5945 |
size | 1,839,291 |
rst is a requirements tracking tool made for developers. It is an acronym for "Requirements, Specifications and Tests".
rst is pronounced like "wrist"
Once installed run rst -h
on the cmdline to view the help message. rst tutorial
will start the interactive tutorial.
Requirements and design documentation are probably the most important components of writing quality software. Without them it can be very difficult to develop and maintain the product you were aiming to create. However, there are no open source tools (or proprietary tools for that matter) that make this process simple, easy and fun. rst aims to do that by giving you a:
It is hard to keep documentation up to date, especially when it doesn't aid the core developer in tracking their progress. rst aims to bridge that gap, giving you a simple tool that you can use to track your project completeness and test coverage.
If you like or use rst please star:star: it on github and mention it to friends and colleagues. It is my belief that requirements tracking needs to be as second nature as revision control and unit testing has become. I hope that by building better software we can all make the world just a little bit better.
If you find bugs or have any suggestions, please open an issue here: bug tracker
rst is still in Beta and is not 100% feature complete. The API for the cmdline and text format is expected to be stable, but the author reserves the right to change anything that needs to be changed if it improves usability.
Future improvements include:
rst is compiled for linux, mac and windows. You can find releases on the github release page.
For Linux and Mac simply download and unpack the tarball with
tar -zxvf RELEASE.tar.gz
. Then put it somewhere in your
PATH
For Windows, simply download the zip, unzip it and run ./rst.exe
via git-bash
or some other linux emulator. It seems that the *windows-gnu.zip works the best
for windows10.
npm install -g elm webpack
git clone https://github.com/vitiral/rst.git; cd rst
cargo build --release --features web
Note: you can leave of "--features web" if you only want the command line ui
Note: on windows, you will have to manually compile the javascript code. Simply
cd web-ui; npm run build
and it will be compiled.
For a full tutorial, install rst and run
rst tutorial
If I was writing a "hello world" program in python and wanted to track requirements, this would be the process.
mkdir
and cd
to an empty folderrst init
vim reqs/design.toml
and write my requirements and design# reqs/design.toml
[REQ-purpose]
text = '''
we need to be able to say hello to both the world and aliens
'''
[REQ-world]
partof = "REQ-purpose"
text = '''
there **shall** be way to say hello to the world. All of it.
'''
[SPC-world]
text = '''
The hello-world function shall say hello by printing it on
the cmdline
'''
[TST-world]
text = '''
To make this testable, there will be an intermediary
function that can test it before printing.
'''
[REQ-aliens]
partof = "REQ-purpose"
text = '''
there **shall also** be a way to say hello to aliens, but
that will be harder
'''
[SPC-aliens]
text = '''
I think we should use SETI or something
'''
Okay, now that we've written our requirements and design, let's start coding!
mkdir src
vim src/hello.py
and write my program#!/usr/bin/python2
def _hello_world():
''' an intermediary function to allow for testing '''
return "hello world!"
def test_greeting():
''' test that the greeting works as expected
partof: #TST-world '''
assert _hello_world() == "hello world!"
def hello_world():
''' say hello to the world
partof: #SPC-world '''
print _hello_world()
if __name__ == '__main__':
test_greeting()
hello_world()
python2 src/hello.py
: it says hello world! That is good design :)vim ~/.rst/settings.toml
and add "{repo}/src"
to code_paths
rst ls
to show this lovely status reportrst check
to validate that there are no errorsrst server
to host my requirements on a server and view it via my browserAs you can see, we've finished our specs and tests for saying hello to the world, but not to the aliens. If the aliens arrived, it would be nice to know whether you can say hello -- rst can help you do that!
Here is a snapshot (0.1.0) of items yet to be started:
$ rst ls -c '<' -T
If you want to see items that have been mostly complete but have not been tested, clone this repo and run:
rst ls -c '>50' -t '<99' -T
The rst file format (the format of the toml files, artifact name, etc) is licensed under the CC0 (Creative Commons Public Domain) License. Any person can use the format for any reason without the need for even attribution (attribution is appreciated though!)
The rst library and web-ui are licensed under the LGPLv3+, except for files which say otherwise in their header. See LICENSE.txt for more information.