foundations_team.mdwn 10.6 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[[!meta title="Foundations Team"]]

[[!toc levels=2]]

<a id="duties"></a>

# Duties

The Tails Foundations Team is responsible for:

* maintaining the core Tails system, which includes e.g.
  - porting Tails to the new version of its upstream foundations, such
    as a new Debian, Tor or Tor Browser;
  - keeping our core code base up-to-date and maintainable, e.g.
    refactor or clean up stuff that has bit-rotted, migrate code that
    would otherwise rely on obsolete technologies;
  - maintaining the ISO build system;
  - doing the _extra_ peer-review and
    [[release management|release manager]] work that corresponds to
    the above bullet points;

22
* welcoming and mentoring new code contributors;
23

intrigeri's avatar
intrigeri committed
24
25
26
27
* reviewing code contributions
  in a timely manner (1 week in general, up to 2 weeks if needed in exceptional
  cases). If nobody on the Foundations Team can take care of a given MR,
  it's the Foundations Team's responsibility to ask for help:
intrigeri's avatar
intrigeri committed
28
29
30
31
  - [[!tails_gitlab groups/tails/-/merge_requests desc="Merge Requests (MRs)"]],
    and in particular
    [[!tails_gitlab groups/tails/-/merge_requests?scope=all&utf8=✓&state=opened&assignee_id=None
    desc="unassigned Merge Requests (MRs)"]]
intrigeri's avatar
intrigeri committed
32
33
  - [[!tails_gitlab groups/tails/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name%5B%5D=Needs%20Validation
    desc="issues with the _Needs Validation_ label"]]
34
35
36
37
38
39
40

* checking how important each issue forwarded by Help Desk is, whether
  it's worth documenting it, and validating the workarounds. If it's
  worth documenting the problem and possibly the workarounds, either
  put it on our Technical Writers' plate, or draft something directly,
  or merge a draft proposed by Technical Writer apprentices;

