chore(renovate): compute the PR Age column ourselves
All checks were successful
Translations / check (pull_request) Successful in 5s
CI / ci (pull_request) Successful in 5m33s

The Age badge was already there — config:recommended pulls in
mergeConfidence:age-confidence-badges — it just rendered as a grey
UNKNOWN. Fetching the badge SVGs from developer.mend.io directly shows
why: Mend's Merge Confidence index covers Maven Central (truth 2y,
junit-jupiter 1y, kotlin-stdlib 1y / confidence high / passing 99%) but
has nothing for anything served off Google's Maven repo, so every
androidx and compose coordinate comes back UNKNOWN. That's the bulk of
this project, and no token changes it — the JSON API behind the badges
answers 401 for everyone, npm included.

So take the age from the one place that does know. Renovate derives
release timestamps itself to evaluate minimumReleaseAge, and Google
Maven serves last-modified on its POMs, so newVersionAgeInDays is
populated where Mend is blank. Redefining the column costs one template
and makes the number agree with the cooling-off tiers it's read against.

Mend keeps the Confidence column, which still resolves for the Maven
Central half — Kotlin, Gradle, AGP, the test stack — and those are the
bumps where a compatibility signal is worth having. Dropped the
all-badges preset added in the previous commit: Adoption and Passing
have the same Google Maven gap, so they'd have been two more empty
columns. A trailing packageRule pins the same column set for every PR,
including the Gradle wrapper and Actions bumps that Mend's preset never
touched and which showed no age at all.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-25 22:00:56 +02:00
parent f36a74246b
commit 98a3335975

View File

@@ -5,14 +5,25 @@
"config:recommended",
// chore(deps): … — match the repo's conventional-commit style.
":semanticCommits",
// Adds the Age / Adoption / Passing / Confidence columns to the PR table
// (Mend's Merge Confidence badges; free, no token — Renovate only embeds
// the badge URLs and the browser loads them when the PR is viewed).
// Covers the maven datasource, i.e. everything in libs.versions.toml;
// the github-actions datasource has no badges, so those PRs stay plain.
"mergeConfidence:all-badges",
],
// `config:recommended` brings in mergeConfidence:age-confidence-badges, whose
// Age column is a Mend badge. Mend's Merge Confidence index only covers Maven
// Central: org.jetbrains.kotlin, junit, truth, turbine et al resolve, but
// every androidx/compose artifact lives on Google's Maven repo and comes back
// as a grey UNKNOWN — i.e. most of this project. Renovate already knows the
// real answer, since it derives release timestamps itself for the
// minimumReleaseAge rules below (Google Maven serves `last-modified` on its
// POMs), so take the age from there and leave Mend to the Confidence column,
// which still carries signal for the Maven Central half.
prBodyDefinitions: {
Age: "{{#if releaseTimestamp}}{{{newVersionAgeInDays}}} d{{else}}unknown{{/if}}",
},
// Default heading links to the Merge Confidence docs; this column is ours now.
prBodyHeadingDefinitions: {
Age: "Age",
},
// No automerge: a dependency bump goes through the same review (and, for
// anything touching the build, the same on-device check) as a feature
// before it can ride a release — see docs/RELEASING.md and the
@@ -83,5 +94,15 @@
],
groupName: "test dependencies",
},
// Last word on the PR table. The merge-confidence preset sets prBodyColumns
// from inside a packageRule of its own, and only for the datasources Mend
// supports — so a plain top-level prBodyColumns would lose to it for maven
// deps, and the Gradle wrapper / Actions / container bumps would keep the
// default columns and show no age at all. A rule declared after it wins,
// and gives every PR the same table.
{
matchPackageNames: ["*"],
prBodyColumns: ["Package", "Type", "Change", "Age", "Confidence"],
},
],
}