[ 
https://issues.apache.org/jira/browse/HADOOP-3305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12650624#action_12650624
 ] 

Steve Loughran commented on HADOOP-3305:
----------------------------------------

I've had a quick flick through and I'm impressed by the effort that Giri has 
gone to here. This looks like the basis for moving everything in the core to ivy

1. It would be good to have everything driven by a single master properties 
file, with each project having the option to override them (via their own 
libraries.properties) but not requiring them to. This makes it easy to push up 
every app to a new version of, say, log4j, by changing one file, and it keeps 
things consistent. Giri's patch shows how inconsistent the projects are 
regarding versions of things, and that just leads to trouble down the line

2. Does Chukwa depend on hadoop-core? If it does, there's a good case for the 
ivy config file of hadoop-core to contain some specific configurations for 
jetty and jsp support, so that Chukwa can pull them in without having to repeat 
them. This is what we do in smartfrog by cross-referencing component packages: 
only one package is allowed to import a third party library; everything else 
has to depend on that package. It works very well when you move to RPM 
distribution as the same dependencies and ownership rules apply there.

3. We'd need to go through the ivy reports of everything and make sure that 
nothing is pulling in transient dependencies you don't want. If they pull in 
transients you do want, it is safer to declare them and the version you desire. 
commons-logging is a notorious source of problems here; you should only ever 
depend on its "master" version to avoid stuff you dont need like avalon-logkit 
and bits of JMX.

4. src/contrib/hdfsproxy/ivybuild.xml has hard coded version numbers in the 
build file. It shoud be driven from the .properties file

I need to play with this some more, by patching a clean version of the source 
tree and seeing how it goes. Its a good design, there's just a few more tweaks 
we need to get in there

> Publish hadoop-core to the apache repository with an appropriate POM file
> -------------------------------------------------------------------------
>
>                 Key: HADOOP-3305
>                 URL: https://issues.apache.org/jira/browse/HADOOP-3305
>             Project: Hadoop Core
>          Issue Type: New Feature
>          Components: build
>    Affects Versions: 0.16.2, 0.16.3
>            Reporter: Steve Loughran
>            Priority: Minor
>         Attachments: HADOOP-3305.patch, hadoop-core-0.16.2.pom, 
> ivy-support-first-pass.zip, ivysupport.zip, rmlib.sh
>
>
> To let people downstream build/test with hadoop, using Apache Ivy or Apache 
> Maven2 to pull it down, hadoop-core needs to be published to the apache 
> repository with a .pom file that lists its mandatory dependencies.
> In an automated build process, this means
> -having a template XML pom defining all included dependencies (and excluded 
> transient dependency artifacts)
> -having a property file driving version numbering of all artifacts
> -copying this template with property expansion to create the release POM file
> -public releases only: sticking this POM file up on people.apache.org in the 
> right place, along with the JAR and some .md5 checksums
> There's a risk that if the hadoop team dont do this, someone else will (as 
> mahout are doing under 
> http://people.apache.org/~kalle/mahout/maven2/org/apache/hadoop/ )
> This is bad as hadoop end up fielding the support calls from someone elses 
> files. 
> Before automating the process, existing hadoop-core JARs can be pushed out 
> with hand-encoded POM files. The repository police dont allow pom files ever 
> to be changed, so supporting existing releases (.16.2, 0.16.3 ... ) is a way 
> of beta testing the POMs. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to