You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Ian Boston <ie...@tfd.co.uk> on 2013/09/10 18:14:45 UTC

Tooling to help with releases from within a source tree.

Hi,
I am wondering if there is tooling available in maven to assist with
this the following scenario.

I have a source tree releasing multiple artifacts, all on different
release cycles, semantically versioned and depending on one another in
a tree.

After one item is released all references to it are set to the release
version, and its version is set to the next SNAPSHOT. Only when a
change is made are upstream poms updated to the SNAPSHOT version.

Is there an existing plugin that will tell what needs to be released
and what doesn't based on the multiproject dependency tree ?

Better still, is there something I can just ask

" release everything that needs to be released to allow artifact X to
be released "

of

That would be excellent.

Best Regards
Ian

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: Tooling to help with releases from within a source tree.

Posted by Ian Boston <ie...@tfd.co.uk>.
Hi,
Thank you for sharing. I like some of the things you do in the script, like
squashing the commits.
Since no one responded I ALS wrote some tooling that takes the output of
dependency:tree from multiple projects, merges it, and given a target
artefact writes a bash script for all SNAPSHOT dependencies using mvn. To
release, the script is run. I will ask if it can be shared, at the moment I
can't share the code, it's closed source. Perhaps the description will help
someone.
Ian

On Tuesday, October 15, 2013, Curtis Rueden wrote:

> Hi Ian,
>
> Sorry for the delay in reply.
>
> > I have a source tree releasing multiple artifacts, all on different
> > release cycles, semantically versioned and depending on one another in
> > a tree.
>
> My group has a very similar situation -- multiple different source trees,
> actually. I don't know of any tooling to do what you ask. But we built some
> simple tooling to assist us in making rapid releases.
>
> A shell script which uses the maven-release-plugin but with some features
> specific to our projects:
>
> https://github.com/scijava/scijava-common/blob/master/bin/release-version.sh
>
> Instructions on using it:
> https://github.com/imagej/imagej/blob/master/RELEASES.md
>
> We are firm believers in "release early, release often" (or as Jeff Atwood
> of StackOverflow fame puts it: "Go that way, really fast" [1]). So it is
> vital that the release process be as simple as possible, so we can do
> chained releases "up the tree" as needed very quickly.
>
> I suppose the bigger your project tree gets, the more your hypothetical
> "release everything that needs to be released" tooling could become a
> life-saver. But it's also a very high-level operation with really big
> potential ramifications if misused, then, too.
>
> Regards,
> Curtis
>
> [1] http://www.codinghorror.com/blog/2010/09/go-that-way-really-fast.html
>
>
> On Tue, Sep 10, 2013 at 11:14 AM, Ian Boston <ieb@tfd.co.uk <javascript:;>>
> wrote:
>
> > Hi,
> > I am wondering if there is tooling available in maven to assist with
> > this the following scenario.
> >
> > I have a source tree releasing multiple artifacts, all on different
> > release cycles, semantically versioned and depending on one another in
> > a tree.
> >
> > After one item is released all references to it are set to the release
> > version, and its version is set to the next SNAPSHOT. Only when a
> > change is made are upstream poms updated to the SNAPSHOT version.
> >
> > Is there an existing plugin that will tell what needs to be released
> > and what doesn't based on the multiproject dependency tree ?
> >
> > Better still, is there something I can just ask
> >
> > " release everything that needs to be released to allow artifact X to
> > be released "
> >
> > of
> >
> > That would be excellent.
> >
> > Best Regards
> > Ian
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org<javascript:;>
> > For additional commands, e-mail: users-help@maven.apache.org<javascript:;>
> >
> >
>

Re: Tooling to help with releases from within a source tree.

Posted by Curtis Rueden <ct...@wisc.edu>.
Hi Ian,

Sorry for the delay in reply.

> I have a source tree releasing multiple artifacts, all on different
> release cycles, semantically versioned and depending on one another in
> a tree.

My group has a very similar situation -- multiple different source trees,
actually. I don't know of any tooling to do what you ask. But we built some
simple tooling to assist us in making rapid releases.

A shell script which uses the maven-release-plugin but with some features
specific to our projects:
https://github.com/scijava/scijava-common/blob/master/bin/release-version.sh

Instructions on using it:
https://github.com/imagej/imagej/blob/master/RELEASES.md

We are firm believers in "release early, release often" (or as Jeff Atwood
of StackOverflow fame puts it: "Go that way, really fast" [1]). So it is
vital that the release process be as simple as possible, so we can do
chained releases "up the tree" as needed very quickly.

I suppose the bigger your project tree gets, the more your hypothetical
"release everything that needs to be released" tooling could become a
life-saver. But it's also a very high-level operation with really big
potential ramifications if misused, then, too.

Regards,
Curtis

[1] http://www.codinghorror.com/blog/2010/09/go-that-way-really-fast.html


On Tue, Sep 10, 2013 at 11:14 AM, Ian Boston <ie...@tfd.co.uk> wrote:

> Hi,
> I am wondering if there is tooling available in maven to assist with
> this the following scenario.
>
> I have a source tree releasing multiple artifacts, all on different
> release cycles, semantically versioned and depending on one another in
> a tree.
>
> After one item is released all references to it are set to the release
> version, and its version is set to the next SNAPSHOT. Only when a
> change is made are upstream poms updated to the SNAPSHOT version.
>
> Is there an existing plugin that will tell what needs to be released
> and what doesn't based on the multiproject dependency tree ?
>
> Better still, is there something I can just ask
>
> " release everything that needs to be released to allow artifact X to
> be released "
>
> of
>
> That would be excellent.
>
> Best Regards
> Ian
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>