deployment

  • React 17 is a release with no features

    A major version whose entire purpose is to let two versions run on one page. And an event delegation change that breaks anything mixing React with jQuery.

  • The on-call rotation for a team of four

    One person had the phone for two years. A rotation of four is a week in four, which is enough to be tiring and not enough to build…

  • Docker 20.10 and the cgroup transition

    A release with rootless mode and cgroup v2, and a container that reported the host memory limit. Where the numbers come from and which are lies.

  • Artifacts between jobs are uploads, and they are not free

    Jobs run on separate machines with nothing shared, so passing a build between them means uploading it and downloading it again. Measuring is the only way to know…

  • A workflow is YAML and the runner is empty every time

    A long-lived CI server accumulates state that the pipeline quietly depends on — a global package, a cached credential, a directory somebody created in 2017. A hosted runner…

  • Preloading is a restart, not a cache warm

    Preloaded files are compiled once at server start and are fixed until php-fpm restarts, which makes a deploy a restart rather than a reload. A restart drops in-flight…

  • The migration that squashed two hundred files

    A test suite spending ninety seconds replaying six years of schema history. Squashing is a good idea with two failure modes worth knowing first.

  • Elasticsearch aliases, from the first index

    A mapping change usually cannot be applied in place, so it means a new index — and if the application names the index directly, that is a coordinated…

  • Composer 2 changed the lock file, and a team upgrades together

    October brought a rewritten solver and parallel downloads, and the lock file format changed in a way that produces a confusing diff when two people are on different…

  • Composer 2 is not a minor upgrade

    A dependency resolver rewritten and parallel downloads, so install went from ninety seconds to eleven. And a plugin API that broke three packages.