summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2019-02-20 11:17:19 +0200
committerLars Wirzenius <liw@liw.fi>2019-02-20 11:17:19 +0200
commit3db594eaed25582a80a0166f95c5fb8db6533db8 (patch)
treedbd08a1ecdc6fc2d96db7f099a326bae3b1971cf
parent0f23b251f378ea4c2b8b98e25d9aaea7681787e1 (diff)
downloadick.liw.fi-3db594eaed25582a80a0166f95c5fb8db6533db8.tar.gz
Add: ick requirements page
-rw-r--r--requirements.mdwn62
1 files changed, 62 insertions, 0 deletions
diff --git a/requirements.mdwn b/requirements.mdwn
new file mode 100644
index 0000000..186a7a7
--- /dev/null
+++ b/requirements.mdwn
@@ -0,0 +1,62 @@
+[[!meta title="Ick requirements"]]
+
+This page collects requirementts for the Ick CI/CD system. It doesn't
+cover requirements for related projects, which have their own pages
+([[Muck]], [[Yuck]]).
+
+All of this document is open for discussion, clarification, and more
+detail and to be made more specific. For example, many requirements
+don't have an actual acceptance test or measureable goal. Help adding
+those would be welcome!
+
+Stakeholders
+=============================================================================
+
+* USERS: Those who develop their own projects, and need a CI or CD
+ system for helping them do that. They will use an Ick hosted by a
+ HOSTER (which might be themselves, wearing another hat).
+
+* HOSTERS: Those who host Ick for themselves or others to use.
+
+* CONTRIBUTORS: Those who contribute to Ick itself. This includes
+ those who write code for Ick, or documentation, translate the
+ software or documentation, those who support Ick users, etc.
+
+Requirements
+=============================================================================
+
+Each requirement has an ID (shown in upper case) so it can be referred
+to easily, if need be.
+
+* FREEDOM: Ick must be free software.
+
+* HOSTABLE: Ick should be "hostable": those interested in doing so,
+ should be able to provide an Ick instance for other people to use,
+ without having to truse those other people. Hosters should be able
+ to charge money for hosting Ick.
+
+* MIGRATION: Users should be able to pick any Ick instance they trust,
+ and migrate between instances.
+
+* ISOLATION: Ick users should feel safe that their projects, builds,
+ and build artifacts are unaffected and secure from prying by other
+ users.
+
+* SECRETSTORE: Ick should provide users with a secure way to store
+ "secrets", such as SSH keys, PGP keys, and API access tokens, and
+ use them securely in their projects, without the secrets leaking to
+ other users.
+
+* SPEED: Ick should run builds reasonbly fast, without causing much
+ overhead.
+
+* CONCURRENTBUILDS: Ick should be able to build different projects
+ concurrently, whether for the same user or several.
+
+* CONCURRENTACTIONS: Ick should be able to build parts of a project
+ concurrently, when the parts don't depend on each other.
+
+* CONTAINERS: To simplify running them in containers, as few Ick
+ components as possible should store data persistently, and should
+ instead store them in backing services that are meant for persistent
+ storage.