Skip to content

chore(deps): require a 24-hour minimum release age - #341

Merged
KaiSchwarz-cnic merged 1 commit into
masterfrom
RSRMID-3018/uniform-minimum-release-age
Aug 29, 2026
Merged

chore(deps): require a 24-hour minimum release age#341
KaiSchwarz-cnic merged 1 commit into
masterfrom
RSRMID-3018/uniform-minimum-release-age

Conversation

@KaiSchwarz-cnic

@KaiSchwarz-cnic KaiSchwarz-cnic commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Part of RSRMID-3018.

Why

The daily dependency refresh resolved lockfiles with a 30-minute minimumReleaseAge
while every other install applied pnpm's default of 24 hours. It therefore committed
lockfiles that every consumer then rejected with
ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION for up to a day, and any release triggered in
that window failed through no fault of the change that triggered it. The offending
packages rotated with each run, which made a standing conflict between two jobs look
like a transient.

The escape hatch had been applied unevenly across the organisation: three repositories
set minimumReleaseAge: 0, two carried hand-maintained minimumReleaseAgeExclude
allowlists that had already rotted (both pinned
@team-internet/semantic-release-plugins@1.0.6 by exact version long after that package
moved to 2.3.1, so they no longer matched anything they were written to cover), and the
rest inherited the default and broke.

What this does

Declares one value — 1440 minutes — here and in every other rtldev-middleware
repository, and retires the allowlists.

1440 is pnpm's own default, named explicitly rather than inherited so that it is a
decision which can be reported as drift when it changes. 0 is deliberately not the
answer: this is a supply-chain control, and the reasoning is written into the file so
that the next person under time pressure does not reach for it to make a build go green.

The companion change in rtldev-middleware-shareable-workflows deletes the refresh
job's own --config.minimumReleaseAge=30 rather than correcting the number, so that
both pnpm and npm-check-updates read this file instead. That makes the producer and
the consumer of the lockfile the same threshold by construction — and since the
constraint is "published before now minus the threshold", and now only moves forward, a
lockfile the refresh resolves can never be too fresh for a later install.

Enforced from here on by scripts/node-policy.sh in the workspace repository, which
also forbids minimumReleaseAgeExclude.

Verification

pnpm install --frozen-lockfile passes in this repository under the new threshold.

@KaiSchwarz-cnic
KaiSchwarz-cnic merged commit c7f80f0 into master Aug 29, 2026
2 of 7 checks passed
@KaiSchwarz-cnic
KaiSchwarz-cnic deleted the RSRMID-3018/uniform-minimum-release-age branch August 29, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant