Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Maven

  • ... should really drop Maven 2.x support (was it 10 years?), so maven-compat must go.

...

  • ... should really make up the 10 year lag, and stop depending on maven-compat stuff. Baseline for plugins should be Maven 3.12.x 5+ line.
  • We must forget the "ill fated" Maven 3.0.x line, not only due org.sonatype/org.eclipse Resolver problem (m-artifact-transfer kinda covers it), but also due it's "sealed" Plexus/Sisu implementation and ancient version. We must comprehend, that we have no resources to support 10+ years spanning compatibility. Move on.
  • (to be reviewed) mark Maven core dependencies as scope=provided

Note about plugins carrying custom lifecycle mappings: while Plexus XML will work across 3.2.5-3.99 versions, converting lifecycle mapping to JSR330 is not so simple: there was a type erasure change that renders mappings in plugin between 3.2.5 and 3.3.9 broken (well, not trivial to migrate). In this case, simplest is to just "avoid" the breakage, and raise the bar on that plugin to 3.3.9+

See here:

Maven SCM

Maven SCM is bloated too big given our resources and contains many providers we cannot test, given they bridging for are non OSS SCMs.

Proposal: keep only those SCM providers that are OSS and not obsolete (like cvs...) in Maven project, and provide a clear path for SCM integrators . Propose to maintain their providers in their community. Proposed plan:

Phase 1

  • mark as @Deprecated all except following providers: git (gitexe, jgit), svn (svnexe), mercurial
    • maven-scm-provider-accurev

    • maven-scm-provider-bazaar
    • maven-scm-provider-clearcase
    • maven-scm-provider-integrity
    • maven-scm-provider-jazz
    • maven-scm-provider-perforce
    • maven-scm-providers-cvs
    • maven-scm-providers-standard (skim POM)
    • maven-scm-provider-starteam
    • maven-scm-provider-synergy
    • maven-scm-provider-tfs
    • maven-scm-provider-vss
  • release as-is as next minor version = 1.12.0 https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317828&version=12350600

...

  • drop all deprecated modules/providers (incuding svnkit)
    • write down how to move these to a new home?
  • up major version?: 2.0.0
  • make it Java 8?
  • provide "clear path" (documentation, repository, mini-site?) for SCM integrators (prev codebase will be still available under release tag done in phase 1)
    • Jira
      serverASF JIRA
      serverId5aa69414-a9e9-3523-82ec-879b028fb15b
      keySCM-1002
      prepare orphaned Git branches for each removed SCM provider with the code as it was before
  • Get rid of Plexus DI


Maven Wagon

...

Phase 2

...

  • up major version (2.x)
  • Drop ServiceLocator, as it currently forces us to use bad practices: create mutable components, and is just cruft (member population is "circumvented" by init method, no way for ctor injection). Anyway, anyone integrating resolver w/o guice should just manually craft the "component graph", basically all they need is a "factory pattern" w/o the half-ass DI-like cruft in SL (that forces how components are created), see
    Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyMRESOLVER-157
  • make all things proper ctor injection and final (lot of code breakage)

...

org.eclipse.aethereclipse.aetherorg.
Maven version lineJava levelPlexus XMLSisu indexResolverLatest Maven release
Java package (code)Artifact GA (dependency)Version
3.0.x5YesNoorg.sonatype.aetherorg.sonatype.aether:aether-api1.113.0.5, 2013-02-19
3.1.x5YesYesorg.eclipse.aetherorg.eclipse.aether:aether-api0.9.0.M23.1.1, 2013-09-17
3.2.x6YesYesorg.eclipse.aetherorg.eclipse.aether:aether-api1.0.0.v201405183.2.5, 2014-12-14
3.3.x7YesYesorg.eclipse.aether:aether-api1.0.2.v201501143.3.9, 2015-11-10
3.5.x7YesYesorg.apache.maven.resolver:maven-resolver-api1.1.13.5.4, 2018-06-21
3.6.x7YesYesorg.eclipse.aetherorg.apache.maven.resolver:maven-resolver-api1.4.13.6.3, 2019-11-19
3.8.x7YesYesorg.eclipse.aetherorg.apache.maven.resolver:maven-resolver-api1.6.3

3.8.6, 2022-06-118, ?

3.9.x ?8YesYesorg.eclipse.aetherorg.apache.maven.resolver:maven-resolver-api1.8.x1.9.x (1.9.18)3.9.6, ?
4.0.x (old + new Maven API)8?YesYesorg.eclipse.aetherorg.apache.maven.resolver:maven-resolver-api2.x2.x (compat with 1.9.x)?
4.1.x (only Maven API)?YesYesorg.eclipse.aetherorg.apache.maven.resolver:maven-resolver-api2.x (direct resolver access removed)?
5.x ??No ?Yesorg.apache.maven.resolverorg.apache.maven.resolver:maven-resolver-api3.x (direct resolver access removed)?

Note: this table contains latest releases only and just for quick reference. For details history of Maven, go to Maven Releases History page.

...

Phase 2 (post release)

  • drop all deprecated modules/providers/classes
  • up major version?
  • make it Java 8?
  • Get rid of Plexus DI
  • Get rid of Doxia Logging

...

Phase 2 (post release)

  • drop all deprecated modules/providers/classes
  • up major version?
  • make it Java 8?
  • Get rid of Plexus DI
  • Get rid of Doxia Logging

...