Application - `dotnet` packageset - Mateus Morais

Intro

I, Mateus Morais, apply for upload rights for the dotnet packageset.

Packageset Definition

The packageset definition should include:

  • dotnet8
  • dotnet9
  • dotnet10
  • dotnet11 (coming out around sep/oct)

Note: New .NET source packages are included in the distro every year, as .NET major versions are released yearly. They are expected to follow the naming convention dotnet$version, where $version is incremented by one every year.

As we service monthly updates to .NET packages across all currently supported Ubuntu releases, starting with jammy, I would need permissions to upload to jammy and later.

Contact Information:

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.
  • I’d like to be able to sponsor the work of others

Who I am

Hello! My name is Mateus, and I’m a Software Developer based in Natal, Brazil. I have been in the software space professionally for about 10 years now, but my passion for software development and technology in general goes way back.

My first contact with software development was in 4th grade, when I first started tinkering with HTML/JavaScript. By 6th grade, I started taking my first steps into the Linux world with Kurumin Linux (a popular Brazilian distro at the time) and Ubuntu. From there, my passion for technology only grew, becoming a central part of my high school and university studies.

I have a bachelor’s degree in Computer Engineering from the Federal University of Rio Grande do Norte. In 2018, I was a Google Summer of Code student with the FreeBSD Foundation, working on a project to port the .NET toolchain and PowerShell to FreeBSD. Although this was my first experience working on the .NET toolchain, which I enjoyed, I have been a .NET developer working on .NET-based projects professionally for about 10 years (even during university).

My Ubuntu story

My Ubuntu story begins around 2007. I was in 6th grade when my Informatics teacher lent me his Ubuntu 6.06 CD to try out at home. I still remember seeing the old-school GNOME desktop running on the Live CD for the first time in my home desktop PC with its CRT monitor, as I slowly embarked on a journey to learn more about operating systems, since all I knew up until that point was Windows.

I became a loyal ShipIt “customer”, requesting Ubuntu, Kubuntu, and Edubuntu Live CDs every semester! It was a very exciting moment getting the CDs delivered and opening the package to the smell of fresh CDs and Ubuntu stickers. My mom ended up giving my collection away to our local public library before I could get a nice picture of them.

Fast forward some years, after being involved in the .NET toolchain work with the Google Summer of Code project, I was fortunate to return to it by joining Canonical as a Software Engineer on the Runtimes team, maintaining the .NET toolchain. As I mentioned during one of my hiring process interviews, the companies I worked for previously were all Windows shops, so working here was just the excuse I needed to go back to Ubuntu :slight_smile:

I started contributing to Ubuntu and pushing things to the distro 3 years ago, as part of my work at Canonical. It has been a very rewarding experience to leave my own mark in the distro I started my Linux journey with some 19 years ago! During this time, I have been learning and improving as an Ubuntu developer from my peers and the community through the sponsorships I received. I’m thankful to each one of them.

Examples of my work / Things I’m proud of

.NET-related work

NEW package uploads

General fixes

