From: "Conor MacNeill" <[EMAIL PROTECTED]>

> > From: Nicola Ken Barozzi [mailto:[EMAIL PROTECTED]]
> >
> > Then, when the project decides for a code-freeze for the release, the
> > jars are not updated anymore till release is done.
>
> Do you mean that the jars a project depends on should be "frozen" at the
> last successful build?
>
> I disagree. Whan a project proceeeds to a release it should, IMHO, only
> depend on the released versions of other projects. These are the only jars
> which those projects have agreed to release. These snapshots built by Gump
> may contain features that a project may later decide not to proceed with.
> If you depend on those features and they are never released, you may be
> in trouble. If users of your code upgrade that dependent library, you will
> break.

Ok.

> Gump, in its current incarnation, is an early warning system when using
> the latest of everything. It alerts you to the impacts your changes made
> in CVS may have on other projects. Gump will not, however, warn you
> if you rely on a feature that is not yet released.

Of course, yes.

> There may be a case for doing a separate Gump run where the dependencies
> are provided from the latest released versions of a library rather than
> the current CVS HEAD, although I have not looked into what would be
> required to do that.

 What about this solution then:

10- The project uses always the latest jars from other projects if it flags
       for it in its Gump descriptor.

20- When it's starting to think about release, the build starts being done
       only with the latest _release builds_.

30- if it needs some features from a development jar, it can
    a. lobby the other project to do a release
    b. revert to latest release version of the other project
    c. decide to bite the bullet and use a dev version by freezing it

40- release

50- goto 10

                                                  -0-

IMHO the Gump descriptor could be enhanced for example with:

<dev version="1" minor="1" bugfix="2" state="dev|freeze|release"/>

When in _dev_ state, it uses the dev jars.
Gump can automatically update the descriptor and add a version attribute to
the jar dependencies, to show what jars are really in use.

When in _freeze_ state, it uses the latest release jars.
Gump can automatically update the descriptor in a similar way, but only on
the first run in freeze state.
This means that the jar versions to use can be hand-modified to specify what
the project really wants to use.

When it's in _release_, Gump could actually do the release if they specify
what target to use for it and where the jars are. Forrest can also get the
site ready and add the news to the site automatically.
Of course, Gump will change the release attribute to dev just after a
succesfull release.

                                                  -0-

One thing is missing though:
how can Gump make a project use the latest jars? Change the versions that
are in CVS?

Scott, IIRC there was something called CJAN and
JJAR in commons sandbox. (hint hint, nudge nudge ;)

--
Nicola Ken Barozzi                   [EMAIL PROTECTED]
            - verba volant, scripta manent -
   (discussions get forgotten, just code remains)
---------------------------------------------------------------------



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to