UbuntuServerDeveloperApplication
I, Lena Voytek, apply for Ubuntu Server upload rights.
Name |
Lena Voytek |
Launchpad Page |
|
Wiki Page |
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
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.
requests merge (Lunar) LP: #1993439
Upload: 2.28.1+dfsg-1ubuntu1 sponsored by ~sergiodj
Merge Proposal: MP: #433797
While the merge on the Ubuntu side was easy, debian needed an update to match upstream first. I started by merging in upstream and pristine-tar changes, then created a merge request for 2.28.1-1. After debian was up to date, I merged Ubuntu, with the only change being the charset-normalizer dependency.
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
Upload: 4.95-2ubuntu1 sponsored by ~utkarsh
Merge Proposal: MP: #411623
The merge for this package was very standard, with no non-trivial hurdles excluding an empty directory issue. I followed the Maintainers Handbook and handled the merge with git ubuntu.
ipmitool merge (Lunar) LP: #1993404
Upload: 1.8.19-1ubuntu1 sponsored by ~lucaskanashiro
Merge Proposal: MP: #434277
- The merge for this package was also very standard. The only difference between the new Ubuntu version and the Debian version was my earlier inclusion of DEP-8 tests. I'll be adding them to Debian soon to keep the two in sync.
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
Uploads: Jammy: 8.0.28-0ubuntu1, Impish: 8.0.28-0ubuntu0.21.10.4, Focal: 8.0.28-0ubuntu0.20.04.4 sponsored by ~bryce
Merge Proposals: MP: #414368, MP: #416904, MP: #416826
- When categorizing MySQL bug reports I found that many were often mistriaged due to a lockfile error that appeared in the logs. In reality this error appeared for everyone and did not cause any crashes. However, this was still a bug, and was fixed by creating and setting the proper permissions for a folder when MySQL is installed.
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.
caja-extensions bug fix + SRU (Kinetic | Jammy) LP: #1972057
Uploads: 1.26.0-1ubuntu1 sponsored by ~utkarsh, 1.26.0-1ubuntu0.22.04.1 sponsored by ~bryce
Merge Proposals: MP: #428855, MP: #429019
- The file system extension for sharing files in Caja was broken due to a depricated command line argument. Adding a commit from upstream and testing via Ubuntu MATE vms fixed the issue.
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
Uploads: Focal: 3.1.3-8ubuntu0.1, Bionic: 3.1.2-2.1ubuntu1.2 sponsored by ~sergiodj
Merge Proposals: MP: #410962, MP: #411290
- This was my first SRU, which involved digging through upstream commits to find a fix then adding it to the package as a patch. It taught me how to use quilt and how to write in the DEP-3 header format.
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:
ipmitool, and one more time
cyrus-sasl2 (still in jammy unapproved as I write this)
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
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.
Robie Basak
General feedback
I've been working with Lena since she joined Canoncial as a colleague on my team in October 2021. I have found that I only have to outline the background of a task once, and it comes back done correctly. My review comments mostly tend to be on nuances I didn't think to mention or otherwise weren't reasonable to have anticipated. I don't recall ever having to ask for something twice.
I think Lena's upload history is quite extensive now, and well past the bar for server packageset access.
Specific Experiences of working together
Lena has taken the maintenance of MySQL packaging over from me. Looking at the sponsorship miner, this looks like a total of five sponsored uploads for MySQL and related packages in Ubuntu. But I've also sponsored four uploads of mysql-8.0 into Debian for Lena. And the number of commits into Salsa from Lena is much larger than that. We operate a peer review policy in Salsa for MySQL packaging, and I believe I reviewed a majority of these.
So, much of this work is in Salsa since we try to keep in sync with Debian. But it has a tendency to diverge in Ubuntu because of incoming security updates in Ubuntu that often require minor packaging changes. This leads to some complexity in git workflows colliding between Salsa, Ubuntu and in non-VCS uploads from the security team. Lena has been navigating this without any issues and took the initiative to clarify and document the details.
Lena also identified the root cause of a number of long standing and commonly reported MySQL reports which I'd previously taken to be user error. I think this represents a significant improvement in MySQL packaging quality which wouldn't have happened without her involvement.
Areas of Improvement
I would really like to see MySQL packaging in Ubuntu regularly in sync with Debian. Lena has already been working towards this though, with many parts of historical delta already landed in Salsa, and I realise this has to be prioritised with other tasks. It is great to see continued progress in this area though. Thank you for work, and please stick around!
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 2023-01-23 18:39:39 by racb)