Commit 0fd8182b authored by spriver's avatar spriver
Browse files

Merge branch 'master' of https://git-tails.immerda.ch/tails

parents df7d0576 64765094
......@@ -128,7 +128,7 @@ if [ -n "$JENKINS_URL" ] && [ -z "$GIT_TAG" ] \
fi
# build the doc wiki
./build-wiki
./build-website
# refresh translations of our programs
./refresh-translations || fatal "refresh-translations failed ($?)."
......
......@@ -83,7 +83,7 @@ if [ "$TAILS_CLEAN_BUILD" ]; then
fi
if [ -z "$JENKINS_URL" ]; then
./build-wiki
./build-website
fi
BUILD_DIR=$(mktemp -d /tmp/tails-build.XXXXXXXX)
......
......@@ -31,8 +31,9 @@ ticket #6938 can be seen on <https://labs.riseup.net/code/issues/6938>.
planned initially, and the transition period from Claws Mail will be
longer, and thus smoother, for users.
We started implementing this plan (#10285), set up team coordination tools,
and triaged what is a blocker for the first stage, from what is not.
We started implementing this plan (#10285), set up team coordination
tools, and triaged what is a blocker for the first stage, from what is
not.
Then we worked on the "Torbirdy uses Arabic as a default locale"
bug, submitted a pull request upstream, that was accepted (#9821).
......@@ -51,12 +52,13 @@ ticket #6938 can be seen on <https://labs.riseup.net/code/issues/6938>.
Great progress was made on this front, and more specifically on the
last remaining chunk of it: firing up a clean test runner virtual
machine before each test suite run. It was tricky to implement this
in a way that prevented race conditions, but we now have a working prototype that we are
confident fixes the issues we have seen earlier (#9486, #10215).
Along the way we encouraged a few Debian developers to take care of
a package we rely on (`jenkins-job-builder`), and one of them
promptly took it over and updated it to the version we need (#9646).
machine before each test suite run. It was tricky to implement this in
a way that prevented race conditions, but we now have a working
prototype that we are confident fixes the issues we have seen earlier
(#9486, #10215). Along the way we encouraged a few Debian developers
to take care of a package we rely on (`jenkins-job-builder`), and one
of them promptly took it over and updated it to the version we need
(#9646).
- B.2.2. Decide what kind of ISO images qualify for testing and when,
how to process, advertise, and store the results (#8667)
......@@ -72,13 +74,13 @@ ticket #6938 can be seen on <https://labs.riseup.net/code/issues/6938>.
- B.2.3. Research and design a solution to generate a set of Jenkins ISO test jobs
Some research and experiments were done for sending ISO images that
shall be tested to the test suite runner virtual machines (#9597),
and major blockers were removed in the underlying infrastructure.
Some of our Puppet code saw a nice refactoring in this process.
On the same topic, we reached a consensus regarding what "old" ISO image
to use for tests that require two images, such as upgrade tests
(#10117). And here as well, test suite developers promptly
implemented what we needed (#10147).
shall be tested to the test suite runner virtual machines (#9597), and
major blockers were removed in the underlying infrastructure. Some of
our Puppet code saw a nice refactoring in this process. On the same
topic, we reached a consensus regarding what "old" ISO image to use
for tests that require two images, such as upgrade tests (#10117). And
here as well, test suite developers promptly implemented what we
needed (#10147).
<https://tails.boum.org/blueprint/automated_builds_and_tests/jenkins/>
......@@ -270,8 +272,8 @@ this shortly.
- D.1.1. Adjust to the change of desktop environment to GNOME Shell
We completed the work started on our "Shutdown helper" applet for
Jessie (#8302): visually impaired users can now use it, and we made sure it
is integrated with our translation system.
Jessie (#8302): visually impaired users can now use it, and we made
sure it is integrated with our translation system.
We cleaned up the desktop Applications menu (#8505).
......
......@@ -128,26 +128,19 @@ The test suite produces different kind of artifacts: logfiles, screen
captures for failing steps, snapshots of the test VM, and also videos of
the running test session.
Videos may be a bit too much to keep, given they slow down the test
suite and might take quite a bit of disk space to store. If we want to
keep them, we may want to do so only for failing test suite runs. If we
decide to still use them, then we probably have to wait for
[[!tails_ticket 10001]] too be resolved.
We can keep the video captures in the build artifacts, now that
[[!tails_ticket 10001]] is resolved.
Proposal for a first iteration:
Decision:
* For green test suite run: keep the test logs (Jenkins natively do
that).
* For red test suite run: keep the screen and video captures, the
* For red test suite run: keep the screenshots and video captures, the
logs and the pcap files.
On the second iteration, we will keep video capture only for the red
tests.
The retention strategy should be the same than for the automatically
built ISOs. In particular, we will have to pay attention to the rotation
of videos capture (given they'll quickly bloat our storage space).
Keeping them only for 7 days sounds reasonnable.
In [[!tails_ticket 10155]] we calculated that we can probably keep the
video captures for a full release cycle. This will be refine is reality
claims the contrary after an evaluation.
# Scenarios
......
[[!meta title="Automated tests implementation details"]]
For Jenkins resources, see [[blueprint/automated_builds_and_tests/resources]].
[[!toc levels=2]]
Generating jobs
===============
We use code that lay in three different Git repositories to generate
automatically the list of Jenkins jobs for branches that are active in
the Tails main Git repo.
The first brick is the Tails
[[!tails_gitweb_repo pythonlib]], which extracts the list of
active branches and output the needed informations. This list is parsed
by the `generate_tails_iso_jobs` script run by a cronjob and deployed by
our [[!tails_gitweb_repo puppet-tails]]
`tails::jenkins::iso_jobs_generator` manifest.
This script output yaml files compatible with
[jenkins-job-builder](http://docs.openstack.org/infra/jenkins-job-builder).
It creates one `project` for each active branches, which in turn uses
three JJB `job templates` to create the three jobs for each branch: the
ISO build one, and wrapper job that is used to start the ISO test jobs.
This changes are pushed to our [[!tails_gitweb_repo jenkins-jobs]] git
repo by the cronjob, and thanks to their automatic deployment in our
`tails::jenkins::master` and `tails::gitolite::hooks::jenkins_jobs`
manifests in our [[!tails_gitweb_repo puppet-tails]] repo, this new
changes are applied automatically to our Jenkins instance.
Restarting slave VMs between jobs
=================================
This question is tracked in [[!tails_ticket 9486]].
When we tackle [[!tails_ticket 5288]], if the test suite doesn't
For [[!tails_ticket 5288]] to be robust enough, if the test suite doesn't
_always_ clean between itself properly (e.g. when tests simply hang
and timeout), we might want to restart `isotesterN.lizard` between
each each ISO testing job.
......@@ -37,13 +65,16 @@ We achieve this VM reboot by using 3 chained jobs:
own.
* The second job is executed on the master (which has 4 build
executors). This job ssh into the said isotester and issue the
reboot. It waits a bit to be sure that the reboot is ongoing and no
jobs gets assigned to this isotester meanwhile and put the node back
online again. This jobs is higher prio so that it is not lagging behind
other wrapper jobs in the queue.
reboot. It needs to wait a reasonable amount of time for the Jenkins
slave to be stopped by the shutdown process so that no jobs gets assigned
to this isotester meanwhile. Stoping this Jenkins slave daemon usually
takes a few seconds. During testing, 5 seconds proved to be enough of
a delay for that, and more would mean unnecessary lagging time. It then
put the node back online again. This job is higher prio so that it is
not lagging behind other wrapper jobs in the queue.
* The third job is the test job, run on the freshly started isotester.
This one is high prio too to get executed before any other wrapper
jobs. This jobs are set to run concurrently, so that if a first one is
jobs. These jobs are set to run concurrently, so that if a first one is
already running, a more recent one triggered by a new build will still
be able to run and not be blocked by the first running one.
......
......@@ -40,24 +40,42 @@ to add it, run:
#Git comandi quotidiani
Sono tutti da mandare da terminale, una volta che si è dentro alla cartella che si usa per il progetto tails.
Il pulsante TAB è vostro amico per completare tutti i percorsi dei file e soprattutto quando usate git add.
Il pulsante TAB è vostro amico per completare tutti i percorsi dei file e soprattutto quando usate git add. Le frecce su e giù della tastiera vi danno gli ultimi comandi che avete lanciato, così andate velocissim*.
Tutte le volte va configurata la chiave ssh che si usa, quindi:
$ ssh-add /home/utente/vostrachiaveprivata
Fatto, ora possimo sincronizzarsi al repository remoto, prendendo i file che ci mancano:
$ git pull
Per sincronizzarsi al repository remoto
Per aggiungere allo stadio "stage" i file che poi si manderà al repository remoto.
$ git add NAMEFILE
Per aggiungere allo stadio "stage" i file che poi si manderà al repository remoto
Per avere una descrizione delle modifiche fatte localmente, ma che apparirà anche al repository remoto quando si aggiungeranno
$ git commit -m "DESCRIZIONE DELLE MODIFICHE FATTE"
Per avere una descrizione delle modifiche fatte localmente, ma che apparirà anche al repository remoto quando si aggiungeranno
Se siete sicuri che le modifiche che avete fatto vanno tutte sul repository remoto, potete condensare i due comandi sopra con uno solo, -a mette tutti i file nella zona "stage" e committate direttamente:
$ git commit -a -m "DESCRIZIONE MODIFICHE"
Se non sapete l'identità con cui è configurato git, fate un controllo prima di mandare le cose in remoto:
$ git config -l
Per aggiungere i commit fatti al repository remoto:
$ git push l10n-italian master
Per aggiungere i commit fatti al repository remoto
In caso di dubbi, vedete un po il vosro status:
$ git status
......@@ -199,34 +217,35 @@ Attingere nuove pagine da tradurre dando precedenza a queste:
./doc/about/requirements --DONE, pushed, daRev
./doc/download
./doc/download --DONE, pushed, daRev
./doc/get.index
./doc/get.index --DONE, pushed, daRev
./doc/get/trusting_tails_signing_key
./doc/get/trusting_tails_signing_key --DONE, pushed, daRev
./doc/get/*
./doc/get/*--DONE, pushed, daRev
___
bf
./doc/about.index --FINITO!
./doc/about/openpgp_keys --80% DONE, a lot of issues... daRev ?
./doc/about/features --DONE, pushed daRev
./doc/about/features --DONE, pushed daRev ?
./doc/about/fingerprint --DONE, pushed daRev ?
./doc/about/fingerprint --DONE, pushed daRev
./doc/first_steps/persistence.caution --FINITO!
./doc/first_steps/persistence/configure --DONE pushed daRev ?
./doc/first_steps/persistence/configure --DONE pushed daRev
./doc/first_steps/persistence/delete --FINITO!
./doc/first_steps/persistence/warnings --FINITO!
***
./doc/first_steps/persistence/use
./doc/first_steps/persistence/warnings --FINITO!
./doc/about/openpgp_keys --80% DONE, a lot of issues... not pushed
___
./doc/about/tor --DONE, Pushed
......
......@@ -16,6 +16,4 @@ Availability and plans for the next weeks
Discussions
===========
- [[!tails_ticket 10257 desc="Discuss & adopt a strategy to merge commits from Weblate"]]
- [[!tails_ticket 10179 desc="Document mentors for new contributors"]]
- [[!tails_ticket 10024 desc="Document issues behind having Tails derivatives"]]
- [[!tails_ticket 10188 desc="Draft text for the website about buying t-shirts"]]
......@@ -18,16 +18,25 @@ Releases
Code
====
FIXME
## Upgrades and changes
* Alan submitted for review a new version of
[Tor Monitor](https://mailman.boum.org/pipermail/tails-dev/2015-August/009381.html)
(to replace Vidalia) and Sascha Steinbiss proposed to
[package it for Debian](https://mailman.boum.org/pipermail/tails-dev/2015-August/009397.html).
- Install Tor Browser 5.0.2 (based on Firefox ESR 38.2.1).
- Install a 32-bit GRUB EFI boot loader. Tails should now start on some tablets
with Intel Bay Trail processors among others.
- Let the user know when Tails Installer has rejected a device because it is too
small.
- Upgrade Tor to 0.2.6.10-1~d70.wheezy+1+tails1
## Fixed problems
- Our AppArmor setup has been audited and improved in various ways which should
harden the system.
- The network should now be properly disabled when MAC address spoofing fails.
* We drafted a script to [[!tails_ticket 9993 desc="run a Mumble server"]] from
Tails, verified that the Mumble client in Tails Jessie works well, and
started using it for internal meetings.
Documentation and website
=========================
......@@ -108,12 +117,19 @@ Upcoming events
On-going discussions
====================
FIXME
* Alan submitted for review a new version of
[Tor Monitor](https://mailman.boum.org/pipermail/tails-dev/2015-August/009381.html)
(to replace Vidalia) and Sascha Steinbiss proposed to
[package it for Debian](https://mailman.boum.org/pipermail/tails-dev/2015-August/009397.html).
* We drafted a script to [[!tails_ticket 9993 desc="run a Mumble server"]] from
Tails, verified that the Mumble client in Tails Jessie works well, and
started using it for internal meetings.
Press and testimonials
======================
FIXME
* 2015-08-04: [Cinq systèmes d’exploitation pour snober Windows 10 (et Mac OS)](http://www.lemonde.fr/pixels/article/2015/08/04/cinq-systemes-d-exploitation-pour-snober-windows-10-et-mac-os_4710726_4408996.html) by Damien Leloup in Le Monde (in French).
Translation
===========
......
......@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2015-08-20 12:11+0300\n"
"POT-Creation-Date: 2015-10-13 12:48+0300\n"
"PO-Revision-Date: 2014-04-18 23:25+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -383,7 +383,19 @@ msgid "Source code: [[Git repositories|contribute/git]]"
msgstr "Quellcode: [[Git repositories|contribute/git]]"
#. type: Plain text
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| " - [[Redmine bug tracker|contribute/working_together/Redmine]]\n"
#| " - [Roadmap](https://labs.riseup.net/code/projects/tails/roadmap)\n"
#| " - [[Easy tasks|easy_tasks]] for new contributors\n"
#| " - [Tasks](https://labs.riseup.net/code/projects/tails/issues)\n"
#| " can be filtered by type of work (see links in the sidebar)\n"
#| " - [[Building a Tails image|contribute/build]]\n"
#| " - [[Build the website|contribute/build/website]]\n"
#| " - [[Customize Tails|contribute/customize]]\n"
#| " - [[Debian package builder|contribute/Debian_package_builder]], to automatically build our custom packages\n"
#| " - [[APT repository|contribute/APT_repository]], to store our custom Debian packages\n"
#| " - [[Glossary for contributors|contribute/glossary]]\n"
msgid ""
" - [[Redmine bug tracker|contribute/working_together/Redmine]]\n"
" - [Roadmap](https://labs.riseup.net/code/projects/tails/roadmap)\n"
......@@ -391,7 +403,7 @@ msgid ""
" - [Tasks](https://labs.riseup.net/code/projects/tails/issues)\n"
" can be filtered by type of work (see links in the sidebar)\n"
" - [[Building a Tails image|contribute/build]]\n"
" - [[Build the website|contribute/build/website]]\n"
" - [[Build a local copy of the website|contribute/build/website]]\n"
" - [[Customize Tails|contribute/customize]]\n"
" - [[Debian package builder|contribute/Debian_package_builder]], to automatically build our custom packages\n"
" - [[APT repository|contribute/APT_repository]], to store our custom Debian packages\n"
......
......@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2015-08-20 12:11+0300\n"
"POT-Creation-Date: 2015-10-13 12:48+0300\n"
"PO-Revision-Date: 2014-03-26 10:50+0100\n"
"Last-Translator: MR\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -382,7 +382,7 @@ msgid ""
" - [Tasks](https://labs.riseup.net/code/projects/tails/issues)\n"
" can be filtered by type of work (see links in the sidebar)\n"
" - [[Building a Tails image|contribute/build]]\n"
" - [[Build the website|contribute/build/website]]\n"
" - [[Build a local copy of the website|contribute/build/website]]\n"
" - [[Customize Tails|contribute/customize]]\n"
" - [[Debian package builder|contribute/Debian_package_builder]], to automatically build our custom packages\n"
" - [[APT repository|contribute/APT_repository]], to store our custom Debian packages\n"
......
......@@ -135,7 +135,7 @@ Tools for contributors
- [Tasks](https://labs.riseup.net/code/projects/tails/issues)
can be filtered by type of work (see links in the sidebar)
- [[Building a Tails image|contribute/build]]
- [[Build the website|contribute/build/website]]
- [[Build a local copy of the website|contribute/build/website]]
- [[Customize Tails|contribute/customize]]
- [[Debian package builder|contribute/Debian_package_builder]], to automatically build our custom packages
- [[APT repository|contribute/APT_repository]], to store our custom Debian packages
......
......@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2015-08-20 12:11+0300\n"
"POT-Creation-Date: 2015-10-13 12:48+0300\n"
"PO-Revision-Date: 2014-05-23 14:56-0300\n"
"Last-Translator: Tails Developers <amnesia@boum.org>\n"
"Language-Team: Portuguese <LL@li.org>\n"
......@@ -387,7 +387,19 @@ msgid "Source code: [[Git repositories|contribute/git]]"
msgstr "Código fonte: [[Repositórios git|contribute/git]]"
#. type: Plain text
#, no-wrap
#, fuzzy, no-wrap
#| msgid ""
#| " - [[Redmine bug tracker|contribute/working_together/Redmine]]\n"
#| " - [Roadmap](https://labs.riseup.net/code/projects/tails/roadmap)\n"
#| " - [[Easy tasks|easy_tasks]] for new contributors\n"
#| " - [Tasks](https://labs.riseup.net/code/projects/tails/issues)\n"
#| " can be filtered by type of work (see links in the sidebar)\n"
#| " - [[Building a Tails image|contribute/build]]\n"
#| " - [[Build the website|contribute/build/website]]\n"
#| " - [[Customize Tails|contribute/customize]]\n"
#| " - [[Debian package builder|contribute/Debian_package_builder]], to automatically build our custom packages\n"
#| " - [[APT repository|contribute/APT_repository]], to store our custom Debian packages\n"
#| " - [[Glossary for contributors|contribute/glossary]]\n"
msgid ""
" - [[Redmine bug tracker|contribute/working_together/Redmine]]\n"
" - [Roadmap](https://labs.riseup.net/code/projects/tails/roadmap)\n"
......@@ -395,7 +407,7 @@ msgid ""
" - [Tasks](https://labs.riseup.net/code/projects/tails/issues)\n"
" can be filtered by type of work (see links in the sidebar)\n"
" - [[Building a Tails image|contribute/build]]\n"
" - [[Build the website|contribute/build/website]]\n"
" - [[Build a local copy of the website|contribute/build/website]]\n"
" - [[Customize Tails|contribute/customize]]\n"
" - [[Debian package builder|contribute/Debian_package_builder]], to automatically build our custom packages\n"
" - [[APT repository|contribute/APT_repository]], to store our custom Debian packages\n"
......
[[!meta title="Build the wiki offline"]]
[[!meta title="Build a local copy of the website"]]
Here is how to build the wiki offline.
The website [[https://tails.boum.org/]] is built using
[Ikiwiki](https://ikiwiki.info) from source code that is available in
our main Git repository, along with the rest of the Tails code.
<div class="bug">
You can build a local copy of the website on your computer. Building the
website produces a set a HTML pages stored on your system that you can
open in your usual web browser even while working offline. Doing so is
useful for documentation writers and translators to see how their
changes will apply on the website.
<p>The following instructions don't work as such in Tails. See
[[!tails_ticket 9018]] for a possible solution.</p>
[[!toc]]
</div>
Build the website in Linux
==========================
If you have not done it before, update the list of packages known to Tails:
1. Update the list of available packages:
sudo apt-get update
sudo apt-get update
Then install the dependencies:
2. Install the required packages:
sudo apt-get install libyaml-perl libyaml-libyaml-perl po4a \
perlmagick libyaml-syck-perl ikiwiki
sudo apt-get install libyaml-perl libyaml-libyaml-perl po4a \
perlmagick libyaml-syck-perl ikiwiki
Clone our main [[Git repository|git]]:
3. Clone our main [[Git repository|git]]:
git clone https://git-tails.immerda.ch/tails
git clone https://git-tails.immerda.ch/tails
Then run the following command, at the root of the Git folder:
[[!inline pages="contribute/build/website/src.inline" raw="yes"]]
./build-wiki
4. Build the website:
You can now browse the files in
cd tails
./build-website
./config/chroot_local-includes/usr/share/doc/tails/website/
[[!inline pages="contribute/build/website/languages.inline" raw="yes"]]
To accelerate the build, you can disable some languages by editing the
parameter `po_slave_languages` in ikiwiki.setup.
5. You can now browse your local copy of the website in the following folder:
<span class="filename">config/chroot_local-includes/usr/share/doc/tails/website/</span>
<a id="tails"></a>
Build the website in Tails
==========================
1. [[Create and configure|doc/first_steps/persistence/configure]] a persistent volume and activate the following features:
- Personal Data
- APT Packages
- APT Lists
2. Restart Tails, [[enable the persistence|doc/first_steps/persistence/use]], and [[set up an administration password|doc/first_steps/startup_options/administration_password]].
3. Update the list of available packages:
sudo apt-get update
4. Install the required packages:
sudo apt-get install libyaml-perl libyaml-libyaml-perl po4a \
perlmagick libyaml-syck-perl ikiwiki
5. Clone our main [[Git repository|git]] in the <span class="filename">Persistent</span> folder:
cd ~/Persistent/
git clone https://git-tails.immerda.ch/tails
[[!inline pages="contribute/build/website/src.inline" raw="yes"]]
6. Build the website:
cd tails
./build-website --set destdir="/home/amnesia/Persistent/Tor Browser/tails" "$@"
[[!inline pages="contribute/build/website/languages.inline" raw="yes"]]
7. You can now visit the following link in <span class="application">Tor Browser</span> to browse your local copy of the website:
[[file:///home/amnesia/Persistent/Tor Browser/tails/index.en.html]]
<div class="tip">
<p>To accelerate the build, you can disable some languages by editing
the <span class="code">po_slave_languages</span> parameter in the file
<span class="filename">ikiwiki.setup</span>.</p>
</div>
<div class="tip">
<p>The source code of the website is located in the
<span class="filename">wiki/src/</span> folder.</p>
</div>
......@@ -2,7 +2,33 @@
* 2015-10-06 to 08: OTF Annual Summit in Washington DC
* 2015-11-03: Release 1.7 (anonym is the RM)
* 2015-10-26:
- Freeze Tails 1.7: All feature branches targeting Tails 1.7 should
be merged into the `devel` branch by noon, CET. I'm open to make
exceptions if you can be online and responsive during that
afternoon.
- Build and upload Tails 1.7~rc1.
- Start testing Tails 1.7~rc1 during late CET if building the image
went smoothly.
* 2015-10-27:
- Finish testing Tails 1.7~rc1 by the afternoon, CET.
- Release Tails 1.7~rc1.
* 2015-11-02:
- All new branches targeting Tails 1.7 must be merged into the
`testing` branch by noon CET. I'm open to make exceptions if you
can be online and responsive during that afternoon.
- Tor Browser 4.5.x, based on Firefox 38esr, is hopefully out so
we can import it.
- Build and upload Tails 1.7 ISO image and IUKs.
- Start testing Tails 1.7 during late CET if building the image
went smoothly.
* 2015-11-03:
- Finish testing Tails 1.7 by the afternoon, CET.
- Release Tails 1.7 during late CET, earliest when Mozilla
publishes their MFSAs.
* 2015-11-20 to 2015-11-22: User testing of the Installation Assistant
......
......@@ -75,7 +75,7 @@ Repositories
Main repository
---------------
This repository contains the Tails source code and the wiki source.
This repository contains the Tails source code and the source of the website.
Anyone can check it out like this:
......
......@@ -98,7 +98,7 @@ So you know what bug you want to fix, what feature you want to
implement. At this point, we advise you to:
1. **Gather results of previous research and discussions** on the
topic you are interested in. Search this wiki, [[!tails_redmine ""
topic you are interested in. Search this website, [[!tails_redmine ""
desc="tickets on Redmine"]] and the [developers mailing-list
archive](https://mailman.boum.org/pipermail/tails-dev/).
2. **[[Tell us|contribute/talk]] about your plans** to make sure your
......
......@@ -35,6 +35,8 @@ For French, various bits of text can be translated via Git: