Skip to content

Instantly share code, notes, and snippets.

View derezzolution's full-sized avatar

dissolve into pixels derezzolution

View GitHub Profile
@derezzolution
derezzolution / do-you-actually-need-semantic-versioning.md
Created May 28, 2026 03:11
Why most software doesn't need semantic versioning — and when it genuinely does. I break down the standard arguments for semver, find that most don't survive scrutiny, then pressure-test my own conclusions until the real boundary emerges: it's not about apps vs. libraries, it's about whether you control the environment your software runs in.

Do You Actually Need Semantic Versioning?

I've been thinking about version numbers lately. Specifically, why we default to semantic versioning for everything when a lot of software would be better served by a build number, a commit hash, and release notes that someone actually bothered to write.

I worked through this with a friend, then pressure-tested the conclusions. The picture is more nuanced than I initially thought — but the core thesis survived, with some honest caveats.

Let me walk through it.

The standard arguments (and why I'm not convinced)

@derezzolution
derezzolution / android-gitea-runner-arm64.md
Created May 24, 2026 03:56
Building Android APKs on arm64 (Raspberry Pi) with Gitea Actions and rootless Podman — including the aapt2 x86_64 workaround

Building Android APKs on a Raspberry Pi with Gitea Actions and rootless Podman

A working pattern for self-hosted Android CI on arm64 hardware. This setup builds release APKs for Pixel-class devices without an emulator, runs entirely in rootless Podman under a Quadlet-managed systemd user unit, and works around the fact that Google still ships an x86_64-only aapt2 binary in the Android SDK build-tools.

Tested on a Raspberry Pi 5 (16 GB, NVMe) running Debian 13 trixie, with Gitea 1.24+ and gitea-runner 1.0.x. The pattern should generalize to any arm64 Linux host running rootless Podman.

The problem

Self-hosting Android CI on arm64 hardware sounds simple — install the SDK, run Gradle, profit. In practice there are several non-obvious obstacles:

@derezzolution
derezzolution / mergechapters.py
Last active January 15, 2024 15:52 — forked from cliss/mergechapters.py
Merge Files with Chapters
import datetime
import json
import os
import subprocess
import sys
#############
### USAGE ###
#############