IAnswerable

A Dependency Update Routine You'll Keep

10 Mar 2026

Dependency updates fail as a habit for one of two reasons: you do them constantly and every week loses an hour to a broken build, or you never do them and eventually face a security patch that requires jumping three major versions at once. Batch them, test them, ship them — on a schedule, not on panic.

Batch, don’t trickle

Updating one dependency the moment a new version drops means constant context-switching and constant small risk. Instead, batch on a fixed cadence:

# weekly or biweekly, not continuous
npm outdated

Group updates into three buckets, and handle each differently:

Bucket Example Cadence
Patch/minor, no breaking changes expected lodash 4.17.20 → 4.17.21 Batch weekly, low scrutiny
Major version bumps react 17 → 18 Its own PR, read the changelog, budget real time
Security advisories Any CVE Immediate, out of band, skip the batch

Automate the boring bucket

# Dependabot or Renovate config: group patch/minor updates into one weekly PR
# renovate.json
{
  "extends": ["config:base"],
  "packageRules": [
    { "matchUpdateTypes": ["patch", "minor"], "groupName": "routine updates", "schedule": ["before 9am on monday"] },
    { "matchUpdateTypes": ["major"], "groupName": null }
  ]
}

One PR a week with every low-risk update bundled together, tests run automatically, and you review the diff and the CI result — not each package individually. Major versions get their own PR, ungrouped, so they don’t get rubber-stamped alongside twelve unrelated patch bumps.

Never skip the test suite for “it’s just a patch version”

Patch versions aren’t supposed to break your app. They sometimes do anyway — semver is a promise, not a guarantee, and plenty of maintainers ship a breaking fix as a patch by mistake. Run the full suite on every batch, no exceptions:

npm ci && npm test && npm run build

If CI is green, merge. If it’s not, that’s the one package in the batch worth isolating and investigating — not a reason to skip the whole batch going forward.

Security advisories jump the queue

npm audit --audit-level=high

A high or critical advisory doesn’t wait for the weekly batch. Patch it same-day, in its own PR, even if it means testing one dependency in isolation outside your normal rhythm. This is the one case where moving fast is correct — the batching discipline exists to reduce noise, not to slow down an actual vulnerability fix.

Major versions: read the changelog before you touch the lockfile

# don't just run this and hope
npm install react@latest react-dom@latest

Read the migration guide first. Budget real time — a major bump is a small project, not a line item in a routine PR. Do it in isolation, with its own test pass, and be willing to revert if it surfaces problems you didn’t anticipate.

The routine that actually sticks

The goal isn’t zero outdated dependencies. It’s no dependency old enough that updating it becomes a project instead of a routine task.