This report covers the activity of Tails in July 2016.

Everything in this report is public.

B. Improve our quality assurance process

B.3. Extend the coverage of our test suite

B.3.10. Write automated tests for features added in 2016Q1

This deliverable was completed last month.

B.3.11. Fix newly identified issues to make our test suite more robust and faster

This month again, we made great progress in making our test suite more robust.

We implemented retries on transient network failures in several of the features of our test suite that were affected. It made these tests robust enough for us to re-enable them in our Jenkins setup:

In July, we tackled the parts of our test suite that rely on emulated removable USB mass storage devices, that have historically been fragile in our Jenkins setup. Great progress was made, and we have good hope to be able to re-enable these tests on production branches in August or September:

  • Tails Installer was improved to behave more robustly despite the brittleness of udisks in some situations (#10720). This allowed the affected tests to run one step further and in turn to identify another kind of flaky behavior (seemingly random I/O errors on emulated USB devices) that we fixed by tweaking the kind of hardware which is emulated by QEMU.
  • We identified and fixed a bug in the step checking the existence of the persistent volume.
  • We identified and fixed a bug in our the handling of USB sticks created without Tails Installer, due to a weirdness caused by hybrid ISO images.

The above work made memory erasure tests more fragile. Thankfully we already had this potential problem in mind and we solved it.

While working on tackling the failures of time syncing tests, we realized that some of the servers we use for htpdate were offline or broken, making the time syncing brittle. We replaced them, which improves the situation.

Our test suite needs to add kernel command line options when booting the Tails VM under test, so that it can run commands inside it. This step used to be fragile: it sometimes happened that the Tails VM was booted before our test suite had time to type these options. We've implemented a solution that should be merged in August.

B.3.12. Reliably wait for post-Greeter hooks (#5666)

We lacked time to work on this, so it is postponed.

B.3.13. Reorganize the "various checks" feature (#5707)

This work has been merged, so this deliverable is now completed.

B.3.14. Write tests for incremental upgrades (#6309)

This is still work in progress. We went through one more iteration, and hope to complete it soon.

B.3.15. Write automated tests for features added in 2016Q2

We wrote a regression test for the persistence "dotfiles" feature. This completes this deliverable.

B.4. Freezable APT repository

This was delivered already, but still we kept polishing this system:

  • We wrote documentation and a helper tool for freeze exceptions (#11448).

  • We've investigated and fixed the root cause of a weird issue, when a package was not removed from our time-based APT snapshots, while it should have been (#11496).

  • We have dealt with the consequences that our new APT snapshots system has on our server's apt-cacher-ng cache size (#11532).

During the Tails 2.5 release process, we've identified a problem in how we handle frozen APT repositories for bugfix releases. We want to fix it by the end of September.

C. Scale our infrastructure

C.4. Maintain our already existing services

  • C.4.6. Administer our services upto milestone VI

    We kept on answering the requests from the community and taking care of security updates.

    We started making plans to handle the migration to Puppet 4.

E. Release management

No releases were put out in July.