UbuntuServerDeveloperApplication

I, Lena Voytek, apply for Ubuntu Server upload rights.

Name

Lena Voytek

Launchpad Page

~lvoytek

Wiki Page

https://wiki.ubuntu.com/LenaVoytek

I am applying because:

  • I'd like to eliminate delays in getting my work sponsored.
  • I'd like to reduce the burden on my sponsors.
  • Having upload permissions is a useful step to becoming a core developer.

Who I am

I am a software engineer on the Ubuntu Server team. My focus is on maintaining packages including and related to MySQL, Django, virtualization, web, and email.

I have two bachelors degrees from the University of Arizona in electrical engineering and computer science. Prior to working at Canonical, I was an embedded firmware engineer for Garmin and Jacobs Engineering. In my previous positions I focused on RF communication, RTOS development, and sensor integration.

My Ubuntu story

My first endeavor into Ubuntu and Linux in general was with Precise Pangolin. On the day I turned 14, I convinced my parents to purchase me an old Dell workstation from the local University hardware surplus store. The computer did not have an OS installed, and I refused to pay for Windows, so I looked online for alternatives. Luckily for me, Ubuntu 12.04 had been released exactly one day earlier and was free to Download. I burnt the os onto a CD, installed it, and have been running Linux ever since.

Over the last 10 years I have explored various distros, but in the end Ubuntu has just been the best for me, both in the desktop and server spaces. It also feels nice to be not only a user, but a developer of Ubuntu, helping to release the version arriving a decade after my first.

My involvement

Examples of my work / Things I'm proud of

New Packages

  • virtualbmc development (Kinetic) Package

    • Uploads: 2.2.2-0ubuntu3, 2.2.2-0ubuntu2, and 2.2.2-0ubuntu1 sponsored by ~corey.bryant

    • While creating DEP-8 tests for ipmitool, I found a need for virtualbmc to test controlling a qemu vm. I used other Python packages as a guide to set up the debian folder. After completing and testing the packaging, I worked with the OpenStack team on final touches and let them take over future maintenance since virtualbmc is an OpenStack repository.

Package Merges and Syncs

  • python-django sync (Jammy) LP: #1946890

    • Upload: 2:3.2.9-2 sponsored by ~paelzer

    • Merge Proposal: MP: #412306

    • The Django sync for Jammy involved a major LTS to LTS version bump from 2.2 to 3.2, which lead to additional work outside of verification and package syncing. In order for the new version to work in Ubuntu, the package python-asgiref needed to be included in main and mini-buildd needed to be updated to its newest version (see below for both of these). Thanks to this update, Jammy now contains a Django version that will be supported until at least 2024.
  • open-isns merge (Jammy) LP: #1946882

    • Upload: 0.101-0ubuntu1 sponsored by ~paelzer

    • Merge Proposal: MP: #413102

    • The upstream for this project released a new version in February 2021 with useful changes but Debian had not yet updated. As such I started by providing Debian with a set of merge proposals that integrated 0.101 using the uscan command. With no response from Debian for a while I proceeded by integrating the upstream changes into Ubuntu. As a bonus many of the patches contained in the previous version were fixed and could be removed in the update.

  • exim4 merge (Jammy) LP: #1946857