intrigeri's avatar
intrigeri committed
41
42
43
* triaging
  [newly created issues](https://gitlab.tails.boum.org/groups/tails/-/issues?scope=all&utf8=%E2%9C%93&state=opened&not[label_name][]=To%20Do&not[label_name][]=Doing&not[label_name][]=Needs%20Validation)
  when they are more technical than feature
44
  request (those are handled by the UX designers) or about bugs;
45
  reassigning to whoever is on Help Desk duty any new issue that's
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
  really a support request;

* ensuring that development discussions started on
  <tails-dev@boum.org> are followed-up;

* proposing a release schedule for next year once Mozilla's own
  schedule is available (generally during Q3), ensuring everyone
  affected is aware of it and OK with it (e.g. team managers for
  sponsor deliverables), leading this discussion to a conclusion,
  updating the [[contribute/calendar]] accordingly, and asking
  <tails-rm@boum.org> to decide between themselves how they will share
  the [[roles/release_manager]] shifts; things to keep in mind:

  - An emergency release is often needed shortly after [[!wikipedia Pwn2Own]].

* deal with last minute emergency fixes needed during release process,
  e.g. [[!tails_ticket 14962]];

* if time allows, do whatever code task the project sees as
  top-priority, such as fixing Holes in the Roof, important bugs, or
  implementing a feature that is needed to keep Tails relevant.

* Maintain Tails relevant Debian packages in Debian
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
  - Role: being the fallback, on behalf of Tails, to ensure these packages are
    well maintained in Debian (it's OK, and even great, if other pkg-privacy
    members do part of the work).
  - Tasks:
     - [Maintain a bunch of packages](https://udd.debian.org/dmd/?email1=&email2=&email3=&packages=libgsecuredelete+libotr+mat+nautilus-wipe+onioncircuits+onionshare+pidgin-otr+seahorse-nautilus+torsocks&ignpackages=&format=html#todo).
     - [Review and sponsor a few more packages](https://udd.debian.org/dmd/?email1=&email2=&email3=&packages=bilibop+keyringer&ignpackages=&format=html#todo).
     - Track Debian bugs and forward them upstream.
  - Duration:
     - as long as we ship these packages in Tails
     - until the EOL of the last Debian stable release (including
       LTS) we put it in, even if we drop the package from Tails:
       including a package in a stable Debian release implies
       a commitment to maintain it during its lifetime.
  - The Debian BTS is the primary interface to communicate expectations to the
    person who wears this hat. GitLab is another option but we should *not* rely
    on it for proper tracking & clear communication of expectations.
85
  - Not in the scope of this work:
intrigeri's avatar
intrigeri committed
86
87
    * [Debian AppArmor team](https://qa.debian.org/developer.php?email=pkg-apparmor-team%40lists.alioth.debian.org)'s packages,
      Perl libraries our custom software depends on: intrigeri does it
88
89
90
91
92
      with his Debian hat.
    * [[!debpts torbrowser-launcher]]: we only use its AppArmor
      profiles, that we could easily take from upstream if the Debian
      package was not maintained.

93
94
95
* Track bugs related to the aforementioned packages in Tails and forward them
  to Debian.

96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<a id="meetings"></a>

# Meetings

Each month the Tails Foundations Team gathers for an online meeting.

- **Date**:
  - The **3rd** day of the month if it's a day between Monday and
    Thursday (inclusive)
  - The **6th** day of the month otherwise
- **Time**: 16:00 Berlin time (14:00 or 15:00 UTC, depending on the date)
- **Location**: [[`tails-meeting` XMPP chatroom|contribute/chat]]

As a Foundations Team member, if you cannot make one of these
meetings, please send the team before the meeting:

112
 - a brief status update about life, work and issues;
113
114
115
116
117
118
119
120
121
122
 - information about how much more or less work you want for the
   following month(s).

 People only maintaining Debian packages but not doing any other work in
 the team are not required to attend the meeting.

<a id="tasks-management"></a>

# Tasks management

123
124
This section documents the principles and guidelines we use for tracking
[[!tails_gitlab
intrigeri's avatar
intrigeri committed
125
tails/tails/-/boards/4?&label_name%5B%5D=Core%20Work%3AFoundations%20Team
126
desc="our tasks"]].
127
128
129
130

This applies on top of the broader Tails project's tasks management
guidelines:

131
 - [[contribute/working_together/GitLab]]
intrigeri's avatar
intrigeri committed
132
 - [[How to document progress|contribute/working_together/GitLab#document-progress]]
133

134
<a id="tasks-management-milestone"></a>
135
136
<a id="tasks-management-target-version"></a>

137
## Milestone
138

139
The Foundation Team treats the _Milestone_ field as a commitment.
140
141
142
Other Tails teams, contributors, and users should be able to rely on
the value of this field.

143
144
An issue
[[!tails_gitlab
intrigeri's avatar
intrigeri committed
145
tails/tails/-/boards/4?&label_name%5B%5D=Core%20Work%3AFoundations%20Team
146
desc="owned by the Foundations Team"]]
intrigeri's avatar
intrigeri committed
147
should have a milestone set if, and only if, at least
148
149
150
151
152
153
154
155
156
157
158
159
one of these conditions is met:

 - External constraints determine the timeline of our work.
   For example, we have to upgrade to the next Tor Browser
   major release.

 - We are _very_ confident we will complete the task in time for
   a specific release and we have a good reason to focus on it.
   For example, work in progress tasks can be good candidates,
   as opposed to starting work on a new task.

 - The task is on the Tails [[!tails_roadmap]]. In this case, the
intrigeri's avatar
intrigeri committed
160
   milestone should be a year, unless one of the above
161
162
   conditions makes us target a specific release.

intrigeri's avatar
intrigeri committed
163
Postponing a task to the next milestone more than once is not
164
165
166
167
business as usual — it's a red flag. Such a change should be
justified. The underlying problem should be identified and addressed:
for example, the assignee might need help or be over-committed; the
team could be under-staffed; or perhaps the task should simply not
intrigeri's avatar
intrigeri committed
168
have any milestone in the first place.
169
170
171
172
173

<a id="tasks-management-assignee"></a>

## Assignee

174
See [[contribute/working_together/GitLab#assignee]].
175

176
177
178
179
<a id="tasks-management-ux-improvements"></a>

## UX improvements

180
Our [[UX designers|roles/ux]] maintain a
intrigeri's avatar
intrigeri committed
181
[[!tails_gitlab groups/tails/-/issues?scope=all&utf8=✓&state=opened&label_name%5B%5D=UX%3Adebt
182
desc="list of UX improvements"]] that would be welcome,
intrigeri's avatar
intrigeri committed
183
using the "UX:debt" label.
184
185

From time to time, some Foundations Team members meet with UX
186
designers and do a value/cost analysis of these issues. Then, those
187
with the best value/cost, that we can work on without waiting for lots
188
of UX design work to be done, are added to
intrigeri's avatar
intrigeri committed
189
[[!tails_gitlab groups/tails/-/issues?scope=all&utf8=✓&state=opened&label_name%5B%5D=Core%20Work%3AFoundations%20Team&label_name%5B%5D=UX%3Adebt
190
desc="our list of tasks"]].
191
192
193
That is, working on them automatically qualifies as Foundations Team work.

In general, before looking for other UX improvements we could work on,
194
we should first focus on these selected issues and on the most
195
196
197
important or urgent of our other [[duties|foundations_team#duties]].

Still, while keeping this in mind, you might personally be
intrigeri's avatar
intrigeri committed
198
particularly interested in working on an issue that has the "UX:debt" label,
199
but that was not added to our plate yet.
200
It is an option to turn one such issue into Foundations Team work,
201
provided a few conditions are met.
202

203
The Foundations Team lead maintains a list of issues that meet
204
205
206
207
208
these conditions:

 - [[!tails_ticket 6084]]
 - [[!tails_ticket 8061]]
 - [[!tails_ticket 15028]]
209

210
You can check yourself if a particular issue meets all these
211
212
conditions:

intrigeri's avatar
intrigeri committed
213
 - Our UX designers added the `UX:debt` label.
214
215
216
217

 - It is possible work on it without waiting for lots of UX work to be done first.
   To determine whether that's the case:
    - Look at the "UX" cost column in the spreadsheet attached to
218
      [[!tails_ticket 14544]]. An issue with a UX cost of 2 or more
219
220
221
222
223
224
      probably does not qualify.
    - In doubt, ask our UX designers.

 - The P×S/Cdev value is 1.0 or greater, in the spreadsheet that's
   attached to [[!tails_ticket 14544]].

225
When you start working on such an issue:
226
227
228
229

 - Assign it to yourself.

 - Notify our [[UX designers|roles/ux]] with a `@sajolida` mention on
230
   the issue: then they can explain what kind of work they have to do
231
232
   before you can complete your part of the work.

intrigeri's avatar
intrigeri committed
233
234
235
236
237
238
<a id="tasks-management-useful-links"></a>

## Useful links

 - [[!tails_gitlab
   tails/tails/-/boards/4?&label_name%5B%5D=Core%20Work%3AFoundations%20Team&milestone_title=%23upcoming
intrigeri's avatar
intrigeri committed
239
240
   desc="Board: our tasks scheduled for the upcoming milestone"]]

intrigeri's avatar
intrigeri committed
241
242
 - [[!tails_gitlab
   tails/tails/-/boards/4?&label_name%5B%5D=Core%20Work%3AFoundations%20Team&milestone_title=%23started
intrigeri's avatar
intrigeri committed
243
   desc="Board: our tasks scheduled for any started milestone"]]
intrigeri's avatar
intrigeri committed
244

245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
# Internal tools

## Team mailing list

Foundations Team members are on the <tails-foundations@boum.org>
Schleuder mailing list.

## Private Git repository

To set it up:

1. Install needed tools

        apt install git-remote-gcrypt

2. Clone it the repo

        git clone gcrypt::git@gitlab-ssh.tails.boum.org:tails/foundations.git

3. Follow the setup documentation: `README.md` in the Git repository.

266
267
268
269
270
271
272
<a id="contact"></a>

# Contact

To get in touch with the Foundations Team, write to
<tails-foundations@boum.org>.

intrigeri's avatar
intrigeri committed
273
You can encrypt your email with our [[OpenPGP key|tails-foundations.key]]
274
([[details|doc/about/openpgp_keys#foundations]]).