Hi Elliotte,
Thank you for your elaboration! It didn't click together for me earlier
but I think I now better understand your concern; this sentence
summarises it for me: "A group element is still a group element."
As far as I know, being able to change namespaces was never the goal of
separating build and consumer POM. The goal was to be able to evolve the
schema of the POM that a developer uses to build the project, without
affecting those that consume the project. I think we could have done
that without changing XML namespaces. And I fully agree with Elliotte:
if we revert that change before Maven 4.0.0, it will be a lot easier
than trying to repair this after releasing 4.0.0.
I know we aren't voting on this (yet). Nevertheless, I would say it's
better to ship Maven 4.0.0 a bit later but in a good shape, than
shipping it early with a known large defect.
Thanks,
Maarten
On 14/02/2026 23:46, Elliotte Rusty Harold wrote:
On Sat, Feb 14, 2026 at 8:25 PM Romain Manni-Bucau
<[email protected]> wrote:
Hi
My 2cts would be
1. this is the whole goal of the consumer pom work did in maven 3 so the
correct phrasing is "we must come with a new namespace", what is also true
is "we must support maven 4.0.0 model version and older namespace" => we
are good
No, that is the concern and that is not a resolution. The goal is to
be able to use XML tools like XPath and XSLT to process pom files,
both inside and outside Maven itself. By changing the namespace this
becomes immensely more difficult because instead of adding a few new
elements it's like we threw away all the existing elements and
replaced every one with a new element.
But this is not what we have done, or at least not what we should do.
A group element is still a group element. A dependency element is
still a dependency element. And so forth. These elements haven't
changed so their names shouldn't have changed, and that includes the
namespace.
Many developers still confuse namespaces with schema versions, but
that is not how namespaces were designed to work. In general the
namespace should not change simply because a new version of a
vocabulary has been released. In Maven's case that's what modelVersion
is for. Releasing a new version of a vocabulary does not justify
changing the namespace, and there is a large cost associated with
doing so.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]