Bug Fixes and SRUs

  • mysql-8.0 bug fix + SRU (Jammy | Impish | Focal) LP: #1899248

    • Uploads: Jammy: 8.0.28-0ubuntu4, Impish: 8.0.28-0ubuntu0.21.10.4, Focal: 8.0.28-0ubuntu0.20.04.4 sponsored by ~bryce

    • Merge Proposals: MP: #416902, MP: #416904, MP: #416826

    • The fix for this issue was fairly small, but required a lot tangential work to create. Due to a limited shutdown timeout in MySQL's postinst file many users would run into an apport crash when installing, which piled up into many bug reports. Over the last few months I have compiled the bugs reported by MySQL into various categories based on their outputs, and this ended up being the most common. Using the set of duplicate reports I determined a more reasonable shutdown timeout that would limit apport to activating when there are actual problems.
  • mysql-8.0 bug fix + SRU (Jammy | Impish | Focal) LP: #1964969

  • swtpm + libvirt bug fix (Jammy) LP: #1968187

    • Uploads: 0.6.3-0ubuntu3, 8.0.0-1ubuntu7 sponsored by ~paelzer

    • Merge Proposals: MP: #419328, MP: #419329

    • When running swtpm with libvirt, an apparmor notification would show up stating a denial happened when trying to access openssl.conf. After looking deeper into the issue, I found this was due to swtpm using libvirt's apparmor profile rather than its own. To fix it, apparmor profiles had to be fixed in both libvirt and swtpm.
  • swtpm bug fix (Jammy) LP: #1968335

    • Upload: 0.6.3-0ubuntu3 sponsored by ~paelzer

    • Merge Proposal: MP: #419328

    • With the swtpm apparmor profile in place, a user found the need for additional allowances so this was added in alongside the above libvirt + swtpm apparmor fix.
  • libqb bug fix + SRU (Jammy) LP: #1978955

    • Upload: 2.0.4-1ubuntu0.1 sponsored by ~ahasenack

    • Merge Proposal: MP: #425251

    • Pacemaker was occasionaly running into errors due to a race condition during posix_fallocate. By adding in a patch containing a fix from upstream the function would be retried multiple times, avoiding crashes.
  • mini-buildd bug fix + merge (Jammy) LP: #1965724

    • mini-buildd is a special case as a bug fix and merge from Debian combined. This package was holding back the python-django transition for Jammy as it specified a maximum version in its control file. To fix this I had to update to the newest version in Debian. However this version also came with an issue where the program would fail based on the hostname of the system. I fixed this with an additional patch, attaching it to the bug report and sending it upstream.
  • clamav bug fix + SRU (Bionic) LP: #1925182

    • Upload: 0.103.2+dfsg-0ubuntu0.18.04.3 sponsored by ~bryce

    • Merge Proposal: MP: #411886

    • The fix for this issue was handled in various files in the debian directory. I worked with control, rules, and postinst files to change when an apparmor profile is deployed during installation.
  • munin bug fix (Jammy) LP: #1680975

    • Upload: 2.0.57-1ubuntu2 sponsored by ~sergiodj

    • Merge Proposal: MP: #411872

    • The fix for this package was related to documentation. Many of the commands and arguments had changed slightly over time and the documentation needed to be updated to reflect that.
  • rsync SRU (Focal | Bionic) LP: #1896251

Feature Freeze Exceptions

  • swtpm development (Jammy) LP: #1950631

    • Upload: 0.6.1-0ubuntu6 sponsored by ~paelzer

    • Merge Proposal: MP: #415813

    • As part of the effort to add swtpm to main for the Jammy release, an apparmor profile needed to be added for extra security. To develop the profile I ran Jammy naitively on a laptop with full restraints on swtpm, and had apparmor complain whenever a permission error was encountered. I tested swtpm by running it alone and while running a Windows 11 virtual machine.

Autopkgtest & DEP8

  • net-tools development (Jammy) LP: #1679346

    • Upload 1.60+git20181103.0eebece-1ubuntu4 sponsored by ~bryce

    • Merge Proposal: MP: #410677

    • Although net-tools is such a widely used package, when I first joined Canonical it had no DEP-8 tests. As such this ended up being my first contribution to an Ubuntu package. For the package I added two unit test sets for confirming the hostname and ifconfig commands are working as intended.
  • ipmitool development (Kinetic) LP: #1982786

    • Upload 1.8.18-11ubuntu3 and 1.8.18-11ubuntu4 sponsored by ~ahasenack

    • Merge Proposal: MP: #427443

    • As a part of the process for promoting ipmitool into main, some DEP-8 tests were needed. The first one I added was a simple smoke test that checked that the version and help arguments worked successfully. The second was more in-depth, creating a qemu vm and using virtualbmc to allow ipmitool to control it, skipping for architectures other than amd64. At the time virtualbmc was not a package in Ubuntu, so I ended up working with the OpenStack team to get it into universe to allow the test to work.

