I didn't wake up planning to get six pull requests merged. I just wanted to add one missing Go tool to termux/termux-packages. Then I figured, while I'm in here, why not bring the rest of my Go toolkit along too? A few hours and six PRs later, all of them were sitting in main.
Here's how it went down β and what actually shipped.
What Landed
Termux users can now pkg install a proper Go developer toolkit, straight from the official repo:
- goimports 0.49.0 β the tool that quietly fixes your import block, adding what's missing and trimming what isn't used anymore. Learn more β
- golangci-lint 2.13.1 β dozens of Go linters bundled into one fast binary. At 45 MB installed, it's the heavyweight of the group, but worth every megabyte. Learn more β
- air 1.67.4 β live reload for Go apps, so your binary rebuilds and restarts the second you save a file. Learn more β
- gotests 1.9.0 β generates table-driven test scaffolding straight from your source, so you stop typing the same boilerplate. Learn more β
- goreleaser 2.17.1 β packages and ships Go binaries in one command, cross-compilation included. Learn more β
- govulncheck 1.1.4 β scans your code and dependencies for known vulnerabilities. Learn more β
Six packages, one theme: making Termux a real place to write Go.
The Curveball: A Last-Minute Rebase
Right as review was wrapping up, maintainer @robertkirkman asked for something I hadn't planned for: rebase and force-push all six PRs so they'd recompile against the just-released Go 1.27.0. You can see the ask in the goimports thread.
No arguing with that logic β better to ship on the latest compiler than patch it later. I rebased all six branches, force-pushed, and got a quick "Thank you!" in response. Not long after, the merges started coming in one by one.
Proof It's Real
Once everything landed, I ran the most satisfying command in the Termux workflow β pkg show β against all six:
Package: goimports | 0.49.0 | https://pkg.go.dev/golang.org/x/tools/cmd/goimports
Package: golangci-lint | 2.13.1 | https://golangci-lint.run/
Package: air | 1.67.4 | https://github.com/air-verse/air
Package: gotests | 1.9.0 | https://github.com/cweill/gotests
Package: goreleaser | 2.17.1 | https://goreleaser.com
Package: govulncheck | 1.1.4 | https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
Six for six. All installable right now with:
pkg install goimports golangci-lint air gotests goreleaser govulncheck
What I'd Tell Someone Trying This Themselves
Batch related packages together. Reviewers can apply one piece of feedback β like a compiler bump β across the whole set instead of repeating themselves six times.
Move fast on review feedback. The gap between "please rebase" and "rebased and pushed" is often the difference between a PR that merges today and one that sits for a week.
Don't underestimate the boring packages. None of these tools are glamorous. Together, though, they turn a phone into a legitimate Go dev environment.
Thanks to @robertkirkman and the rest of the termux/termux-packages team for the fast, thorough reviews. More packages coming soon.
Working on a Go tool you think Termux is missing? Tell me about it in the comments β I'm always looking for the next PR.
Top comments (0)