summaryrefslogtreecommitdiff
path: root/roadmap.mdwn
blob: 2a9d6115c00d3ac4f59c99cae772e70ff85426b5 (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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
[[!meta title="Road map"]]

# Roadmap

The current goal of Obnam development to get the software to a state
where its author uses it for real, for at least a subset of their live
data, and is ready to ask others to try the software.

~~~roadmap
goal:
  label: "Lars uses Obnam2 for real"
  depends:
  - incremental_backup
  - docs
  - clean_code

docs:
  label: "Obnam has docs"
  depends:
  - manual
  - code_docs

deb:
  label: "CI builds an obnam2.deb automatically"
  depends:
  - ci

ci:
  label: "CI builds and tests obnam"
  status: next

e2_server:
  label: "Lars has an Obnam server running on home server"
  depends:
  - server_provision

server_provision:
  label: "The Obnam server at home is provisioned with automation"
  depends:
  - deb
  - access_token

https:
  label: "The Obnam server requires using https, not plain http"
  depends:
  - ci

access_token:
  label: "The Obnam server at home requires using an access token signed by a well-known public key"
  depends:
  - https

client_token:
  label: "The Obnam client generates the access token itself"
  depends:
  - access_token

e1_client:
  label: "Lars has the Obnam client installed on his laptop, configured to back up personal projects"
  depends:
  - nice_ux

initial_backup:
  label: "Lars has made an initial backup of personal projedts in less than an hour"
  depends:
  - e1_client
  - e2_server

incremental_backup:
  label: "Lars has made a no-op incremental backup of personal data in less than a minute"
  depends:
  - initial_backup
  - incremental

filetypes:
  label: "The Obnam client backs up and restores all interesting types of files"
  depends:
  - symlinks

regular_files:
  label: "The Obnam client backs up and restores regular files, with uid, gid, mtime, permissions"

directories:
  label: "The Obnam client backs up and restores directories, with uid, gid, mtime, permissions"
  depends:
  - regular_files

symlinks:
  label: "The Obnam client backs up and restores symlinks, with uid, gid, mtime, permissions, target"
  depends:
  - directories

incremental:
  label: "The Obnam client backs up only new or changed files"
  depends:
  - filetypes

nice_ux:
  label: "The Obnam client provides a nice user experience"
  depends:
  - client_token

clean_code:
  label: "Lars has reviewed all code and tidied up anything that's not clean and idiomatic"
  depends:
  - code_docs

code_docs:
  label: "The code is documented for someone wanting to use the Obnam create as a library"
  depends:
  - manual

tests:
  label: "Everything in Obnam has automated tests"
  depends:
  - acceptance_criteria

acceptance_criteria:
  label: "The Obnam acceptance criteria are up to date and sufficiently comprehensive"

manual:
  label: "There is a rudimentary user manual for others"
  depends:
  - tests
~~~


# Roadmap legend

```roadmap
goal:
  label: |
    This is the end goal:
    if we reach here, there
    is nothing more to be
    done in the project
  depends:
  - finished
  - blocked

finished:
  status: finished
  label: |
    This task is finished;
    the arrow indicates what
    follows this task (unless
    it's blocked)

ready:
  label: |
    This task is ready 
    to be done: it is not
    blocked by anything

next:
  status: next
  label: |
    This task is chosen 
    to be done next

blocked:
  label: |
    This task is blocked
    and can't be done until
    something happens
  depends:
  - ready
  - next
```