Skip to content

Instantly share code, notes, and snippets.

@gnodet
Last active May 13, 2026 10:00
Show Gist options
  • Select an option

  • Save gnodet/bbde716c5283c05d535d388f563761d2 to your computer and use it in GitHub Desktop.

Select an option

Save gnodet/bbde716c5283c05d535d388f563761d2 to your computer and use it in GitHub Desktop.
Maven: master vs maven-4.0.x branch analysis (2026-05-13)

Maven: master vs maven-4.0.x branch analysis (2026-05-13)

Maven: master vs maven-4.0.x Branch Analysis

Generated on 2026-05-13

Overview

master maven-4.0.x
Version 4.1.0-SNAPSHOT 4.0.0-SNAPSHOT
Unique commits 390 294
Files changed 3,132 (+18,923 / -16,190)
Merge base cb8701e73d

Most maven-4.0.x commits are backports of master fixes (often with [maven-4.0.x] or (#XXXX) (#YYYY) dual-PR references). The substantive differences fall into the categories below.

Features only on master (not backported)

  1. Model version 4.2.0Create a new modelVersion 4.2.0 (#2475) + POM mixins support (#1209) + mixin validation (#11463) + mvnup tests for 4.2.0 (#11453)
  2. Maven Resolver 2.0.16 — master uses Resolver 2.x line while 4.0.x stays on 2.0.14
  3. Collapse maven-executorFeat: collapse maven-executor and apply fixes (#11976)
  4. Export scope package from resolver-api 2.x606f9477e0
  5. Type derive (simpler)#11380 — simplified type derivation
  6. Processor path conflict resolutionfix: preserve processor path types across conflict resolution (#11805)
  7. Fail on legacy config in modular projects#11702
  8. Source tracking unificationUnify source tracking with SourceHandlingContext (#11632)
  9. SLF4J JDK Platform Logging Integrationb018c4d16f
  10. Cache architecture improvementsImprove Maven cache architecture for better memory efficiency and performance (#2506)
  11. Smart project schedulingenhance MultiThreadedBuilder with smart project scheduling (#10893)
  12. Injector.dispose()Implement Injector.dispose() and add cleanup test (#10903)
  13. ProblemCollector filtering[MNG-8449] Add Filtering Support (#10900)
  14. Snapshot filter for version rangesAdd an unconditional ns version range filter (#2566)
  15. Deploy build POM control[MNG-8568] Add maven.deploy.buildPom property (#2571)
  16. Deprecation documentation — several deprecation rationale docs (Language.SCRIPT, XmlNode constants, getPomFile, scriptSourceDirectory)
  17. serialVersionUID removalRemoving all serialVersionUID (#11174)
  18. Test framework migration — Hamcrest/AssertJ to JUnit 5 assertions (#10986)

Items only on maven-4.0.x (not on master)

  1. Release commitsprepare release maven-4.0.0-rc-4, maven-4.0.0-rc-5
  2. InputLocation/InputSource factory methodsAdd InputLocation/InputSource factory methods and make classes final for 4.0.0-rc-6 (#11538) — backward-compatible variant of master's 731700abc6 (cache architecture improvements), which made constructors package-private. The 4.0.x version keeps constructors public but deprecated, and makes the classes final. No port to master needed — master already has the stricter version.
  3. Release-drafter configuration — 4.0.x-specific release note configuration
  4. StackOverflow fix variantFix #11009: Prevent StackOverflowError in parent POM resolution (#11234) is a backport of master's #11106. Same cycle-detection approach (track visited parents via parentSourceChain). The diff noise comes from pre-existing structural differences between branches (parent parameter passing style, mixin support on master only). No action needed — both branches have the fix.

Key takeaway

master is the active development branch targeting Maven 4.1.0, with significant new features (model 4.2.0, POM mixins, resolver 2.0.16, executor consolidation, cache improvements, smart scheduling). maven-4.0.x is a stabilization branch for the 4.0.0 release line — most bug fixes flow from master to 4.0.x as backports, but the new features stay on master only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment