--- title: Subplot README ... Capture and communicate acceptance criteria for software and systems, and how they are verified, in a way that's understood by all project stakeholders. Acceptance criteria are expressed as _scenarios_ in the Cucumber given/when/then style: > given a web site subplot.liw.fi > when I retrieve the site front page > then it contains "Subplot" > and it contains "acceptance criteria" ## When all stakeholders really need to understand acceptance criteria Subplot is a set of tools for specifying, documenting, and implementing automated acceptance tests for systems and software. Subplot tools aim to produce a human-readable document of acceptance criteria and a program that automatically tests a system against those criteria. The goal is for every stakeholder in a project to understand the project’s acceptance criteria and how they’re verified. See for the home page. ## Hacking Subplot Subplot is written using the Rust programming language, so the usual workflow for Rust applies. To build run `cargo build`, to run tests in Rust run `cargo test`. You probably need to install Rust using rustup: the version packaged in a Linux distribution is likely too old. To run the whole test suite, including testing all examples and Subplot self tests, run `./check` at the root of the source tree. You'll need to install build dependencies installed. On a system running Debian or a derivative of it: ~~~sh $ sudo apt-get install build-essential git debhelper dh-cargo python3 \ pandoc texlive-latex-base texlive-latex-recommended \ texlive-fonts-recommended librsvg2-bin graphviz pandoc-citeproc \ plantuml daemonize lmodern procps ~~~ Additionally, any packages reported by running the following command: ~~~sh $ dpkg-checkbuilddeps ~~~ To build the Debian package: ~~~sh $ git archive HEAD | gzip > "../subplot_$(dpkg-parsechangelog -SVersion | sed 's/-.*$//').orig.tar.gz" $ dpkg-buildpackage -us -uc ~~~ # Legalese Copyright 2019-2021 Lars Wirzenius, Daniel Silverstone This program 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. This program 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 this program. If not, see .