Hooks on mvn release:prepare

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

Hooks on mvn release:prepare

Enrico Olivelli
Hello,
I am going to propose a new release procedure in Apache ZooKeeper project
in the direction of using the Maven Release Plugin.
Usually with the Maven Release Plugin you are performing to tasks:

mvn release:prepare -> change version + create tag
mvn release:perform  -> create final artifacts and deploy

in the specific case of Apache ZooKeeper we have a C-client that  contains
C sources under a mavenized project, so in src/c or something like that,
not so important.

The important fact is that I have the 'version' in pom.xml and in the C
client (make/configure based build).
I would like to introduce an hook that during "release:prepare" while
changing the version in all of the pom.xml files it changes the version
inside the C project.
I just need a way to invoke a bash script with a 'sed' command that has the
new VERSION variable in a shell environment.
I can also write some java code or whatever else....

But I need some "hook" during release:prepare.

I can't find any documentation about this feature other then
"prepationGoals" but it is not documented and there is no good example on
the Internet
https://maven.apache.org/maven-release/maven-release-plugin/examples/run-goals-before-commit.html

Any idea or working example ?

Thanks
Enrico
Reply | Threaded
Open this post in threaded view
|

Re: Hooks on mvn release:prepare

Anthony Whitford
Wouldn’t it make more sense to hook into the generate-sources or process-sources phase?

I would also think that the need to do that token replacement to set the version applies for any build — not just the release process.


> On Oct 3, 2019, at 8:13 AM, Enrico Olivelli <[hidden email]> wrote:
>
> Hello,
> I am going to propose a new release procedure in Apache ZooKeeper project
> in the direction of using the Maven Release Plugin.
> Usually with the Maven Release Plugin you are performing to tasks:
>
> mvn release:prepare -> change version + create tag
> mvn release:perform  -> create final artifacts and deploy
>
> in the specific case of Apache ZooKeeper we have a C-client that  contains
> C sources under a mavenized project, so in src/c or something like that,
> not so important.
>
> The important fact is that I have the 'version' in pom.xml and in the C
> client (make/configure based build).
> I would like to introduce an hook that during "release:prepare" while
> changing the version in all of the pom.xml files it changes the version
> inside the C project.
> I just need a way to invoke a bash script with a 'sed' command that has the
> new VERSION variable in a shell environment.
> I can also write some java code or whatever else....
>
> But I need some "hook" during release:prepare.
>
> I can't find any documentation about this feature other then
> "prepationGoals" but it is not documented and there is no good example on
> the Internet
> https://maven.apache.org/maven-release/maven-release-plugin/examples/run-goals-before-commit.html
>
> Any idea or working example ?
>
> Thanks
> Enrico


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

Reply | Threaded
Open this post in threaded view
|

Re: Hooks on mvn release:prepare

Enrico Olivelli
Il gio 3 ott 2019, 17:53 Anthony Whitford <[hidden email]> ha scritto:

> Wouldn’t it make more sense to hook into the generate-sources or
> process-sources phase?
>

In this case I can't because C sources must be buildable even without maven


Enrico


> I would also think that the need to do that token replacement to set the
> version applies for any build — not just the release process.
>
>
> > On Oct 3, 2019, at 8:13 AM, Enrico Olivelli <[hidden email]> wrote:
> >
> > Hello,
> > I am going to propose a new release procedure in Apache ZooKeeper project
> > in the direction of using the Maven Release Plugin.
> > Usually with the Maven Release Plugin you are performing to tasks:
> >
> > mvn release:prepare -> change version + create tag
> > mvn release:perform  -> create final artifacts and deploy
> >
> > in the specific case of Apache ZooKeeper we have a C-client that
> contains
> > C sources under a mavenized project, so in src/c or something like that,
> > not so important.
> >
> > The important fact is that I have the 'version' in pom.xml and in the C
> > client (make/configure based build).
> > I would like to introduce an hook that during "release:prepare" while
> > changing the version in all of the pom.xml files it changes the version
> > inside the C project.
> > I just need a way to invoke a bash script with a 'sed' command that has
> the
> > new VERSION variable in a shell environment.
> > I can also write some java code or whatever else....
> >
> > But I need some "hook" during release:prepare.
> >
> > I can't find any documentation about this feature other then
> > "prepationGoals" but it is not documented and there is no good example on
> > the Internet
> >
> https://maven.apache.org/maven-release/maven-release-plugin/examples/run-goals-before-commit.html
> >
> > Any idea or working example ?
> >
> > Thanks
> > Enrico
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Hooks on mvn release:prepare

rfscholte
It looks a bit like MRELEASE-798[1] and MRELEASE-962[2]
For the 3.0.0 already a lot of refactoring has been done, so it should be  
easier to add such a feature.
I haven't thought about the implementation details, only that some hook or  
extension should be able to become part of the release process.

Robert

[1] https://issues.apache.org/jira/browse/MRELEASE-798
[2] https://issues.apache.org/jira/browse/MRELEASE-962

On Thu, 03 Oct 2019 18:59:57 +0200, Enrico Olivelli <[hidden email]>  
wrote:

> Il gio 3 ott 2019, 17:53 Anthony Whitford <[hidden email]> ha  
> scritto:
>
>> Wouldn’t it make more sense to hook into the generate-sources or
>> process-sources phase?
>>
>
> In this case I can't because C sources must be buildable even without  
> maven
>
>
> Enrico
>
>
>> I would also think that the need to do that token replacement to set the
>> version applies for any build — not just the release process.
>>
>>
>> > On Oct 3, 2019, at 8:13 AM, Enrico Olivelli <[hidden email]>  
>> wrote:
>> >
>> > Hello,
>> > I am going to propose a new release procedure in Apache ZooKeeper  
>> project
>> > in the direction of using the Maven Release Plugin.
>> > Usually with the Maven Release Plugin you are performing to tasks:
>> >
>> > mvn release:prepare -> change version + create tag
>> > mvn release:perform  -> create final artifacts and deploy
>> >
>> > in the specific case of Apache ZooKeeper we have a C-client that
>> contains
>> > C sources under a mavenized project, so in src/c or something like  
>> that,
>> > not so important.
>> >
>> > The important fact is that I have the 'version' in pom.xml and in the  
>> C
>> > client (make/configure based build).
>> > I would like to introduce an hook that during "release:prepare" while
>> > changing the version in all of the pom.xml files it changes the  
>> version
>> > inside the C project.
>> > I just need a way to invoke a bash script with a 'sed' command that  
>> has
>> the
>> > new VERSION variable in a shell environment.
>> > I can also write some java code or whatever else....
>> >
>> > But I need some "hook" during release:prepare.
>> >
>> > I can't find any documentation about this feature other then
>> > "prepationGoals" but it is not documented and there is no good  
>> example on
>> > the Internet
>> >
>> https://maven.apache.org/maven-release/maven-release-plugin/examples/run-goals-before-commit.html
>> >
>> > Any idea or working example ?
>> >
>> > Thanks
>> > Enrico
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>

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