On 10/21/2010 12:26 PM, Jukka Zitting wrote:
> Hi,
>
> On Mon, Oct 18, 2010 at 4:22 PM, Marshall Schor <[email protected]> wrote:
>> So, I'm thinking 3b) is the way to go.  Other opinions?
> I don't quite understand where all this complexity comes from.
>
> The only thing you need for a release is a source archive with
> instructions on how to build it. If the release build depends on
> previously unreleased tools, simply include them in the release
> archive and make sure that the build instructions cover also how to
> build the tools.
Hi Jukka, nice to hear from you :-)

I'm thinking out-loud how this might work.  Consider building using this source
archive, before the release has happened (while it's being voted on).
- You get the source archive
- You unzip it
- You look at the README and see instructions:
--  cd to this build tools dir, and do "mvn install"
--  cd to this uima dir, and do "mvn install"

After release, the first "mvn install" would no longer be needed, though
(because the build tooling would have been updated to mvn central).

Comparing that approach to 3b):

The build tooling is separately released to the "staging" repository.  This
requires at release time, an additional "mvn release:prepare release:perform"
operation.  And the source release for UIMA is smaller in that it doesn't
contain the maven release tooling.

The advantage, I think, of this approach is that the UIMA distribution without
the build tooling is buildable from source using just the one mvn install; Maven
obtains the build tooling needed from maven central, via Maven's remote artifact
fetching mechanism, just like it would obtain the common Apache POM.  It more
clearly isolates the Maven build tooling from the rest of the project, and
promotes reuse of the build tooling among different releases (we're planning to
release several things - the base UIMA-SDK, the UIMA-AS add-on, and the various
"sandbox" projects).  Also, by using this common build tooling approach, when we
find problems and fix them, then they are fixed for all subsequent project 
releases.

So, the additional complexity is really only in releasing the build tooling that
changes with a *separate* mvn release:prepare/perform.

I do see one small issue: Our current source README refers to the UIMA website
for instructions on how to build, using maven.  But over time, change will
happen :-) - so the source bundle ought to be more self-contained, and have
those instructions (on how to build) directly in the README, instead of via a
reference to the website.  They are quite tiny, something like:

a) download/install Maven 3
b) unzip the source distribution
c) cd to a directory (depending on what it is you want to build) and do mvn 
install

Please let us know if we've overlooked something.  Does this explanation make 
sense?

-Marshall
> BR,
>
> Jukka Zitting
>
>

Reply via email to