summaryrefslogtreecommitdiff
path: root/architecture.mdwn
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-06-09 13:33:11 +0300
committerLars Wirzenius <liw@liw.fi>2018-06-09 13:33:11 +0300
commit8929aaf0c92bceb621e4d3728ba97e24d7a6fe23 (patch)
tree87a82c2e23078d3d6d8e7dd09604c127608b1ea7 /architecture.mdwn
parent3344bf4933c001b7902da0387bd894d8fbf3b89b (diff)
downloadick.liw.fi-8929aaf0c92bceb621e4d3728ba97e24d7a6fe23.tar.gz
Change: expand on "background and justification" section
Diffstat (limited to 'architecture.mdwn')
-rw-r--r--architecture.mdwn34
1 files changed, 30 insertions, 4 deletions
diff --git a/architecture.mdwn b/architecture.mdwn
index a036cd2..4efd49b 100644
--- a/architecture.mdwn
+++ b/architecture.mdwn
@@ -30,10 +30,36 @@ changed.
Background and justification
-----------------------------------------------------------------------------
-This section should be written some day. In short, Lars got tired of
-Jenkins, and all competitors seem insufficient or somehow
-unpleasant. Then Daniel suggested a name and Lars is incapable of not
-starting a project if given a name for it.
+Ick's main developer learned to program in the 1980s, studies computer
+science in the early 1990s, and has been working in the industry since
+the mid-1990s. Very roughly, in the 1980s there were few if any
+automated tests, a little of it in the late 1990s, and it became
+prevalent in the early 2000s. As more automated tests started
+happening, it turned out that programmers keep forgetting to run them.
+Thus was created automation to run the tests whenever code has
+changed. This has since morphed into full blown continuous integration
+systems, which do builds, run tests, and possibly do other things.
+
+A common CI system is Jenkins, originally called Hudson, but renamed
+after Oracle bought Sun Microsystems. Jenkins is used widely in the
+industry. Ick's main developer has not been happy with it, however,
+and decided to write a new system. The current ick is the second
+generation of ick. The first generation (only ever used by its
+developer) was written in a two-week frenzy of hacking to get
+something, anything that could replace Jenkins in specific use cases.
+The first generation was just good enough to be used by its developer,
+but not satisfactory otherwise. It also had a very awkward
+architecture that among other things only allowed running one build at
+a time, and did not work well as a service.
+
+The second (current) generation of ick is a re-design from scratch,
+keeping nothing of the first genearation. It is explicitly aimed to
+become a "hostable" system: to allow an ick instance to be a CI system
+to a number of independent users.
+
+The name "ick" was suggestd by Daniel Silverstone in an IRC
+discussion. He said "all CI systems are icky", and this prompted Lars
+to name the first generation "ick".
Overview