<!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="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;:ta&#x69;l&#x73;-&#x73;ysa&#x64;mi&#x6e;s&#x40;&#x62;&#x6f;u&#x6d;&#x2e;&#x6f;&#x72;g">ta&#x69;&#x6c;&#x73;-&#x73;y&#x73;&#x61;dm&#x69;&#x6e;&#x73;@&#x62;ou&#x6d;&#x2e;o&#x72;g</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>