ContributingDeveloperApplication

This is a ported and updated version of my original "regular Membership" application on Discourse, that I can't edit anymore because of Discourse. Thus, some of the stuff is a bit old-ish (1+ year), especially around autopkgtest-cloud, but I've still added the most important recent stuff I've worked on like the Error Tracker.

Florent ‘Skia’ Jacquet - Ubuntu Contributing Developer application

Hello there! I’m Skia and would like to apply to Ubuntu Contributing Developer. My motivation for doing so includes:

  • Getting easier access to the mailing lists, without bothering moderators.
  • Getting some recognition and trust from the community, since I already have access to some critical infrastructure. For example, that would legitimize my position as an {autopkgtest,errors,merges}.u.c admin.
  • Show my engagement on the path towards upload rights, in the hope to at some point be able to join some other teams like ubuntu-release, and better drive the Ubuntu release process, which I'm already part of.

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 (autopkgtest), but also keeping alive a bunch of services like the Error Tracker, Security Britney, Merge O Matic, etc...

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 one of 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.

Port everything to use the Python ''amqp'' module, and run on the latest Ubuntu

amqplib has been deprecated for a long time, and was finally removed from the archive. Moreover, a few old-ish patterns made the code unable to work correctly on modern Python and Ubuntu.

This work also brought a lot of great changes to ease local development without requiring to build and deploy a whole charm each time a line is changed.

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.

Integrated the new riscv64 architecture in the production infrastructure. This needed a few fixes.

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 some SRUs to Jammy, Mantic, and Noble.

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 bionicfocaljammynoble. 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.

I've also done some work to add Github CI support, and integrate it with autopkgtest.u.c. This is in a effort to get away from Jenkins, and have the tests more integrated in the development workflow. The work is not merged yet, but currently lives in this PR:

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.

Error Tracker

I've recently taken over the maintenance of the Error Tracker (https://errors.ubuntu.com). This big beast is running on Python2/Bionic, and a lot of work is needed to get it in a state where development is seamless, and improvements can be implemented.

The first thing I've completed here is the port of the "retracing" part to Python3/Noble+Plucky, so that everything can be deployed again in a brand new environment that the team controls.

Foundations +1 maintenance

I also regularly participate in Foundations "proposed migration" 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 the work on the Error Tracker. That thing is big, but great, and it's a very key tool to improving Ubuntu's quality in general. At some point, I'd like to see Ubuntu Server push its crashes their too (without too much manual work by the end users).
  • 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. One example is this bug I’ve recently opened, that I'd like to get fixed at some point. 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 that goal has now more or less been reached, and we already have way more time to work on other things, like the Error Tracker.

  • 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.

Paride Legovini

General feedback

I strongly support Florent ‘Skia’ Jacquet application for Ubuntu Contributing Developer membership. Skia has been involved in Ubuntu development for more than one year now, and contributed to the distro development QA and CI systems in ways that tangibly improved the quality of Ubuntu (including flavors) and the daily life of developers. I'm referring mostly to the work on autopkgtest, autopkgtest-cloud, and auto-upgrade testing. He participates to distro-wide efforts like +1 maintenance, understands the processes and their motivation, and is engaged with other developers and with the Ubuntu community.

I believe he is ready to become an Ubuntu Contributing Developer right now, and I expect Skia to be able to apply MOTU or Core Dev in a relatively short time.

Specific Experiences of working together

Me and Skia are part of the same team, so I've been exposed directly to almost everything he cited in this application.

Daniel Bungert

It is easy to +1 Florent for Contributing Developer. He is a member of the Ubuntu Release Management team and actively working on core projects like autopkgtest. Skia also assists with the legacy test infrastructure for Curtin and is helping to migrate that to github. Florent is actively working on tricky merges such as util-linux.

-- dbungert 2025-01-13 18:42:49

skia/ContributingDeveloperApplication (last edited 2025-01-13 18:42:49 by dbungert)