summaryrefslogtreecommitdiff
path: root/roadmap.mdwn
blob: 9870f158089cb1cb3961e2e034872edab438bb69 (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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
[[!meta title="Road map"]]

This is the road map for ick development. It does not stretch very far,
because predicting the future is difficult. This road map also doesn't
give any dates, this is a hobby project. It's also open for discussion.


ALPHA-4
=============================================================================

Use [Qvisqve][] as the IDP. Use [Let's Encrypt][] for TLS
certificates. Update ick [[architecture]] document so it describes a
system that others than Lars can be expected to use.

[Qvisqve]: http://www.qvarn.org/qvisqve/
[Let's Encrypt]: https://letsencrypt.org/


ALPHA-5
=============================================================================

Add simple notifications of finished builds via emails. The SMTP
server and other sender information will be configured via a
configuration file. The recipients will be configured in projects in
the controller. The emails will say which project build finished,
whether the build succeded or failed, and have the build log as an
attachment. The notification will be triggered automatically by the
controller.

The controller will construct a complete build graph when a project
build is triggered. The build graph will be a list of of all the
actions in all the pipelines of the project (later this will be a
directed acyclic graph to allow for more concurrency). For the build
to succeed, all actions must be executed successfully. Pipelines will
not be visible in the graph anymore.

Projects may reuse the workspace contents from an earlier build, by
populating the workspace using a blob containing an archive of the
workspace, uploaded at the end of a previous build. Pipelines need to
be written in such a way that if the blob doesn't exist, they'll do a
fresh build from scratch.


ALPHA-6
=============================================================================

This version will be usable by others than Lars. It will fix any bugs
and packaging problems and add or update installation and other
documentation to allow that to happen.

This will require help from others, volunteers willing to try
installing ick, and report any issues or questions they have.


Roadmap
=============================================================================

    @startroadmap
    alpha6:
      label: ALPHA-6
      depends:
        - alpha5
        - docs

    alpha5:
      label: ALPHA-5
      depends:
        - alpha4
        - notifications
        - build_graph
        - incremental

    alpha4:
      label: ALPHA-4
      depends:
        - qvisqve
        - letsencrypt
        - self_hosting
        - archdocs

    self_hosting:
      label: |
        ick builds,
        publishes
        its own .debs

    notifications:
      label: |
        ick has a
        rudimentary
        notification
        system

    qvisqve:
      label: |
        ick uses Qvisqve
        as an IDP

    build_graph:
      label: |
        ick constructs a
        build graph from
        all pipelines at
        trigger time

    incremental:
      label: |
        ick can do
        incremental
        builds (reuse
        workspaces
        across builds)

    letsencrypt:
      label: |
        ick deploys
        Let's Encrypt
        TLS certificates

    docs:
      label: |
        there's sufficient
        docs for others to
        install ick for
        themselves

    archdocs:
      label: |
        the arch doc
        describes ick
        that others can
        use
    @endroadmap