Arch notes

Workflow

[ Repo ]

   | 1      init(type,args) # init repo:
   |                        # * type can be Filesystem or other,
   |                        # * args can be root, connection string...
   |        load(stm)       # obtain STM from repo
   v n

[ STM ]

   | 1      parse_head()    # parse text and fill out metadata properties
   |        gen_sts(args)   # generate a number of STS from an STM
   |                        # * args - args specify ranges from where
   |                        #          STMs are generated; typically
   |                        #          Cartesian product
   v n

[ STS ] = STM + ARGS

   | 1      gen_task(sts,args)  # a task (or a number of) can be created
   |                            # from STS.  In less managed scenarios
   |                            # (e.g. Beta testing) STS can be served
   |                            # right away, and task ID will be generated
   |                            # off-site, e.g. using embedded JS, at
   |                            # time of report
   v n

[ TSK ] = STS + TID

More graphical, from HTTP POV

/release/rc.stm

+------------------[ vcs rev: 123 ]-----+
| STM # Source file                     |
+---------------------------------------+
| Name: Release Client                  |
| Component: ~                          |
| Description: Basic release criterion  |
| Owner: some.guy@example.com           |
| Various ISTQB BS: this; that...       |
|                                       |
| Here the body sterts...               |
|                                       |
| # Main #                              |
| 1. Check A                            |
|    > result is a                      |
| 2. Check IMAPIsm        {proto==imap} |
| 2. Check POP3ism        {proto==pop3} |
|    > result is OK                     |
+---------------------------------------+


GET /release/rc.stm?os=7&proto=imap
Accept: text/plain

+---------------------------------------+
| STS # Slave template                  |
+---------------------------------------+
| Stm: /release/rc.stm                  |
| Stm Revision: 123                     |
| Params: os=7; proto=imap              |
|                                       |
| Here the body starts...               |
|                                       |
| # Main #                              |
| 1. Check A                            |
|    > result is a                      |
| 2. Check IMAPIsm                      |
|    > result is OK                     |
+---------------------------------------+

GET /release/rc.stm?os=7&proto=pop3
Accept: text/html

+---------------------------------------+
| HTML # Generated from STS             |
+---------------------------------------+
| # HTML version of above...            |
| # With POP3 step instead of IMAP step |
|                                       |
:                                       :
'                                       '

Flow

 User  :  App  :  Repo :  STM  :  STS
=======================================
   |       |       |       |       |
   |       o ----> |       |       |
   |       | init  |       |       |
   o ----> |       |       |       |
   | GET   |       |       |       |
   | /rc?a o ----> |       |       |
   | =b    | load  |       |       |
   |       | <---- o       |       |
   |       |  stm  |       |       |
   |       |       |       |       |
   |       o ------------> |       |
   |       |       | gen(a |       |
   |       |       | =b)   |       |
   |       | <------------ o       |
   |       |       | sts   |       |
   |       |       |       |       |
   |       o --------------------> |
   |       |       |       | rndr  |
   |       | <-------------------- o
   |       |       |       | html  |
   |       |       |       |       |
   | <---- o       |       |       |
   |  html |       |       |       |
   |       |       |       |       |
=======================================

Service API

+----------------------
| SVC
+----------------------
|