summaryrefslogtreecommitdiff
path: root/roadmap.mdwn
blob: 6e6c05cffde25697627b9aaa6eaa318767c05c7b (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
[[!meta title="Road map"]]

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

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:
  - access_token

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

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

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

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
```