Prevent maven-release-plugin from reformatting attributes on project element

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Prevent maven-release-plugin from reformatting attributes on project element

Eric Lilja
Hi, we noticed that maven-release-plugin changes formatting of the project
element, it writes the element as a single line, removing existing line
breaks on attributes. Is it possible to make it preserve original
formatting?

We're using maven-release-plugin version 3.0.0-M1

- Eric L
Reply | Threaded
Open this post in threaded view
|

Re: Prevent maven-release-plugin from reformatting attributes on project element

Enrico Olivelli
Il giorno mar 4 feb 2020 alle ore 16:17 Eric Lilja
<[hidden email]> ha scritto:
>
> I didn't say the generated xml was invalid. It's a nuisance for us since
> the formatting conflicts with our corporate settings, so we are seeing
> unwelcome noise git diffs after releases.

I see.
I am not aware of any such feature.
If you have some tool that pretty prints XML according to your
comporate rules you could invoke it in completionGoals [1]

Enrico

[1] http://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html#completionGoals

>
> - Eric L
>
> On Tue, Feb 4, 2020 at 4:08 PM Enrico Olivelli <[hidden email]> wrote:
>
> > Eric
> > What's your use case?
> > As far as it creates a valid XML with the same meaning this should not be a
> > problem
> >
> > Enrico
> >
> > Il Mar 4 Feb 2020, 15:22 Eric Lilja <[hidden email]> ha scritto:
> >
> > > Hi, we noticed that maven-release-plugin changes formatting of the
> > project
> > > element, it writes the element as a single line, removing existing line
> > > breaks on attributes. Is it possible to make it preserve original
> > > formatting?
> > >
> > > We're using maven-release-plugin version 3.0.0-M1
> > >
> > > - Eric L
> > >
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Prevent maven-release-plugin from reformatting attributes on project element

Eric Lilja
>
> I see.
> I am not aware of any such feature.
> If you have some tool that pretty prints XML according to your
> comporate rules you could invoke it in completionGoals [1]
>

That could be a workaround for now. Thanks!

- Eric L


>
> Enrico
>
> [1]
> http://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html#completionGoals
>
Reply | Threaded
Open this post in threaded view
|

Re: Prevent maven-release-plugin from reformatting attributes on project element

Eric Lilja
Sure! Today I did a release in a single module project. The unwanted diff
was that the release plugin changed

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

to

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

So it discarded our formatting (which had a linebreak after the
xmlns:xsi-attribute and aligned xsi:schemaLocation-attribute, column-wise,
with the xmlns-attribute, in case formatting is lost in the email) and put
all attributes on the same line as its containing element (element
"project", in this case).

I don't know if it happens only for this element or not, in our pom-files,
that is usually the only element that has so many attributes that our
formatter line splits it.

We're trying to make sure formatting is always correct in our code-base, to
get rid of unwanted noise in git diffs to make reviews smaller, that's why
this is a slight nuisance to us.

The release was done on Linux machine. All files have unix-style line
breaks, indentation is four spaces.

- Eric L

On Tue, Feb 4, 2020 at 6:47 PM Hervé BOUTEMY <[hidden email]> wrote:

> can you provide an example of reformatting, please?
>
> in every case I saw until now, there is no reformatting, so I suppose
> you're
> in a case I did not expect
>
> Regards,
>
> Hervé
>
> Le mardi 4 février 2020, 16:24:54 CET Eric Lilja a écrit :
> > > I see.
> > > I am not aware of any such feature.
> > > If you have some tool that pretty prints XML according to your
> > > comporate rules you could invoke it in completionGoals [1]
> >
> > That could be a workaround for now. Thanks!
> >
> > - Eric L
> >
> > > Enrico
> > >
> > > [1]
> > >
> http://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.ht
> > > ml#completionGoals
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Prevent maven-release-plugin from reformatting attributes on project element

rfscholte
The transformation is triggered by one of the subclasses of AbstractRewritePomsPhase[1]
In 2.5.3[2] the plugin was relying on JDOM with quite some hacks to make it work. This is now extracted so it is possible to switch to a different parser (JDom is not an active project anymore).
Here's where you need to find the cause and solution.

thanks,
Robert

[1] https://github.com/apache/maven-release/blob/master/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
[2] https://github.com/apache/maven-release/blob/maven-release-2.5.3/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
On 4-2-2020 19:35:27, Eric Lilja <[hidden email]> wrote:
Sure! Today I did a release in a single module project. The unwanted diff
was that the release plugin changed



xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

to




So it discarded our formatting (which had a linebreak after the
xmlns:xsi-attribute and aligned xsi:schemaLocation-attribute, column-wise,
with the xmlns-attribute, in case formatting is lost in the email) and put
all attributes on the same line as its containing element (element
"project", in this case).

I don't know if it happens only for this element or not, in our pom-files,
that is usually the only element that has so many attributes that our
formatter line splits it.

We're trying to make sure formatting is always correct in our code-base, to
get rid of unwanted noise in git diffs to make reviews smaller, that's why
this is a slight nuisance to us.

The release was done on Linux machine. All files have unix-style line
breaks, indentation is four spaces.

- Eric L

On Tue, Feb 4, 2020 at 6:47 PM Hervé BOUTEMY wrote:

> can you provide an example of reformatting, please?
>
> in every case I saw until now, there is no reformatting, so I suppose
> you're
> in a case I did not expect
>
> Regards,
>
> Hervé
>
> Le mardi 4 février 2020, 16:24:54 CET Eric Lilja a écrit :
> > > I see.
> > > I am not aware of any such feature.
> > > If you have some tool that pretty prints XML according to your
> > > comporate rules you could invoke it in completionGoals [1]
> >
> > That could be a workaround for now. Thanks!
> >
> > - Eric L
> >
> > > Enrico
> > >
> > > [1]
> > >
> http://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.ht
> > > ml#completionGoals
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Prevent maven-release-plugin from reformatting attributes on project element

Eric Lilja
In reply to this post by Eric Lilja
Ah, yes, I do remember the changed indentation of the tag element in the
past, put I don't recall seeing that lately. Have to check tomorrow when I
get to the office.

Bernd: Which version of the maven-release-plugin did you use?

- Eric L

On Tue, Feb 4, 2020 at 8:30 PM Bernd Eckenfels <[hidden email]>
wrote:

> Hm, for me it keeps the line breaks, it does however change the intention
> for the tag element. I thought this was configurable, but can't find it at
> the moment.
>
> Anyway this is an open (and rejected) issue:
> https://issues.apache.org/jira/browse/MRELEASE-1008
>
> Gruss
> Bernd
> --
> http://bernd.eckenfels.net
> ________________________________
> Von: Eric Lilja <[hidden email]>
> Gesendet: Tuesday, February 4, 2020 3:21:51 PM
> An: Maven Developers List <[hidden email]>
> Betreff: Prevent maven-release-plugin from reformatting attributes on
> project element
>
> Hi, we noticed that maven-release-plugin changes formatting of the project
> element, it writes the element as a single line, removing existing line
> breaks on attributes. Is it possible to make it preserve original
> formatting?
>
> We're using maven-release-plugin version 3.0.0-M1
>
> - Eric L
>