You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Curtis Rueden <ct...@wisc.edu> on 2013/10/15 22:57:06 UTC

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

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
>
>

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:;>
> >
> >
>