From 3db594eaed25582a80a0166f95c5fb8db6533db8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Wed, 20 Feb 2019 11:17:19 +0200 Subject: Add: ick requirements page --- requirements.mdwn | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 requirements.mdwn 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. -- cgit v1.2.1