SRUs

  • dotnet SRUs generally happen when a monthly release is not a security release. When it is, I still prepare the packages in a private PPA and hand them off to the security team for release.
  • [2026-03] .NET 10.0.105/10.0.5 March 2026 out-of-band servicing release (LP: #2144328)
  • [2026-01] .NET 10.0.102/10.0.2 January 2026 servicing release (LP: #2138378)
  • [2026-01] .NET 9.0.113/9.0.12 January 2026 servicing release (LP: #2138931)
  • [2026-01] .NET 8.0.123/8.0.23 January 2026 servicing release (LP: #2138326)
  • [2026-01] .NET 10.0.101/10.0.1 December 2025 servicing release (LP: #2134505)
    • This was an interesting example of an SRU that didn’t go as planned at first. The package FTBFS in -proposed after the new year due to a time-dependent version calculation code in the .NET source tree. A new upload with a patch fixing the version calculation was made and SRU progressed normally.
  • [2025-11] .NET 8.0.122/8.0.22 November 2025 servicing release (LP: #2130895)
  • [2025-11] .NET 9.0.112/9.0.11 November 2025 servicing release (LP: #2130894)
  • [2025-11] .NET 10.0.100/10.0.0 November 2025 GA release (LP: #2130891)
  • [2024-09] Enabling of s390x and ppc64el architectures for dotnet8 on jammy (LP: #2080023)
    • This involved bootstrap work, which required coordination with Archive Admins for Stage 1 package uploads and with the Launchpad team to trigger builds with bootstrapping enabled.
  • [2024-07] Enabling of ppc64el architecture for dotnet8 on noble (LP: #2075185)
    • This involved bootstrap work, which required coordination with Archive Admins for Stage 1 package uploads and with the Launchpad team to trigger builds with bootstrapping enabled.

Other distro work

Most of my non-dotnet contributions come from +1 maintenance rounds, Foundations merge parties, and proposed migration fixes. Here’s some of that work outlined:

General fixes

  • [2026-02] gpsshogi FTBFS with Boost 1.88 (LP: #2133808)
  • [2025-08] laserboy (universe) FTBFS with Boost 1.88 (LP: #2120885)
  • [2025-09] node-cipher-base (universe): autopkgtest regression on s390x: endianness issue (LP: #2122052)
  • [2025-09] libnss-mysql (universe) FTBFS with GCC 15 (LP: #2121894)
  • [2025-02] libuv1 proposed-migration s390x autopkgtest failure fix (LP: #2099827)
  • [2025-02] libgetdata FTBFS against numpy2 (LP: #2098512)
  • [2024-12] onnxruntime FTBFS on amd64 and arm64 (LP: #2092286)
  • [2024-12] sysdig FTBFS on ppc64el and riscv64 (LP: #2092154)
  • [2023-09] python-duniterpy fix to unblock python-libnacl 2.1.0-1 proposed-migration (LP: #2037646)
  • [2023-09] ivar 1.4.2+dfsg-2 FTBFS fix (LP: #2037769)
  • [2023-09] parsinsert (universe) FTBFS on amd64 and arm64 (LP: #2037643)

Merges

  • [2025-11] flashrom (main) 1.6.0-2 merge into resolute (LP: #2131044)
  • [2025-07] gdb (main) 16.3-1 merge into questing (LP: #2118491)
  • [2025-02] avahi (main) 0.8-16 merge into plucky (LP: #2098794)
  • [2025-02] cdebconf (main) 0.277 merge into plucky (LP: #2098790)
  • [2025-02] feersum (universe) 1.504-1 merge into plucky (LP: #2098381)
  • [2024-12] nsis (universe) 3.10-2 merge into plucky (LP: #2092306)
  • [2024-12] nagios-nrpe (universe) 4.1.3-1 merge into plucky (LP: #2092292)
  • [2024-12] nix (universe) 2.24.9+dfsg-2 merge into plucky (LP: #2091907)
  • [2024-12] ivar (universe) 1.4.3+dfsg-2 merge into plucky (LP: #2091875)
  • [2024-12] avahi (main) 0.8-14 merge into plucky (LP: #2090963)
  • [2024-12] cdebconf (main) 0.274 merge into plucky (LP: #2090950)
  • [2024-12] mailcap (main) 3.74 merge into plucky (LP: #2090933)
  • [2024-12] newt (main) 0.52.24-4 merge into plucky (LP: #2090841)
  • [2024-07] cdebconf (main) 0.272 merge into oracular (LP: #2073893)
  • [2024-07] tlp (main) 1.6.1-2 merge into oracular (LP: #2073295)
  • [2024-07] mailcap (main) 3.72 merge into oracular (LP: #2073150)
  • [2024-02] newt (main) 0.52.24-2 merge into noble (LP: #2054152)
  • [2023-10] open-iscsi (main) 2.1.8-2 merge into noble (LP: #2040361)
  • [2023-12] newt (main) 0.52.24-1 merge into noble (LP: #2045576)
  • [2023-07] adduser (main) 3.137 merge into mantic (LP: #2026199)
  • [2023-05] adduser (main) 3.134 merge into mantic (LP: #2021498)

Transitions

  • [2024-12] dino-im fix for libwebrtc-audio-processing-dev library transition (LP: #2092230)

Syncs

  • [2025-12] Sync fastcdr 2.3.4-1 (universe) (LP: #2134236)
  • [2025-10] Sync laserboy 2024.03.08+dfsg-3 (universe) (LP: #2130010)
  • [2025-09] Sync audacious-plugins 4.4.2-3 (universe) (LP: #2121949)
  • [2025-03] Sync libgetdata 0.11.0-15 (universe) (LP: #2101154)
  • [2025-02] Sync cruft-ng 0.9.65 (universe) (LP: #2098412)
  • [2025-02] Sync e2guardian 5.5.6-1 (universe) (LP: #2098409)
  • [2025-02] Sync greetd 0.10.3-3 (universe) (LP: #2098399)
  • [2025-01] Sync onnxruntime 1.19.2+dfsg-4 (universe) (LP: #2094817)
  • [2024-12] Sync cowsql 1.15.6-1 (universe) (LP: #2092304)
  • [2023-09] Sync debmutate 0.68 (universe) (LP: #2037445)
  • [2023-09] Sync parsinsert 1.04-15 (universe) (LP: #2037470)

MIRs

Reviews

+1 Maintenance

For reference, here’s my Ubuntu Sponsorship Miner page and Launchpad Uploaded Packages page.

Areas of work

  • I mainly focus on the .NET packages as part of my daily work. That work involves keeping the Ubuntu packages in sync with upstream, coordinating security releases with upstream (Microsoft) and our security team, maintaining our .NET snaps and our .NET *craft integration points (plugins and extensions).
  • I also help maintain Foundations-owned packages, as I’m part of that team. That work involves mostly contributing to the Foundations Merge parties during the development cycle.
  • I contribute +1 maintenance shifts, so I also touch universe packages in general.

Things I could do better

  • More documentation work, especially around the various .NET tools and integrations available in the distro (something I’m looking to focus on this cycle).
  • Being better at keeping track of new bug reports and triaging them.

Plans for the future

General

Getting upload rights will help me achieve the following goals I have in mind:

  • Help unblock my colleagues with reviews and sponsorships.
  • Have more productive +1 shifts, where my contributions can land in the distro quicker.
  • Become more involved in the overall distro development work whenever and wherever possible.

What I like least in Ubuntu

  • I’d like to see more upstream adoption of snaps and the Snap Store
  • The unpredictability and flakiness of the infrastructure is another point of contention for me, as it can occasionally significantly obstruct my progress.

1 Like

+1 for Mateus’s application for upload rights to the dotnet packageset.

For more than three years, Mateus has worked closely with the Ubuntu Security Engineering team to deliver timely security updates for .NET. To ensure that we can release these updates on, or as close as possible to, Patch Tuesday (when they are publicly released by Microsoft) we rely on Mateus to coordinate and manage the building, testing, debugging, and preparation of new upstream .NET releases.

As part of these responsibilities, Mateus leads internal synchronization and status meetings and represents Canonical externally as part of the .NET partnership involving Microsoft, Canonical, and other distributions and organizations.

Mateus also handles bugs, questions, and issues reported by the community through email, Launchpad, and GitHub, consistently responding quickly and thoughtfully. Overall, Mateus is the go-to for the .NET packageset in Ubuntu and has proven himself to be a great steward of its maintenance and development.

I have sponsored a number of dotnet SRU uploads for Mateus. Those were of good quality without any major issues. He also reviewed my gdb merges. In addition to managing dotnet uploads, Mateus participates in a wider distro activities, such as merges and +1 maintenance.

Dotnet toolchain is a fast moving target with monthly releases for each package that needs quick packaging and updates to keep Ubuntu up-to-date.

Ubuntu as a whole will benefit from Mateus not having to wait for the sponsorship of dotnet updates, though sometimes delay between upload and accepting it can expose upstream bugs (such as the December 2025 update with a date-dependent calculation in the code).

I endorse Mateus for upload rights for dotnet.

Sponsoring feedback

I have sponsored 10 uploads for Mateus, and I think his work has been high quality. I do not remember any particular issues that came up in review, but I do recall Mateus always being receptive to feedback and a good communicator.

I definitely trust Mateus with upload rights for the dotnet packages.

Specific experiences of working together

I have sponsored dotnet SRUs like this one:

https://bugs.launchpad.net/ubuntu/+source/dotnet6/+bug/2065300

A few merges:

Including this one for Avahi, where Mateus carefully sifted through the many security patches to determine what was still needed, and dropped some other unnecessary delta:

I thought this was a strong example of his work.

In addition to sponsoring, I have reviewed dotnet SRUs which are nicely prepared and detailed with the testing, new changes, etc. This attention to detail always gives me confidence when accepting a dotnet SRU.

Areas of improvement and next steps

I think Mateus should pursue further upload rights, and he is well on his way. To meet this goal, Mateus should try to broaden the packages he works on, probably through +1 maintenance for example.

I fully support Mateus’ application for upload rights for the dotnet packageset.

In the three years we have worked together, I have sponsored twelve uploads for Mateus. About half of these have been for dotnet, and the other half have been for +1 maintenance and merges.

I believe Mateus is ready for dotnet uploads right now, and MOTU also!

I am happy to endorse Mateus for upload rights for the .NET packageset.

Whilst I haven’t worked with Mateus directly on the packaging itself, I have worked closely with him in my role as an Archive Admin, particularly during the bootstrap of new .NET releases into the Ubuntu archive.

Throughout that work, Mateus has consistently been clear about what he needs, proactive in discussing any potential issues, and quick to address any questions or concerns raised during the review process. The only times I’ve needed to be involved have been where Archive Admin privileges were required - everything else has been well prepared and executed by Mateus (which, as an AA, is always a welcome surprise). :smile:

The .NET bootstraps have been consistently well planned, communicated, and executed. Given their complexity and the amount of coordination they require, I have been particularly impressed by how smoothly they have gone. Granting Mateus upload rights for the .NET packageset would remove unnecessary bottlenecks and be a significant benefit both for the Foundations team and for Ubuntu as a whole.

Mateus has demonstrated the technical ability, judgment, and collaborative approach that I would expect from an Ubuntu uploader. Based on my interactions with him, I have every confidence that he will exercise these privileges responsibly, and that he’ll continue to seek input whenever appropriate. Mateus is an excellent engineer and a pleasure to work with.