Main Inclusion

  • python-asgiref MIR (Jammy) LP: #1953173

    • The Django 3.2 sync for Jammy was blocked by python-asgiref since the package was in universe and became a dependency with the new version. To fix this I filled out an MIR application in the above bug report. It was approved by the MIR team then checked by the security team. They were worried about a lack of data validation in a certain part of the code. I tested it extensively and found an issue with unicode validation. After talking with upstream we confirmed this is an issue but not exploitable due to checks elsewhere. Afterward the MIR was fully approved and python-asgiref was added to main in Jammy.

Areas of work

  • MySQL
    • I am focused on maintaining MySQL and its presence in Debian Unstable with Lars Tangvald and Robie Basak since it is otherwise unsupported.

    • Alongside this I am working on keeping Ubuntu and Debian's MySQLs up to date with each other, especially when new security updates are added.
    • I have written some documentation on the maintenance of MySQL in the Ubuntu Maintainers Handbook.

    • I fixed and am fixing various bugs that show up in MySQL.
  • Django
    • I managed to transition python-django to the 3.2 LTS release for Jammy.
    • I have worked on related packages to maintain the Django ecosystem, such as mini-buildd and python-asgiref.
  • Virtualization
    • I created an apparmor profile for swtpm.
    • I am starting to work more alongside Christian Ehrhardt on bugs and development in virtualization packages.

  • Inclusive Naming
    • I have been acting as the main contact for the server team on Canonical's inclusive naming project
    • I set up and monitored tasks for cleaning up the code and documentation in our projects
    • I cleaned up the documentation for most of the Ubuntu Server Guide

Things I could do better

I've found that I when I focus on a more difficult issue, such as a non-trivial MySQL bug, other items may get left behind for a while. I can do better with package management by making sure to take some time to dig into other items assigned to me.

Another issue I've had starting out in my work on Ubuntu was being unable to choose bugs to work on for myself. Now that I have a stronger grasp of what I would like to do, I can choose what to work on with less hesitation.

Lastly, in a more technical sense I do not have much experience working on packages outside the git ubuntu workflow. I managed to learn more about it when working on mini-buildd recently, but I still need to make sure I'm prepared for packages in this state in the future.

Plans for the future

General

In the future I would like to branch out further in several areas. I would like to increase my presence in virtualization and web packages through bug fixes and development. I am also going to focus on the goal of refining the workflow of managing MySQL in Debian and Ubuntu. I would also like to help more with development upstream on packages that the server team manages.

What I like least in Ubuntu

I believe the workflow for development on Ubuntu is quite daunting at first. It can be difficult to find documentation on what to do in the specific situations one encounters when creating or fixing a package. Launchpad can be hard to navigate, there are many commands to remember, and many packages have to be delt with in unique ways. There are a few ways to make this better though, and I have seen improvements already in a few places. The Ubuntu Maintainers Handbook which is updated often has helped me immensly. Likewise, the addition of many packages to git ubuntu has made things much easier. I think this can all be made even better with standardization and centralization of documentation.


Comments

If you'd like to comment, but are not the applicant or a sponsor, do it here. Don't forget to sign with @SIG@.


Endorsements

As a sponsor, just copy the template below, fill it out and add it to this section.

Bryce Harrington

General feedback

After recently helping review Lena's work on a non-trivial mysql SRU, I nudged her to start the application process since I think she's gained sufficient confidence and experience. Her packageset membership will help the server team improve the maintenance attention we can give to mysql and other server packages, and will facilitate her ongoing work towards a future application for MOTU.

Specific Experiences of working together

I've reviewed three of the packaging work items Lena outlined above:

  • net-tools - adding DEP8 tests
  • clamav - apparmor profile adjustments
  • mysql-8.0 - SRU for jammy/impish/focal to fix installation problem found via apport

In all three cases I was pleased with the results and felt they made strong improvements to the packages.

Beyond this I've also observed her documentation and bug triage work, and her interactions with other members of my team. She works in a very methodical and professional way, takes everyone's feedback seriously, and produces solid work. I have trust in her packaging judgement.

Areas of Improvement

Lena has tackled a variety of different types of packaging tasks, and while there's still more learning curve ahead to climb, having packageset developer membership will mark a solid step up the curve and make it easier for her to progress further. Looking forward to a future MOTU application, Lena should plan on continuing to broaden her experience base to include non-server software packages, and to seek out sponsors outside the server team to gain a diversity of endorsers.

