WEB DEVELOPMENT · 18 MAR 2023 · READ TIME: 9 MIN
The dependency update that breaks production on a Friday
Automated dependency update tools, which open a pull request whenever a package has a new version available, are a genuinely good practice for keeping a codebase current and patched. Left to auto-merge without review, they also have a specific, well-documented talent for introducing a subtly breaking change on exactly the day, often a Friday afternoon, when the fewest people are available to catch and fix it before it matters.
The mechanism isn't bad luck, it's a mismatch between how semantic versioning is supposed to work and how it actually gets applied in practice: a package's minor or patch version bump is supposed to be safe by convention, and in practice, dependencies at every level of a chain occasionally ship a breaking change under a version number that claimed it wouldn't.
The practice that prevents the Friday incident: automated update PRs get created automatically and reviewed manually before merge, never auto-merged directly to production, with any update touching a package the application depends on heavily getting deployed to a staging environment and given real usage time before it reaches production, however minor its version bump claimed to be.
This adds a small amount of friction to what automated tooling promised would be frictionless. It's a reasonable trade against the alternative, a breaking dependency update auto-merging into production on a Friday afternoon with nobody watching, which is a specific, recurring, and entirely preventable category of incident.
Nikunj Chugh
Growth systems architect: AI automation, media buying, web & SEO.