summaryrefslogtreecommitdiff
path: root/roadmap.mdwn
blob: 6643d776d88b311cd26f4d2ee77af8185dbe8ccc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
[[!meta title="Ick—roadmp"]]

This is the roadmap for Ick development. It does not stretch very far,
because predicting the future is difficult. This roadmap also doesn't
give any dates, this is a hobby project.

Current development goal
=============================================================================

The current development goal is to be the first ALPHA version, and is
described in detail in the [architecture document][], and is briefly
this:

> ALPHA-1 of Ick2 can be deployed and configured easily, and can
> concurrently build multiple projects using multiple workers. Builds
> may be traditional builds from source code, may involve running unit
> tests or other build-time tests, may involve building Debian
> packages, and build artifacts are published in a suitable location.
> Builds may also be builds of static web sites or documentation, and
> those build artifacts may be published on suitable web servers.
> Builds happen on workers in reasonably well isolated, automatically
> maintained environments akin to pbuilder or schroot (meaning the
> sysadmin is not expected to set up the pbuilder base tarball, ick2
> will do that).

[architecture document]: http://code.liw.fi/ick/ick2-arch.html

Acceptance criteria for ALPHA-1:

* All Ick2 components and the workers are deployable using Ansible or
  similar configuration management tooling.

* At least two people (not only Lars) have set up a CI cluster to
  build at least two different projects on at least two workers. One
  of the projects should build documentation for ick2 itself, the
  other should build a .deb packages of ick2. Bonus points for
  building other projects than ick2 as well.

* Builds get triggered automatically by a git server on any commit to
  the master branch.

* Build logs can be viewed while builds are running or afterwards via
  an HTTP API (perhaps wrapped in a command line tool). Bonus points
  if someone builds a web app on top of the API.

* A modicum of thought has been spent on security and the major
  contributors agree the security design is not idiotic. The goal is
  to be confident that a future version of Ick2 can be made reasonably
  secure, even if that doesn't happen for ALPHA-1.

* The workspace is constructed from several git repositories, e.g., so
  that the debian subdir comes from a different repo than the main
  source tree.

* The pipeline steps are not merely snippets of shell scripts to run.
  Instead, steps may name operations that get executed by the workers
  without specifying the implementation in the Ick2 project
  configuration.