Re: Maven 4.0.0 namespace from an XML perspective

Chris Lafren <[email protected]>
Newsgroups gmane.comp.jakarta.turbine.maven.devel
Message-ID <8QC0ocCe6fmLgaIKgbTJKKT6yme2ttItyLLh5kPjM41WpJAoQ9L5-jEVEiXXC-BzQGp_QSP8A_6gVHbV3PN8pLNd3EdKxRULNI9MiCannA8=@proton.me>
Hi Martin,
thanks for your insights.

I don't understand  where that "been there for 4 years" argument comes from.
NB: Someone in the vote thread also said so.

Herve Boutemy mentioned 4.0.0-alpha-6 [1] but alpha-6 is not listed on the releases page:
https://maven.apache.org/docs/history.html
Based on the alpha-5 and alpha-7 release dates, I can assume it has been there for at most 3 years.

According to the GitHub commits between alpha-5 & alpha-7, it's even less than that (the alpha-6 release commit was on June 23rd 2023)
https://github.com/apache/maven/compare/maven-4.0.0-alpha-5...maven-4.0.0-alpha-7
Does it predate alpha-6? Even alpha-2 was released less than 4 years ago.

While the change may have been present for X years in non-GA releases, it doesn't mean it's been widely used.
I don't know about the rest of the Maven community but I usually stay away from non-final versions, especially for work-related tasks which is where I mostly use Maven.
But I'm just a Maven user and not a Maven developer.

However, I'm more familiar with XML. That's why the namespace change ticks me off.

Regards,
Chris

[1] https://lists.apache.org/thread/p59nlz2onjkszskxblo5vrcb7chjmnwl

On Saturday, April 4th, 2026 at 1:17 PM, Martin Desruisseaux via dev <[email protected]> wrote:

> Hello Chris
> 
> Thanks for your input. For going straight to the point:
> 
> Le 04/04/2026 à 14:24, Chris Lafren a écrit :
> 
> > Aside from the modelVersion inference that was mentioned at the start of the vote thread [2], are there more reasons that "justify" the namespace change?
> 
> I'm not aware of any valid technical justification other than history.
> Even the `<modelVersion>` element is not strictly necessary since, to my
> knowledge, Maven 4 only adds a few new elements without changing the
> semantic of Maven 3 elements. We could infer the model version by
> checking whether the POM contains any of those new elements. The schema
> location is another way as you mentioned.
> 
> I believe that the main reason for changing the namespace is technical
> debt: Maven 4 did this change early in alpha phase, has been distributed
> with this change for the last 4 years, and no IDE (NetBeans, IntelliJ,
> Eclipse) complained. Therefore, there are reluctance to do a last minute
> change. The argument that changing the namespace is not how XML works
> may be considered as theoretical if we consider that no-one should try
> to read a POM itself without using Maven API. Personally, I challenge
> the idea that no-one should read a POM with standard tools, even if the
> information that we get this way is incomplete. We may want to read a
> POM for other purposes that building the project. For example, and IDE
> may want to read the POM, add a `<dependency>` element and rewrite the
> POM with only that change.
> 
> In my opinion, this thread is not really a vote between 2 equivalent
> technical solutions. I rather see the vote as a choice between
> conformance with the way that XML works (option B), and avoiding to
> disturb the Maven 4 ecosystem after 4 years of practicing option A. I
> have no objective way to said which one of the two sides, technical
> versus legacy, should prevail.
> 
>      Martin
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.