Application - Core Developer - Nadzeya Hutsko
I, Nadzeya Hutsko, apply for Ubuntu Core Developer.
Contact Information:
- Name: Nadzeya Hutsko
- Launchpad: https://launchpad.net/~nadzeya
- Matrix:
@nadzeya:matrix.debian.social
I am applying because
- My work is almost entirely in main. Merges of many packages like
bash,
vim,shadow,adduser,tzdata, SRUs, FTBFS fixes, and several
transitions like thepopplerone are not covered by MOTU, so MOTU would not
reduce the sponsorship I need. I understand that applying directly for Core
Developer is unusual and I am happy to be judged on that basis. - Much of what I send for review does not really need reviewing. No-change
rebuilds, one-line FTBFS fixes and transition follow-ups make up a large share
of it. Reading those is not a good use of a core developer’s patch pilot time,
and I would rather spend that goodwill on the changes where a second opinion
genuinely helps, which is where I would still ask for one. - I’d like to eliminate delays in transition work. During the
poppler
transition every reverse-dependency fix had to wait on a sponsor, which made
it hard to sequence uploads against the moment the new poppler binaries were
published. - I’d like to be able to sponsor and review the work of others. I would like
to mentor others and review merge proposals with the ability to sponsor
uploads, and to take patch pilot rotations.
Who I am
I first became interested in Linux and free software around the age of 17, when
I started exploring different operating systems, including Debian and FreeBSD. I
studied pure mathematics at university and am now studying computer science,
which fits my interest in systems, compilers and tooling. I also worked as a
network engineer, and I remain curious about networking technologies.
I am an Ubuntu Contributing Developer since March 2026. I am also a Debian
Developer, uploading, since June 2026, having been a Debian Maintainer from
November 2025, working mainly with the Debian Rust Team on libraries and binary
crates and Rust transitions.
I have worked for Canonical since July 2022 and joined the Debcrafters team in
November 2025.
My Ubuntu story
My first Ubuntu contribution was in 2024, on rust-hwlib: a Canonical-authored
Rust tool that needed to get into main. That single package turned out to be a
tour of most of Ubuntu’s processes: NEW review, the MIR process, a security
review, an AppArmor profile, autopkgtests, forming a distro team, seeding, and
finally promotion. It took the better part of a year, including a security NACK
and a rejection from the NEW queue ![]()
Since joining Debcrafters in November 2025, I have worked on merges, SRUs, MIRs,
FTBFS and proposed-migration fixes, feature freeze exceptions, and, most
recently, on library transitions in both Ubuntu and Debian.
Away from packaging, I wrote a spec for restoring translated package
descriptions (DDTP) in Ubuntu, which have been broken since bzr was retired from
Launchpad and nobody had picked it up:
The full record is at:
- Sponsored uploads, with the sponsor of each and me as the sponsoree (UDD):
https://udd.debian.org/cgi-bin/ubuntu-sponsorships.cgi?render=html&sponsor_search=name&sponsoree=Nadzeya+Hutsko&sponsoree_search=name - Packages touched (Launchpad): https://launchpad.net/~nadzeya/+related-packages
- Debian packages (DDPO): https://qa.debian.org/developer.php?login=nadzeya
Examples of my work / Things I’m proud of
Library transitions
poppler 26.07, which I drove in Ubuntu first and in Debian afterwards.
poppler bumps its soname every monthly release, and 26.02 through 26.07 also
reshaped much of the internal C++ API, so most reverse dependencies broke for
reasons unrelated to the soname itself.
- Transition tracker entry (MP #508554) and the upload ( 26.07.0-0ubuntu1 : poppler package : Ubuntu )
- No-change rebuilds:
gdal,
kitinerary,
calligra - Source fixes, all forwarded to Debian:
dia(0.98+git20260221-2ubuntu1),ipe-tools(1:7.2.29.2-0ubuntu2),popplerkit.framework(0.0.20051227svn-18),gdcm(3.0.24-12ubuntu1),xpdf(3.04+git20260220-1ubuntu1),gambas3(3.20.4-2ubuntu1),pdf2djvu(0.9.18.2-2.2ubuntu1),openboard(1.7.7+dfsg-2),inkscape(LP #2162141)
- Debian transition request, filed and driven as a DD:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1142700
glew, where I worked through the remaining reverse dependencies:
spring, fixed in Debian and synced back
( Publishing history : 106.0+dfsg-5 : spring package : Ubuntu )kicad, which fails with LTO. Worked around inlto-disabled-list
(LP #2166847) while the underlying bug stays openglgrib, which needed two packages unblocked first:dh-fortran, hardcoding
a gfortran version that Ubuntu does not default to (0.85ubuntu1),
andeccodes, building against the wrong flang and then trippingdh_strip
(2.48.1-1ubuntu1)
libjpeg-turbo
openjdk-8(MP #510233)
gtk2 removal
urfkill(MP #503229). Dropping
the NBS build dependency ongir1.2-gtk-2.0exposed two older bugs that had
never been reachable before, which I fixed in the same upload
Main Inclusion Requests
Six MIRs driven, three finalised into main:
| Package | Bug | Outcome |
|---|---|---|
| rust-hwlib | LP #2072561 | Promoted. NEW review, MIR, security review, AppArmor profile, autopkgtests, distro team, seeding |
| roman-numerals | LP #2110098 | Promoted, in collaboration with the original maintainer |
| libfile-libmagic-perl | LP #2142465 | Promoted |
| libgav1 | LP #2158712 | MIR ACK and security review done |
| libavif | LP #2130005 | In review |
| rust-rav1e | LP #2133869 | Retired, as another package in main provides this functionality |
Stable Release Updates
tree(LP #2113790)
across questing, plucky, and noble. I set the bugverification-failedmyself after finding that the first patch segfaulted in XML output, had the jammy upload removed from-proposed, and re-did the SRU with a corrected patch rather than shipping the broken one.tzdata2026a (LP #2143355) for noble and jammy, and through the ESM process for focal, bionic, xenial, and trusty, shipping the new upstream release.python-tz(LP #207604) for focal, bionic, xenial, and trusty as a prerequisite for autopkgtest coverage of the tzdata SRU. My first attempt went to the SRU queue and was correctly rejected because focal is ESM, and it landed through esm-infra instead.
Merges and syncs
Merges, mostly main packages and several with substantial delta:
adduser(3.153ubuntu1,
3.157ubuntu1)bash(5.3-1ubuntu1)cron(3.0pl1-200ubuntu1)db5.3(5.3.28+dfsg2-10ubuntu1)fontconfig(2.17.1-3ubuntu1)jq(1.8.1-4ubuntu1)lintian(2.127.0ubuntu1,
2.129.0ubuntu1)ltrace(0.7.91~git20230705.8eabf68-4ubuntu1): dropped a 17-year-olddebian/rulesdelta with no recorded rationale, after agreeing with the sponsor that early in the cycle is the right time to find out whether it is still neededplocate(1.1.24-1ubuntu1)requests(2.32.5+dfsg-1ubuntu1)rpds-py(0.27.1-2ubuntu1,
0.30.0-1ubuntu1)shadow4.17 to 4.19 (1:4.19.3-2ubuntu1): upstream re-architectedpasswd.candusermod.c, so the extrausers patches needed real rework rather than a refreshtzdata(2026b-1ubuntu1)vim(2:9.1.1882-1ubuntu1)
Syncs, where the Ubuntu delta had become unnecessary and the package could come
straight from Debian:
tree(LP #2130063), which I had first prepared as a merge until the sponsor pointed out that all of the delta was already in Debianpython-drf-spectacular(LP #2138455), where I verified in a PPA that the Ubuntu patch could be dropped in favour of Debian’s fixrust-rav1e( https://launchpad.net/ubuntu/+source/rust-rav1e/0.8.1-7 ), which unblockedrust-ravifafter the
Ubuntu vendoring was revertedrust-framework-lib( https://launchpad.net/ubuntu/+source/rust-framework-lib/0.6.1-3 ),
rust-framework-tool( 0.6.1-2 : rust-framework-tool package : Ubuntu ), and
rust-dmidecode(1.0.0-2 : rust-dmidecode package : Ubuntu)
The transitions above account for further syncs, including spring, gdcm,
pdf2djvu, openboard and popplerkit.framework.
Autopkgtests
libavif(MP #502116), enabling the upstream test suite at build time and adding autopkgtests, written for the MIR and since adopted in Debian 1.4.0-3, so the Ubuntu delta can be droppedlibgav1(MP #507578), new autopkgtests, also for the MIR, forwarded to Debian as salsa MR !4rust-hwlib, a DEP-8 test that mocks the hwapi server so the client can be tested without network access, which was one of the MIR requirementstree, extendingd/t/clitest.mdto cover the SRU fixpy3status, where the clock test itself was the problem and needed a longer timeout alongside the code fix
+1 maintenance, FTBFS and proposed migration
+1 maintenance shift report, 2 to 6 March 2026:
Build failures:
fakeroot(2.1.4-1ubuntu1), which had been diagnosed as a race in 2021. It was not. uutilschmod -Rissues a rawfchmodat2syscall thatLD_PRELOADtools cannot see. I fixed fakeroot to intercept it and filed the real bug against rust-coreutils (LP #2164536), which upstream has since fixed.meson(1.10.1-1ubuntu2), where Boost was linked against the wrong Python ABI. Also reported upstream.gdb-mingw-w64(13.1ubuntu3)unity(7.7.1+26.04.20260306-0ubuntu1)lintian(2.129.0ubuntu2)rpds-pyon riscv64 (0.27.1-2ubuntu3)rust-hwlibwith openssl 4.0 (0.11.1-0ubuntu1)
Proposed migration:
fonts-indicblocked on a component mismatch (2:1.5ubuntu1)libavif, removing the universerav1eandsvt-av1dependencies (MP #498151)py3statushanging on s390x (3.63-2ubuntu1)libheifautopkgtest regression in rust-libheif-sys (LP #2166484)libsndfileagainst the new opus (LP #2138717)rust-bytemuckandrust-bytemuck-deriveon armhf (LP #2138643)rust-scratch(LP #2138718)
Feature freeze exceptions
- LP #2145012:
sync dracut 110-6, granted by the release team with the condition that it
migrate before beta. - LP #2148194:
a newoverlayfs-cryptdracut module for LUKS-encrypted persistent overlays,
part of porting overlayroot to dracut.
Tooling, archive infrastructure and review
ubuntu-dev-tools:reverse-dependssilently printed nothing when all
results were filtered out (0.210).ubuntu-archive-tools: registering a distro team, a prerequisite of the
rust-hwlib MIR (MP #485759).- Reviewed a community contributor’s first FTBFS fix for
unity
(MP #500983),
then prepared a version that fixed all the build failures, crediting their
work in the changelog.
Debian work that (I think) matters for Ubuntu
I list this because a good deal of what I fix for Ubuntu is fixed in Debian, so
that Ubuntu can carry no delta at all. My Debian packages are at
https://qa.debian.org/developer.php?login=nadzeya.
- After the poppler 26.07 transition had gone through Ubuntu, I requested it in
Debian as well and drove it there with the release team. Several reverse
dependencies were fixed in Debian rather than in Ubuntu and then synced back:
popplerkit.framework,openboard,pdf2djvu,gdcmandipe-tools.
Ubuntu came out of the transition carrying less delta than it went in with. tree(Debian #1118451),libavifand
libgav1fixes were forwarded to Debian for the same reason, and the
libavifautopkgtests have since been adopted there.- In the Debian Rust Team I maintain a set of library and binary crates, packaged the Debian way with
debcargo. Ubuntu takes the opposite approach for anything heading for main, vendoring the crate sources into the one source package so that hundreds of individual crates do not each need a MIR. Knowing both models is useful as I think it is what let me update the vendored Rust packages in main,rust-hwlibandrpds-py, and it makes me quick during +1 maintenance on the much larger set of Rust packages in universe, which are debcargo-style and do not vendor at all, such asrust-bytemuck,rust-scratchandrust-libheif-sys.
Areas of work
I work in the Canonical Debcrafters team, mostly on main packages, and in the
Debian Rust Team.
People I have worked with most closely:
- Sponsorship and review: Nick Rosbrook, Sebastien Bacher, Simon Chopin, Lukas
Märdian, Benjamin Drung, Graham Inggs, and Lena Voytek. - Main inclusion: Christian Ehrhardt and the rest of the MIR team, and the
security team. - Uploads outside my own team: Jeremy BĂcha, Gianfranco Costamagna, Vladimir
Petko, Lukas Märdian, and Pragyansh Chaturvedi - Debian: Dmitry Shachnev on
roman-numeralsand the release team on the
poppler transition.
Things I could do better
- Seeds. I understand the mechanism from
rust-hwlib, but the seed change itself was made by my MIR reviewer rather than by me. I would like to own the next one. - Version strings. Three of my uploads needed a sponsor to catch a version mistake, in
plocate,openboardand the firsttreeSRU. None reached the archive, but with upload rights there is no second pair of eyes. - Unfinished work.
libnbd(LP #2143548) has been open since my +1 shift in March, andkicad(LP #2166847) is still open behind an
lto-disabled-listworkaround. - Only one +1 maintenance shift so far, and only three packages SRUed.
Plans for the future
- Take patch pilot and sponsoring rotations, and more +1 maintenance shifts.
Sponsoring others is the main thing I cannot do today. - Keep doing library transitions.
- Finish the
libavifandlibgav1chain sopython3-pilcan build with AVIF
support without an Ubuntu-specific build profile. - Continue improving Rust support in Ubuntu and Debian.
- Broaden my SRU work, and take on network-related packaging.
What I like least in Ubuntu
How scattered the information is. Almost everything a developer needs is public,
which is the important part, but it lives on a different host for every kind of
question, each with its own conventions and none of them talking to each other:
- Launchpad for bugs, uploads, builds and merge proposals
- the transition tracker as its own instance
- pending SRUs
- update excuses on a different host again
- NBS
- Merge-o-Matic
- and Ubuntu sponsorship records, which are hosted by Debian in UDD
There is no single view of what needs my attention, so keeping track means
checking six or seven places by habit and knowing which one answers which
question. I believe that’s a real cost for a newcomer.