- contribute
- working together
- roles
- Foundations Team
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 Tails ISO and USB images build system;
doing the extra peer-review and release management work that corresponds to the above bullet points;
welcoming and mentoring new code contributors;
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: Merge Requests (MRs), and in particular unassigned Merge Requests (MRs) that are not marked as drafts
triaging newly created issues when they are more technical than feature request (those are handled by the UX designers) or about bugs; reassigning to whoever is on Help Desk duty any new issue that's 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 calendar accordingly, and asking rm@tails.net to decide between themselves how they will share the release manager shifts; things to keep in mind:
- An emergency release is often needed shortly after Pwn2Own.
deal with last minute emergency fixes needed during release process, e.g. #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
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:
-
pidgin-otr
andlibotr
will be removed from this list once we don't ship Pidgin anymore (#8573)
Review and sponsor a few more packages.
keyringer
could be removed from this list if all teams migrated to pass
- 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.
In order to communicate expectations to the person who wears this hat, Tails contributors can:
use the Debian BTS
mention
@debian-packages-maintainers
on our GitLab
Not in the scope of this work:
Perl libraries our custom software depends on: intrigeri does it as a volunteer with his Debian hat.
torbrowser-launcher: we only use its AppArmor profiles, that we could easily take from upstream if the Debian package was not maintained.
Maintain AppArmor in Debian
Scope:
maintenance work that is necessary to keep the status quo working and up-to-date wrt. packaging best practices;
maintainer due care, such as forwarding bug reports upstream (even for bugs that don't affect Tails);
work on specific improvements that Tails would particularly benefit from;
onboarding and mentoring new co-maintainers.
Track bugs related to the aforementioned packages in Tails and forward them to Debian.
Maintain the backend of the verification JavaScript that is used on our download pages. For example, update it to new versions of the Forge library. See its release process.
Help maintaining the configuration of our Jenkins jobs
See the documentation of the setup in the sysadmins area.
Meetings
See https://gitlab.tails.boum.org/tails/team/-/wikis/meetings.
Tasks management
This section documents the principles and guidelines we use for tracking our tasks.
This applies on top of the broader Tails project's tasks management guidelines:
How to pick your next task
Among the Foundations Team issues, in decreasing order of priority :
Milestone is the upcoming version, for good reasons.
Grant deliverable with a deadline.
Milestone is the version that follows the upcoming release, for good reasons.
Has a
$YEAR
label, which means this issue is on our roadmap.Priority is high (
P:High
label)Priority is elevated (
P:Elevated
label)
Milestone
Status: this is not the case anymore.
The Foundation Team treats the Milestone field as a commitment. Other Tails teams, contributors, and users should be able to rely on the value of this field.
An issue owned by the Foundations Team should have a milestone set if, and only if, at least 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.
Postponing a task to the next milestone more than once is not 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 have any milestone in the first place.
Assignee
See GitLab.
UX improvements
We have a list of UX improvements that qualify as Foundations Team work.
When you start working on such an issue:
Assign it to yourself.
Notify our UX designers with a
@sajolida
mention on the issue: then they can explain what kind of work they have to do before you can complete your part of the work.
Process
Our UX designers maintain a list of UX improvements that would be welcome, using the "UX:debt" label.
From time to time, some Foundations Team members meet with UX designers and do a value/cost analysis of these issues. Then, those with the best value/cost, that we can work on without waiting for lots of UX design work to be done, are added to the list of Foundations Team tasks.
Useful links
Internal tools
Team mailing list
Foundations Team members are on the foundations@tails.net Schleuder mailing list.
Public wiki
Private wiki
Only Foundations Team members have access to the team's private wiki.
Contact
To get in touch with the entire Foundations Team, you can:
write to foundations@tails.net;
mention
@foundations-team
on GitLab: GitLab will send an email notification about it to every member of the Foundations Team, and add it to their To-Do list.
You can encrypt your email with our OpenPGP key (details).