Why I should be running Debian unstable right now

Thu, 15 Aug 2024 23:41:27 -0400
debian, debian-planet, packaging, python-planet, upgrade

So a common theme on the Internet about Debian is so old. And right, I am getting close to the stage that I feel a little laggy: I am using a bunch of backports for packages I need, and I'm missing a bunch of other packages that just landed in unstable and didn't make it to backports for various reasons.

I disagree that "old" is a bad thing: we definitely run Debian stable on a fleet of about 100 servers and can barely keep up, I would make it older. And "old" is a good thing: (port) wine and (any) beer needs time to age properly, and so do humans, although some humans never seem to grow old enough to find wisdom.

But at this point, on my laptop, I am feeling like I'm missing out. This page, therefore, is an evolving document that is a twist on the classic NewIn game. Last time I played seems to be #newinwheezy (2013!), so really, I'm due for an update. (To be fair to myself, I do keep tabs on upgrades quite well at home and work, which do have their share of "new in", just after the fact.)

New packages to explore

Those tools are shiny new things available in unstable or perhaps Trixie (testing) already that I am not using yet, but I find interesting enough to list here.

backdown: clever file deduplicator

broot: a TUI file manager with ncdu and magit-like features

codesearch: search all of Debian's source code (tens of thousands of packages) from the commandline! (see also dcs-cli, not in Debian)

dasel: JSON/YML/XML/CSV parser, similar to jq, but different syntax, not sure I'd grow into it, but often need to parse YML like JSON and failing

gomuks and ement.el: new Matrix clients

fyi: notify-send replacement

git-subrepo: git-submodule replacement I am considering

gpg-from-sq: Sequoia (Rust!) wrapper for GnuPG, might be able to replace everything but gpg-agent! currently at least missing send-keys, card-status, performance improvements on key listings, and quick-gen-key, but those can all be accessed through the gpg-from-gpg, and all work in progress

gtklock: swaylock replacement with bells and whistles, particularly interested in showing time, battery and so on

hyprland: possible Sway replacement, but there are rumors of a toxic community (rebuttal, I haven't reviewed either in detail), so approach carefully)

kooha: simple screen recorder with audio support, currently using wf-recorder which is a more.. minimalist option

linescroll: rate graphs on live logs, mostly useful on servers though

memray: Python memory profiler

ruff: faster Python formatter and linter, flake8/black/isort replacement, alas not mypy/LSP unfortunately, designed to be ran alongside such a tool, which is not possible in Emacs eglot right now, but is possible in lsp-mode

sfwbar: pretty status bar, may replace waybar, which i am somewhat unhappy with (my UTC clock disappears randomly)

shoutidjc: streaming workstation, currently using butt but it doesn't support HTTPS correctly (update: not so exciting, no GUI, no great error reporting - failed to fail with incorrect password)

spytrap-adb: cool spy gear

syslog-summary: log summarizer, one of many of the kind, but made by Lars, so it must be good

trippy: trippy network analysis tool, kind of an improved MTR

yubikey-touch-detector: notifications for when I need to touch my YubiKey

New packages I won't use

Those are packages that I have tested because I found them interesting, but ended up not using, but I think people could find interesting anyways.

kew: surprisingly fast music player, parsed my entire library (which is huge) instantaneously and just started playing (I still use Supersonic, for which I maintain a flatpak on my Navidrome server)

mdformat: good markdown formatter, think black or gofmt but for markdown), but it didn't actually do what I needed, and it's not quite as opinionated as it should (or could) be)

Backports already in use

Those are packages I already use regularly, which have backports or that can just be installed from unstable:

asn: IP address forensics

diffr: improved git diffs - i typically have this in magit, but this is useful when calling git diff directly in a shell, which i still do sometimes - riff is similar but not in Debian. there's also git-delta that's only in trixie, but it also supports ripgrep which is pretty cool

markdownlint: markdown linter, I use that a lot

poweralertd: pops up "your battery is almost empty" messages

sway-notification-center: used as part of my status bar, yet another status bar basically, a little noisy, stuck in a libc dep update

tailspin: used to color logs

Out of date packages

Those are packages that are in Debian stable (Bookworm) already, but that are somewhat lacking and could benefit from an upgrade.

firmware-iwlwifi: out of date, can install from unstable

fuzzel: log level noises, paste support and my scripts in ~/bin should be patched to use --cache

foot: log level noises, quotes selection, keyboard selection mode

nomacs: non-trivial backport, out of date version in sid

pandoc: 3.0 is ridiculously huge, but particularly remove spaces after list marker

podman: better systemd integration

pubpaste: out of date, can install from unstable

tremotesf: out of date backport

undertime: out of date, can install from unstable

yt-dlp: out of date, can install from unstable

Last words

If you know of cool things I'm missing out of, then by all means let me know!

That said, overall, this is a pretty short list! I have most of what I need in stable right now, and if I wasn't a Debian developer, I don't think I'd be doing the jump now. But considering how easier it is to develop Debian (and how important it is to test the next release!), I'll probably upgrade soon.

Previously, I was running Debian testing (which why the slug on that article is why-trixie), but now I'm actually considering just running unstable on my laptop directly anyways. It's been a long time since we had any significant instability there, and I can typically deal with whatever happens, except maybe when I'm traveling, and then it's easy to prepare for that (just pin testing).