<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tails - Improve the infrastructure behind Tails</title>
<link rel="icon" href="../../favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="../../style.css" type="text/css" />
<link rel="stylesheet" href="../../local.css" type="text/css" />
</head>
<body>
<div class="banner">
<a class="tails" href="../../index.en.html">
<span class="acronym">Tails</span><br/>
<span class="slogan">The Amnesic Incognito Live System</span>
</a>
</div>
<div class="page">
<div class="pageheader">
<div class="header">
<span>
<span class="parentlinks">
<ul id="crumbs">
<li><a href="../../index.en.html"><img src="../../lib/home.jpeg"></a></li>
<li><a href="../../contribute.en.html">contribute</a></li>
<li><a href="../how.html">how</a></li>
<li>Improve the infrastructure behind Tails</li>
</ul>
</span>
<span class="title">
Improve the infrastructure behind Tails
</span>
</span>
</div>
</div>
<div class="sidebar">
<div class="download button">
<a href="../../download.en.html"><span class="download">Download</span>
<span class="tails">Tails
1.0.1
</span>
<span class="date">
June 10, 2014
</span></a>
</div>
<div class="links">
<ul>
<li><a href="../../about.en.html">About</a></li>
<li><a href="../../getting_started.en.html">Getting started…</a></li>
<li><a href="../../doc.en.html">Documentation</a></li>
<li><a href="../../support.en.html">Help & Support</a></li>
<li><a href="../../contribute.en.html">Contribute</a></li>
<li><a href="../../news.en.html">News</a></li>
</ul>
</div>
<div class="donate button">
<a href="https://pressfreedomfoundation.org/bundle/encryption-tools-journalists">Donate now</a>
</div>
</div>
<div id="pagebody">
<div id="content">
<div id="intro">
<p>So you want to help improve the infrastructure behind Tails.<br />
Welcome aboard! Please read-on.</p>
<div class="toc">
<ol>
<li class="L1"><a href="#index1h1">Read this first</a>
</li>
<li class="L1"><a href="#index2h1">Skills needed</a>
</li>
<li class="L1"><a href="#index3h1">How to choose a task</a>
</li>
<li class="L1"><a href="#index4h1">How to implement and propose changes</a>
</li>
<li class="L1"><a href="#index5h1">Contact information</a>
</li>
</ol>
</div>
</div>
<h1><a name="index1h1"></a>Read this first</h1>
<p>First of all, please read the <a href="../working_together/roles/sysadmins.html#goals">goals and
principles</a> of the
Tails system administration team.</p>
<h1><a name="index2h1"></a>Skills needed</h1>
<p>Essential skills for participating in the Tails infrastructure include
basic Unix system administration knowledge and good
communication skills.</p>
<p>Depending on the task, you may also need to be knowledgeable in either
Debian system administration, scripting in Perl, Python, Ruby or shell,
or one of the <a href="../working_together/roles/sysadmins.html#services">services we
run</a>.</p>
<div class="note">
<ul>
<li>To complete most tasks, some amount of Puppet work must be done.
However, it is possible to participate without knowing Puppet, at
least for your first contributions.</li>
<li>Being an expert beforehand is not required, as long as you are
ready to learn whatever you need to know :)</li>
</ul>
</div>
<h1><a name="index3h1"></a>How to choose a task</h1>
<p>We use Redmine to manage our list of tasks:</p>
<ul>
<li><a href="https://labs.riseup.net/code/projects/tails/issues?query_id=113">tasks that require <em>Sysadmin</em>
work</a></li>
<li><a href="https://labs.riseup.net/code/projects/tails/issues?query_id=140">tasks that belong to the <em>Infrastructure</em>
category</a></li>
</ul>
<p>Here are a few tips to pick a task:</p>
<ul>
<li>Focus on the issues marked as <em><a href="../easy_tasks.html">Easy</a></em> on Redmine.</li>
<li>Choose something that matters for you.</li>
<li>Choose something where your singular skills are put to work.</li>
</ul>
<p>Do not hesitate to request our advice: tell us about your skills, and
we will try to match it to a task.</p>
<p>If anything is unclear, ask us to specify the desired outcome in more
details <em>before</em> you start working: this will save time to
everybody involved.</p>
<p><a id="hack"></a></p>
<h1><a name="index4h1"></a>How to implement and propose changes</h1>
<p>Thanks to the <a href="../working_together/roles/sysadmins.html#tools">tools we
use</a>, you can
contribute usefully without having an account on the actual systems.</p>
<h2><a name="index1h2"></a>If you don't know Puppet</h2>
<p>A few tasks in Redmine can be fulfilled by testing something, and then
reporting your results on the relevant ticket.</p>
<p>However, most tasks are a bit more complicated. Follow these steps to
contribute useful bits, that someone else can then integrate into
Puppet:</p>
<ol>
<li>Prepare configuration, scripts and whatever is needed. During this
process:
<ul>
<li>Write down every setup step needed to deploy the whole thing.</li>
<li>In particular, take note of any dependency you install.
Better work in a minimal Debian stable system to avoid missing
some (hint: virtual machine, pbuilder chroot or alike).</li>
<li>Document how the whole thing is supposed to be used.</li>
</ul>
</li>
<li>Test, hack, test, [...]</li>
<li>Publish your work somewhere, preferably in a Git repository to
smooth any further iteration our first review pass may require.
If you already know where to host your personal repositories, this
is great; or else you may ask us to host your repository.</li>
<li>Tell us what problem you tried to solve, and where we can find
your solution.</li>
</ol>
<h2><a name="index2h2"></a>If you know Puppet, or want to learn it</h2>
<p>To solve a problem with Puppet, you need to:</p>
<ul>
<li>Either, improve a Puppet module. If we are not the original authors
of this module, please contribute your changes upstream: we don't
want to maintain forks forever.</li>
<li>Or, create a new Puppet module. But first, try to find an existing
module that can be adapted to our needs.</li>
</ul>
<p>Many Puppet modules can be found in the <a href="https://labs.riseup.net/code/projects/sharedpuppetmodules">shared Puppet
modules</a>,
the <a href="https://forge.puppetlabs.com/">Puppet Forge</a>, and on GitHub.</p>
<p>To smooth the reviewing and merging process: create atomic commits,
document your changes in details, follow the Puppet <a href="http://docs.puppetlabs.com/guides/style_guide.html">style
guide</a>, and
carefully test your changes.</p>
<p>Once ready, you can submit trivial changes over email, in the form of
Git patches prepared with <code>git-format-patch(1)</code>.</p>
<p>For anything more substantial, please publish your work as a Git topic
branch. If you already know where to host your personal repositories,
this is great; or else you may ask us to host your repository.</p>
<p><a id="contact"></a></p>
<h1><a name="index5h1"></a>Contact information</h1>
<p>Email us at <a href="mailto:tails-sysadmins@boum.org">tails-sysadmins@boum.org</a>. We prefer receiving email
encrypted with our OpenPGP key, that can be found on the keyservers,
and is certified by the Tails signing key.</p>
</div>
</div>
<div id="footer" class="pagefooter">
<div id="pageinfo">
<div id="backlinks">
Pages linking to this one:
<a href="../../contribute.en.html">contribute</a>
<a href="../../contribute.de.html">contribute.de</a>
<a href="../../contribute.fr.html">contribute.fr</a>
<a href="../../contribute.pt.html">contribute.pt</a>
<a href="../../news/Call_for_help:_improve_the_infrastructure_behind_Tails.en.html">news/Call for help: improve the infrastructure behind Tails</a>
<a href="../../news/Call_for_help:_improve_the_infrastructure_behind_Tails.de.html">news/Call for help: improve the infrastructure behind Tails.de</a>
<a href="../../news/Call_for_help:_improve_the_infrastructure_behind_Tails.fr.html">news/Call for help: improve the infrastructure behind Tails.fr</a>
<a href="../../news/Call_for_help:_improve_the_infrastructure_behind_Tails.pt.html">news/Call for help: improve the infrastructure behind Tails.pt</a>
<a href="../../news/report_2014_03.en.html">news/report 2014 03</a>
<a href="../../news/report_2014_03.de.html">news/report 2014 03.de</a>
<span class="popup">...
<span class="balloon">
<a href="../../news/report_2014_03.fr.html">news/report 2014 03.fr</a>
<a href="../../news/report_2014_03.pt.html">news/report 2014 03.pt</a>
</span>
</span>
</div>
<div class="pagedate">
Last edited <span class="date">Wed 16 Apr 2014 01:45:58 PM CEST</span>
<!-- Created <span class="date">Sun 23 Feb 2014 09:29:16 AM CET</span> -->
</div>
</div>
<div>Mirror: <a href="https://tails.boum.org/ikiwiki.cgi?do=goto&page=contribute/how/sysadmin">tails.boum.org</a></div>
<!-- from The Amnesic Incognito Live System -->
</div>
</div>
</body>
</html>