Part of that should also include watching for opportunities to do reviews on other people's work, and to start working on migration issues for packages our team handles. These two activities will both help offload other team members, and will deepen Lena's packaging knowledge-base.

Speaking of depth, I've been impressed with the level of focus Lena has given to both apparmor and systemd issues. These techs come up frequently in server team work, and if they're of interest to her, we could certainly use depth of expertise in either or both and I'd certainly encourage those pursuits.

Andreas Hasenack

General feedback

Lena started working quietly in the Ubuntu Server team, but has quickly ramped up her skills and is producing work of great quality. Not only is she doing packaging, and very well, but also contributing to other areas like documentation.

As I review and sponsor more uploads, I'm finding it harder to find something I would like changed, and am mostly doing improvement suggestions here and there.

Specific Experiences of working together

I have sponsored the following uploads for Lena:

I particularly enjoyed the last uploads (ipmitool and cyrus-sasl2). They show good skills and attention to details, and a good overall feeling of quality towards packaging. ipmitool was more impressive in the sense that adding a DEP8 test involved packaging a totally NEW package for Ubuntu (virtualbmc).

Areas of Improvement

I think Lena has reached the stage where she can start thinking about making improvements to the packages she uploads, instead of just fixing bugs. Think ahead: "what else can I improve in this package". This can be adding tests, reducing our delta with Debian, etc.

In terms of Ubuntu processes, experience with those will come naturally. Plenty of SRUs were done already, and MIRs are starting. Looking at proposed migration more closely probably comes next, and I more then welcome your review in my PRs.

Sergio Durigan Junior

General feedback

Lena and I have been working together at the Server team for a while now. She is a knowledgeable engineer with a very technical background, which is great for our team. Her packaging work is great and she is also doing good stuff in the documentation area of our team.

Specific Experiences of working together

I had the opportunity to sponsor a few packages for Lena and I could witness her improvement first hand. Her work has always been good since the beginning, but has visibly matured when it comes to the packaging aspects of it.

Although she is now working on areas that I don't usually get too involved, I'm still reading her Merge Proposals and I can see that the feedback she has been receiving is very positive.

Areas of Improvement

The first thing that comes to mind is: reviews! I would love to see her reviewing more Merge Proposals from the team, because I am absolutely certain that her feedback would be very valuable.

Also, thinking about an eventual Core Dev application, it would be great to see her getting more involved with the broader Ubuntu community. Helping with +1 maintenance is a way to do this, and I know that she has plans to start doing that soon, so I'm looking forward to seeing the results.

Athos Ribeiro

General feedback

Lena and I have been working together in the Server team for a while now. She is a great teammate with a very strong engineering background. She is now our go-to person for MySQL issues and started diving into some virtualization packages (in an incredible pace).

Lena had also worked in several parts of the server team documentation and wrote the tool we currently use as part of our weekly server team issues triage (dsctriage).

I trust Lena's work and expertise and I am sure she will take good care of the packages she will improve with her new permissions Smile :)

Specific Experiences of working together

While I have only sponsored 2 packages for Lena (being one for a development release and one SRU), I have followed/inspected several of her changes and review requests in the server team packages.

She has great understanding of how packaging works and also does understand the Ubuntu (and the server team's) processes. When it comes to SRUs, she cares for all the details and is always ready to write complete and easy to read descriptions and test plans.

Areas of Improvement

As others have already stated, it would be great to see more reviews from Lena in our teammates' work. Moreover, knowing she is a great programmer, it would be nice to see more of her code in any automation we may develop in the future to improve/automate our processes.


TEMPLATE

== <SPONSORS NAME> ==
=== General feedback ===
## Please fill us in on your shared experience. (How many packages did you sponsor? How would you judge the quality? How would you describe the improvements? Do you trust the applicant?)

=== Specific Experiences of working together ===
''Please add good examples of your work together, but also cases that could have handled better.''
## Full list of sponsored packages can be generated here:
##  https://udd.debian.org/cgi-bin/ubuntu-sponsorships.cgi
=== Areas of Improvement ===


LenaVoytek/UbuntuServerDeveloperApplication (last edited 2022-12-06 18:53:46 by athos-ribeiro)