GitHub user nickwallen opened a pull request:

    https://github.com/apache/metron/pull/854

    Experimental Improvements - Feedback Only - Do Not Merge

    This is a PR to get feedback on some minor improvements that I was 
experimenting with.  If the community finds any of this useful, I will open a 
proper PR and JIRA for this work.   All feedback welcome; positive or negative.
    
    Note: This PR should not be merged.
    
    ### Faster CI Builds
    
    The first piece here is that I leveraged [Travis' Matrix 
functionality](https://docs.travis-ci.com/user/customizing-the-build/#Build-Matrix)
 so that the unit tests, integration tests, web unit tests, and license check 
runs in parallel rather than sequentially.
    
    Benefit 1: Prior to this change the CI builds take anywhere between 30 - 34 
minutes.  After this change the last 4 test builds have taken 24m 49s, 26m 20s, 
23m 40s, and 24m 31s.  This is not huge, but seems to be an incremental 
improvement nonetheless.  
    
    Benefit 2: This also helps when in the future we need need to add 
additional validation/functionality to the CI build.  Any additional 
functionality will easily run in parallel and not unnecessarily extend the 
overall build time.
    
    ### Automate Maven Installation
    
    There is a tool called [Maven 
Wrapper](https://github.com/takari/maven-wrapper) that will automatically 
install Maven for a user.  And also importantly,  it will install the exact 
correct version that we specify.  I found this [mentioned in the Travis 
documentation](https://docs.travis-ci.com/user/languages/java/), so I assume it 
has a large enough following.
    
    My thought is that anything we can do to reduce friction for a new user to 
work with Metron is a good thing.  At the very least this simplifies 
prerequisite installation and can prevent one source of errors.  
    
    Instead of installing Maven manually and then running `mvn clean install`, 
a user can just run `./mvn clean install`. This will automatically install the 
correct version of Maven in Windows, Mac, or Linux before building Metron.  
This also works correctly in Travis.
    
    I should also mention this is backwards compatible.  If you want to use 
your own mvn, then feel free to continue on with `mvn clean install`.
    
    The ./mvn and ./mvn.cmd files were generated by me simply running `mvn -N 
io.takari:maven:wrapper`.  We would run the same sort of command again to 
update these scripts should we need to.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nickwallen/metron 
experimental-test-improvements

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/metron/pull/854.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #854
    
----

----


---

Reply via email to