Skip to content

chore(deps): group Renovate updates into fewer PRs - #69

Merged
sergej-koscejev merged 6 commits into
mainfrom
claude/renovate-updates-grouping-bc103d
Oct 21, 2026
Merged

sergej-koscejev merged 6 commits into
mainfrom
claude/renovate-updates-grouping-bc103d

Conversation

@sergej-koscejev

@sergej-koscejev sergej-koscejev commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Summary

Renovate PRs, as listed on the dependency dashboard (#68):

- 19 branches, one per dependency or version line
+ non-major dependencies        Gradle 8.x, Kotlin, BCV, foojay 0.x, Guava, commons-io, xmlunit, JUnit 5.x, artifact-transforms
+ Gradle (major)                Gradle 9 + foojay 1
+ test frameworks (major)       JUnit 6 + Mockito 5
+ GitHub Actions                all actions and the CI JDK, majors included
+ MPS                           compile version, non-major
+ MPS (major)                   compile version, major
+ MPS test versions             patches of supportedMpsVersion.<line> + any prerelease update

All groups run on the monthly schedule, except "MPS test versions", which runs at any time: prerelease builds are
deleted from the repository after a few weeks.

The supported MPS versions move to one property per release line, so Renovate can track each entry with a plain
regex manager. Its versioning uses a compatibility group, so each entry only gets patches of its own line:

-supportedMpsVersions=2023.2.2,2024.1.6,2025.1.4,2026.1.1
+supportedMpsVersion.2023.2=2023.2.2
+supportedMpsVersion.2024.1=2024.1.6
+supportedMpsVersion.2025.1=2025.1.4
+supportedMpsVersion.2026.1=2026.1.1
-mpsPrereleaseVersion=263.6259.45
+supportedMpsPrereleaseVersion=263.6259.45

Per-platform tasks and configurations are named by release line, and the prerelease platform is named Prerelease, so
the names stay the same across updates:

-testMps2025.1.4   testMigrateForMps2025.1.4   generate…WithMps2025.1.4
+testMps2025.1     testMigrateForMps2025.1     generate…WithMps2025.1
-testMps263.6259.45
+testMpsPrerelease

Gradle fails if a value is not from its release line, for example supportedMpsVersion.2025.1=2024.1.6.

MpsPlatform gets a name field. mpsVersion stays the full version, because it's passed to the launcher. The CI
matrix comes from the property keys. A new release line is one new property, for example
supportedMpsVersion.2026.2=2026.2.

The launcher's Mockito cap [4.11.0,5) ("does not support Java 8") is gone: the launcher builds with Java 17.

Evidence

  • Renovate: renovate-config-validator --strict passes. Local renovate --platform=local --dry-run=lookup:

    Before: 19 branches on the dashboard; supportedMpsVersions not tracked.

    After: 7 PR branches, plus lock file maintenance, which has nothing to change. MPS test versions:

    Update MPS test versions
      com.jetbrains:mps 2023.2.2 -> 2023.2.3
      com.jetbrains.mps:mps-prerelease 263.6259.45 -> 263.6259.106
    

    With supportedMpsPrereleaseVersion set to an older major (262.9437.420, only for the test), the prerelease goes to
    263.6259.106 in the same PR. 2024.1, 2025.1 and 2026.1 get no updates: no newer patches, and no EAP or RC builds.

  • Gradle: tasks --all lists testMps2023.2 … testMps2026.1 and testMpsPrerelease in integration-tests,
    migrate and remigrate. The configurations resolve com.jetbrains:mps:2023.2.2, 2026.1.1 and
    mps-prerelease:263.6259.45. :remigrate:testMps2026.1 and
    :integration-tests:executeTestExitCodeNoArgumentsWithMps2026.1 pass. testMpsPrerelease depends only on
    prerelease tasks.

  • CI matrix: the new jq step gives ["2023.2","2024.1","2025.1","2026.1","Prerelease"].

Merge Danger

Blast Radius: CI

The CI job names and the per-version Gradle task names change, for example testMps2025.1.4 → testMps2025.1 and testMps263.6259.45 → testMpsPrerelease. If
branch protection names the matrix jobs instead of the build job, update it. Published artifacts don't change.

The launcher builds with a Java 17 toolchain, so the cap for Java 8 no
longer applies.
Each supported MPS release line now has its own property,
supportedMpsVersion.<line>=<version>, instead of one comma-separated
list. Per-platform tasks and configurations are named by release line
(for example testMps2025.1), so their names stay the same across patch
updates. MpsPlatform keeps the full version for the launcher.
Group non-major Gradle updates, Gradle majors, test framework majors,
GitHub Actions (majors included), the MPS compile version, and the MPS
test versions. Track the supportedMpsVersion.<line> properties with a
custom manager whose versioning keeps each entry on its own release
line. The prerelease gets any update in the same PR. Disable lock file
maintenance, as the repository has no lock files.
…rsion

Matches the naming of the supportedMpsVersion.<line> properties.
The prerelease platform's tasks and configurations are named Prerelease
(for example testMpsPrerelease), so their names stay the same across
prerelease updates. The integration test matrix is keyed by platform
name, like the task names. Gradle checks that each
supportedMpsVersion.<line> value is from its release line.

Renovate lock file maintenance is left at its default.
Prerelease builds are deleted from the repository after a few weeks, so
waiting for the monthly schedule could leave the build on a deleted
prerelease.
@sergej-koscejev
sergej-koscejev enabled auto-merge (squash) October 21, 2026 20:48
@sergej-koscejev
sergej-koscejev merged commit c92b3f7 into main Oct 21, 2026
8 checks passed
@sergej-koscejev
sergej-koscejev deleted the claude/renovate-updates-grouping-bc103d branch October 21, 2026 21:06
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