ContributingDeveloperApplication

Revision 4 as of 2024-12-20 16:56:29

Clear message

WIP

This is a ported and updated version of my original application on Discourse, that I can't edit anymore for some reason.

Florent ‘Skia’ Jacquet - Ubuntu Contributing Developer application

Hello there! I’m Skia and would like to apply to Ubuntu Contributing Developer.

About me

My name is Florent Jacquet, but just call me Skia, even IRL, as everyone does.

I first installed Xubuntu 7.10 alternate edition on a 64MB RAM machine in 2008. The machine was already 10 years old by that time, but the lightweight system made it usable again, and it was great! Since then, I’ve installed a lot of {X,K,}Ubuntu on all my relative’s machines: parents, grand-parents, uncles, cousins, high-school companions, high school’s machines themselves, university friends and associations, you name it. I’ve personally distro-hoped for a while, but always kept either Debian or Ubuntu on my servers or machines that I wanted stable.

I now work for Canonical as part of Foundations/Ubuntu QA/Release Management team.

Contact information

Launchpad: hyask Matrix: @skia:matrix.hya.sk

Contributions

Most of my work revolves around automated testing infrastructure.

You can find a quite exhaustive list of my work here, as I post weekly to the Foundations Team Updates.

Since this would probably be a bit inconvenient to review, here are highlights of my most interesting contributions:

autopkgtest-cloud

This is currently the biggest part of my work. This infrastructure is very much central to the Ubuntu development, and keeping that running without hiccup is top priority. The list of contributions made to that infrastructure is a bit long, but here are some highlights:

Deploying the whole thing locally and improving the developer documentation

To begin my work on this topic, I’ve worked to have a local deployment of the whole infrastructure. That led to many small improvements, mostly oriented towards developers. This also made me familiar with how to self-host and administer a MicroStack.

Improved UI on per-package pages

This was a welcomed change that added the display of running and queued tests on top of the existing test results for a given package. Further details can be found on the %%ubuntu-devel%% mailing list thread.

Many other small improvements and bugfixes

Improved logs displayed for running jobs, by also including the head with the command line and various other useful information.

Added a sensible %%vimrc%% to the production machines to reduce the risk of silly mistakes.

Refreshed the cloud-init userdata file we use to deploy %%armhf%% LXD remotes, and deployed new remotes in the new %%bos03%% datacenter.

Investigated and fixed a long standing bug causing the RabbitMQ to restart about every two hours when the infra is under high load.

Even more stuff recently, as this is basically my daily job.

autopkgtest

Since this is the core tool around which our infrastructure is built, I’ve also had the opportunity to contribute to %%autopkgtest%%. We have an ongoing effort to upstream the Ubuntu patches, so I help there by providing feedback, tests, and some code review.

I’ve also uploaded the SRUs of 5.32 to Jammy and Mantic to get familiar in the process, and will certainly do more in the future.

auto-upgrade-testing

Besides daily monitoring of the service’s results, and maintaining our list of tested profiles, I’ve also made a few improvements on the software itself.

Improving the crash reporting

The crash reporting script is responsible for checking on the crashes reported by apport, making sure they get pushed to the error tracker, and setting the test status according to what was found. I’ve rewritten the whole script from a tiny piece of %%bash%% to a more readable piece of %%python%%, adding along the way much improved logging, and support for an “ignore list”. The ignore list allows us to set back to green tests that have a crash that is already reported and known, so that we more easily catch new issues happening while the first crash is being worked upon.

Support for multi-LTS upgrades

Until recently, the tool was not able to correctly test multiple upgrade in a row, like %%bionic%%%%focal%%%%jammy%%%%noble%%. This is now possible, although not perfect yet, but I’ve already enabled that kind of profile to catch issues happening during upgrades from older Ubuntu releases.

curtin

I’ve contributed to getting a baseline of green CI for the %%vmtests%% test suite, mostly by skipping all the broken tests. The goal was to make Jenkins email reports start being useful again by showing regressions to the team of Foundations developers responsible for %%curtin%% development.

UTAH

I’ve added the %%arm64+largemem%% architecture variant to the automated image promotion system. This was in the end a simple patch (almost a two-line diff ;-)), but required to dig into the code to see what was needed to support architecture variants.

Security Britney

As part of my work on ProposedMigration, I’ve had to extinguish a few fires in Security Britney, which also helped make me more familiar with how Britney is organized in general.

Foundations +1 maintenance

I also regularly participate in Foundations +1 maintenance. It usually mostly consist of helping a package transition by making its tests pass in autopkgtest by (re)running it with the right triggers, but can sometimes lead to some real fixes that need to be uploaded. Here is the list of my sponsored uploads to Ubuntu.

Future goals

I’m not alone in deciding the roadmap for the team I work with, but here are some ideas of things I would like to work on:

  • Continue improving %%autopkgtest-cloud%%, both from the architecture/infrastructure and the user/Ubuntu developer points of view. There are a lot of friction points that would need to be addressed, and the goal is to reach a point where the infrastructure is stable enough so that the team maintaining it can have time to improve other things. One example is this quite fundamental bug I’ve recently opened, that I’d like to close during the coming months.

  • Getting started to help maintain stuff around apport and the error tracker, starting with adding some automated integration testing to the apport retracer mechanism.
  • Get closer to the Foundations team to provide more general help from a QA perspective.
  • Improve my packaging skills to eventually be able to apply to some upload rights and participate more in building Ubuntu itself.

Endorsements

Simon Chopin

General feedback

Skia has been one of the handful of people maintaining our critical autopkgtest infrastructure as well as other bits of our release infrastructure, and he's extremely competent at it. Notably, he often interacts with the wider dev community on IRC (and Matrix too I think?) whenever we need help dealing with those systems.

This alone would qualify him easily as a Contributing Developer, but in addition he's also well on his way on the path to gain upload rights, with regular packaging contributions.

Specific Experiences of working together

I often interact with him on infra topics (I love load-testing the autopkgtest cloud Wink ;-) ). In addition, I've sponsored a few packages for him, e.g. an autopkgtest SRU.