Initial thoughts and then more inline below, and keep in mind I long ago drank the Maven kool-aid and am a big fan. :-)

I know it is a pain to a few, but realistically speaking there has not been all that much noise about Maven artifacts not being available. We use Maven for everything we do and all I ever do when there is a new release of Lucene is put the new jars in our remote repository and everything works. It takes two or three steps and about 5 minutes of my time, and would be less if I scripted it. I frankly don't get what the big deal is. OK, it does save a few bytes on a server somewhere and we have our own group/artifact names (lucene/lucene), but chances are it is more reliable than trying to get it from one of the mirrors and it will be faster and the names are clear cut and easy to remember. I would venture anyone with Maven installed has their own repository to store their own, private, artifacts, so it isn't like they need to add some new, complex process.


On Apr 10, 2007, at 4:20 AM, Sami Siren wrote:

I have been hoping to put up mechanism for (easier) deployment of m2
artifacts to maven repositories (both Apache snapshot repository and the
main maven repository at ibiblio).

The most convenient way would be to use maven2 to build the various lucene
projects but as the mailing list conversation about this subject
indicates there is no common interest for changing the (working) ant based
build system to a maven based.

The next best thing IMO would be using ant build as normally for the non
maven2 releases and use maven2 for building the maven releases (.jar
files, optionally also packages for sources used to build the binary and
packages for javadocs) with related check sums and signatures.

To repeat it one more time: what I am proposing here is not meant to replace
the current solid way of building the various Lucene projects -
I am just trying to provide a convenient way to make the release artifacts
to be deployed to maven repositories.


Couldn't we just add various ANT targets that package the jars per the Maven way, and even copy them to the appropriate places? I wonder how hard it would be to have ANT output the POM and create Maven Jars. I know it is backwards, but, it would be less complicated and could be hooked right into the ANT script and require very little from the RM.

Ideally, I would love to see the release process automated so that it became push button (I know Maven goes a long way toward this)




There are however couple of things I need your opinion about (or at least
attention):

1. There are differencies when comparing to ant build jars (due to release
policy of a.o) the built jars will contain LICENSE.txt,
NOTICE.txt in /META-INF. Is this a problem?

Does this just mean it would be in two places? I don't think that is a big deal.


2. I propose that we add additional folder level so the groupId for lucene
java would be org.apache.lucene.java (it is now org.apache.lucene
within the currently released artifacts). The initial list of artifacts (the
new proposed structure) is listed below:

If I'm understanding correctly, you want to change the whole package structure by adding one more level? Wouldn't this break every single user of Lucene? We are still on M1 but are in the process of migrating, which is not straightforward, but, alas, the writing is on the wall concerning M1.

....



The text above was my initial thought about this, however there have been concerns that the procedure described here might not be most optimal one. So
far the arguments have been the following:

1. Two build systems to maintain

True. However I don't quite see that so black and white: You would anyway need to maintain the poms manually (if you care about the quality of poms)
or you would have to build some mechanism to build those. Of course in
situation where you would not actually build with maven the poms could be a
bit more simple.

2. Two build systems producing different jars, would maven2 releases require
a separate vote?

Yes the artifacts (jars) would be different, because you would need to add LICENSE and MANIFEST into them (because of apache policy). I don't know about the vote, how do other projects deal with this kind of situation,
anyone here to tell?

One solution to jar mismatch would be changing the ant build to put those
files in produced jars.

I think that would be fine to unify the jars.


3. Additional burden for RM, need to run additional command, install maven

There will be that external step for doing the maven release and you need to install maven also. But compared to current situation where you would have to extract jars, put some more files into them, sign them, modify poms to
reflect correct version numbers, upload them to repositories manually.

The other way to do is would be changing the current build system to be more
maven friendly. This would probably mean following things:

-add poms for artifacts into svn repository (where?)
-adding LICENSE and NOTICE into jars.
-add ant target to
-sign jars
-push artifacts into staging dir or to repository (or leave it as
additional manual step)
-optionally build javadoc jars (if currently not done)
-optionally build source jars (if currently not done)

Are there any technical arguments in favour or against the proposed
solutions or is there perhaps one that outperforms them both. Please share
your thoughts about all this :)

--
Sami Siren

--------------------------
Grant Ingersoll
Center for Natural Language Processing
http://www.cnlp.org

Read the Lucene Java FAQ at http://wiki.apache.org/jakarta-lucene/ LuceneFAQ



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

Reply via email to