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

Chris Nauroth commented on HADOOP-11929:
----------------------------------------

bq. We could maybe avoid building fuse-dfs, the native mapreduce stuff in 
trunk, libhadooppipes, and libwebhdfs unless a file in there had changed. Those 
subprojects are truly self-contained so that would work.

I disagree with this statement, at least for the codebase as it stands now.  
HDFS-8346 demonstrates that libwebhdfs has a dependency on libhdfs source 
files.  There also had been an incorrect assumption about being able to call 
libhadoop code.  fuse-dfs links to native_mini_dfs, so there is a chance that a 
change in libhdfs could break it.  I'm not sure about libhadooppipes and the 
native MR stuff.  I haven't looked at them in a while.

A counter-proposal could be to break up some of these unusual dependencies, or 
more formally define a "hadoop-native-common" for the sub-projects to 
statically link to.  For now though, I filed HADOOP-11937 to request full 
native builds so that we catch regressions like HDFS-8346 during pre-commit.

> add test-patch plugin points for customizing build layout
> ---------------------------------------------------------
>
>                 Key: HADOOP-11929
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11929
>             Project: Hadoop Common
>          Issue Type: Improvement
>            Reporter: Sean Busbey
>            Assignee: Allen Wittenauer
>            Priority: Minor
>         Attachments: HADOOP-11929.00.patch, HADOOP-11929.01.patch, 
> HADOOP-11929.02.patch, HADOOP-11929.03.patch, hadoop.sh
>
>
> Sean Busbey and I had a chat about this at the Bug Bash. Here's the proposal:
>   * Introduce the concept of a 'personality module'.
>   * There can be only one personality.
>   * Personalities provide a single function that takes as input the name of 
> the test current being processed
>   * This function uses two other built-in functions to define two queues: 
> maven module name and profiles to use against those maven module names
>   * If something needs to be compiled prior to this test (but not actually 
> tested), the personality will be responsible for doing that compilation
> In hadoop, the classic example is hadoop-hdfs needs common compiled with the 
> native bits. So prior to the javac tests, the personality would check 
> CHANGED_MODULES, see hadoop-hdfs, and compile common w/ -Pnative prior to 
> letting test-patch.sh do the work in hadoop-hdfs. Another example is our lack 
> of test coverage of various native bits. Since these require profiles to be 
> defined prior to compilation, the personality could see that something 
> touches native code, set the appropriate profile, and let test-patch.sh be on 
> its way.
> One way to think of it is some higher order logic on top of the automated 
> 'figure out what modules and what tests to run' functions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to