I don't know what Sonatype have decided with respect to polyglot.

>From my personal PoV I see polyglot more as an experiment to find the best
v5 pom format rather than an on-going support for multiple formats.

Maven is supposed to be an opinionated build tool, with opinionated being a
feature...

If Maven has no opinion on how you format its own project descriptor then I
see that as a bad thing. There should be one true format and Maven should
fight you all the way if you attempt to use a different format.

Now should that format be XML? Only if it is the best format.
JSON? Only if it is the best format.
A custom DSL? Only if it is the best format.

Maven 1 had the project model version 3 which was XML based
Maven 2 & 3 has the project model version 4 which is XML based
Maven 4... well we are not there yet, but if we are to add some of the
features we'd like to see then it will need project model 5.

The issue with switching to project model 5 is that changing the project
model is something we (as a project) have not found particularly easy...
additionally there are a lot of other build tools out there that have
written their own parsers for the version 4 model, and we need to retain
some level of backwards compatibility with those project.

There is a massive repository of artifacts with version 4 project models
published... is the metadata in those models correct? not always, but stuff
mostly just works for most people most of the time... and to fix where it
doesn't we'd need a version 5 pom which existing clients will not be able
to read...

All this points to the "obvious" solution of deploying two poms to the
repository.... a v5 pom (in whatever format that is) and a v4 pom for the
existing consumers of the central repository generated from the v5 pom by
an automated process using a clearly defined set of rules.

You might ask what is stopping us from pursuing this solution? Well what
happens when you need something else that the v5 pom does not provide? Now
you need to deploy a v4, v5 and v6 project model for each deployment so
that the clients who can support the v5 features can still get those
features... a couple more rounds of that and suddenly everyone is going
ape-shit because deploying a simple 1kb .jar file requires sending 50
different versions of the project model to the repository just so that
somebody who's stuck with an ANT+Ivy build can add the dependency to fix
the bug in the legacy code that they have to maintain.

So what we need is a v5 format that allows for extensions without forcing a
format change. Keep in mind that not all pom consumers are written in Java
or even running on a JVM, so we cannot force consumers to download a shim
parser layer, etc (might be able to allow downloading an XSLT stylesheet to
convert down to the required format... but that would force XML on
consumers which may not be what we want to do.

TL;DR

IMHO Polyglot is/was a way to try and easily explore different POM formats
with a view to deciding on the next format, once we have decided on the
next format Polyglot's reason for existence would be gone and therefore
there would be no need to continue it.

Others may feel differently, the above is just my personal opinion.

On 1 August 2012 08:41, Ralf Zahn <ralf.z...@ars.de> wrote:

> Hi,
>
> I am currently studying what's new in Maven 3.0 (and will be introduced
> with 3.1). Polyglot Maven should be one of the new features that got a
> really good feedback by the community (I guess).
> Unfortunately, it seems to be stopped (polyglot.sonatype.org forwards to
> sonatype.org without any notice). I cannot find anything about it in JIRA.
> So what is the current state about this topic? Any official statement by
> sonatype?
>
> Regards,
> Ralf
>
>
> ARS Computer und Consulting GmbH, http://www.ars.de
> Ridlerstrasse 55, 80339 Muenchen, Deutschland
> Handelsregister Muenchen, HRB 101829, USt-ID: DE 155 068 909
> Geschaeftsfuehrer:
> Michael Arbesmeier, Kai-Uwe Rommel, Roland Schock, Joachim Gucker
>
>

Reply via email to