Application - Go package set - Anshul Singh

Introduction

I am applying for the golang package set, which includes the core Go toolchain and the associated ecosystem of Go packages.

Contact Information

Motivation

The Go ecosystem is a critical component of modern infrastructure. Managing this toolchain effectively requires dedicated oversight to handle:

  • Version Transitions: Ensuring smooth transitions between upstream Go releases (e.g., Go 1.27 and beyond) while maintaining compatibility across the archive.
  • Dependency Management: Go packages often involve complex dependency chains. Having upload rights to the golang-* namespace allows me to maintain these dependencies efficiently without constant reliance on sponsorship.
  • Bug Triage and Security: Proactively addressing CVEs and build failures that affect packages relying on the Go toolchain.

Having worked closely with the Ubuntu toolchain team, I have been actively involved in maintaining Go-related packages, triaging bugs, and managing transitions. My goal is to ensure the stability and reliability of the Go ecosystem within Ubuntu, providing timely updates and security fixes for the community.

Scope of Packages

I am requesting upload rights for the golang package set, which includes:

  • The Go toolchain components (golang, golang-defaults).
  • The golang-github-*-dev and golang-*-dev namespaces.
  • Related utility libraries and tools frequently packaged within the ecosystem.

Experience and Background

  • Active Contributions: I have been working with the Ubuntu toolchain team, specifically focusing on Go package maintenance and bug triaging.
  • Tooling Knowledge: Familiarity with the dh-golang packaging workflow, debhelper, and the specific needs of Go’s go.mod and module system within the Debian/Ubuntu archive.
  • Collaboration: I regularly coordinate with other maintainers and teams to ensure that uploads align with the release schedule and archive-wide requirements (e.g., transition testing).

Summary of Contributions

I have been actively involved in the maintenance of the Go toolchain and the broader Ubuntu archive. Below is a summary of my contributions, split between Go-specific work and wider archive maintenance.

Go Contributions

I have focused on keeping the Go toolchain and Go package ecosystem in Ubuntu buildable, current, and useful for teams depending on it.

Go Toolchain Transitions

  • Go 1.25 transition: Managed the transition in Ubuntu by preparing the new toolchain, coordinating reverse dependency rebuilds, identifying failing packages, and working through fixes for affected packages such as delve, gopls, and x-tools.
  • Go 1.26 transition: Managed the transition in Ubuntu with the same archive-wide process: updating the toolchain, validating golang-defaults, reviewing reverse dependency failures, filing or fixing bugs, and following migration status until blockers were resolved.
  • Reverse dependency fixes: Fixed over 30 build failures across reverse dependencies during Go transitions, with work spanning compiler changes, test regressions, vendored dependency issues, and packages that required updates for new Go behavior. Also raise upstream bugs occasionally e.g. cmd/link: R_X86_64_PC32 against _cgo_getstackbound cannot be used in -buildmode=c-shared with -Wl,-Bsymbolic-functions (regression in 1.27) · Issue #80632 · golang/go · GitHub

Go SRUs and Backports

  • Go 1.24 and 1.25 backports: Handled backports to Jammy, Noble, and Plucky for teams relying on the Go toolchain and container stack. LP: #2103780 and LP: #2139254.

Non-Go Archive Contributions

Outside the Go package set, I have contributed to general archive maintenance, +1 maintenance, FTBFS fixes, syncs, merges, and autopkgtest regression fixes.

+1 Maintenance

  • Participated in +1 maintenance work by investigating migration blockers, fixing build failures, and following up on autopkgtest regressions across the archive. Reports: week 6 2025, week 28 2025
  • Used +1 maintenance work to improve my understanding of archive-wide transitions, release pocket behavior, proposed migration, britney output, and dependency interactions outside the Go ecosystem.

Archive Maintenance and Bug Triage

  • console-setup (LP: #2098981): Merged console-setup 1.237 into Questing from Debian unstable, preserving Ubuntu delta and resolving the tracking bug.
  • python-cobra (LP: #2097249): Fixed Plucky autopkgtest failures by adding a patch for the GPR copy issue with Python 3.13.
  • llama.cpp (LP: #2157811): Fixed autopkgtest regressions caused by network requests in the upstream test-arg-parser, unblocking migration for llama.cpp and ggml.

Plans for the future

  • Continue serving as the primary maintainer for Go toolchain transitions, ensuring timely updates for each new release.
  • Improve autopkgtest coverage across the golang-* namespace to catch regressions earlier in the build cycle.
  • Streamline Go transitions especially wrt statically linked packages and transitive dependencies, I am already working on this.
  • Move to native FIPS provided by Go instead of the patch mechanism that we use currently.

Things I could do better

  • Documentation: I plan to improve the public-facing documentation for the Go toolchain.
  • Communication: During large transitions, I aim to provide more frequent and granular status updates to affected teams.
  • Upstream involvement: I plan to increase my direct involvement in the Debian Go team’s upstream processes to ensure tighter alignment and reduce synchronization overheads.

Acknowledgement

I am familiar with the Ubuntu Code of Conduct and the Ubuntu Developer Membership Board processes. I am committed to maintaining high-quality standards and collaborating openly with the rest of the team.

I look forward to your feedback and guidance on this application.

Endorsements and Comments

For those of you who wish to endorse my application, please use the template below:

## Sponsoring feedback

* Please fill us in on your shared experience.
  * How many packages did you sponsor? A list of sponsored packages can generated [via UDD here](https://udd.debian.org/cgi-bin/ubuntu-sponsorships.cgi)
  * 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.*

## Areas of improvement and next steps

What is the journey you see ahead of the applicant, the next steps they should take, the next things they likely have to learn and the next mountains to climb?