Contributing to Maven Core

Lately, I’ve been pleasantly surprised with the number of pull requests for Maven Core. We get frequent patches for Maven plugins, but it’s not very common to get patches for Maven core because it takes a while to understand any part of the codebase. So kudos to those who have attempted to contribute changes and I hope to make the process of contributing easier. Maven has a set of unit tests for the core, but we also have a set of 736 integration tests that work across all versions of Maven. The integration tests are the primary mode of validating nothing has been broken. Over time the integration tests have taken on functionality that we should have in the core unit testing proper, but overall the system is very reliable in making sure nothing has been broken.

What’s not great about contributing is that the integration tests are not immediately visible to those not familiar with the core. This bash script is a first attempt to try and help contributors know that they haven’t broken anything in Maven, and it makes our job reviewing patches easier. Passing everything doesn’t mean a patch will immediately be accepted, but starting from the position that a patch is fully functional against master is a good starting place.

Ideally we would have a parameterized build in our CI system that takes a PR# and tells a contributor everything is good, but until we do that I made a bash script that will take the PR# and do the following:

  • Checkout Maven master
  • Apply the PR as a patch to Maven master
  • Build Maven master
  • Run the integration tests with the just-built Maven

Hopefully this will move us toward fully automating the validation of contributions to Maven Core. If you interested in contributing to Maven core you can see how this process works by looking at the bash script which is available as a simple Gist:

https://gist.github.com/jvanzyl/16da25976f8ad27293fa

 

Comments

Maven Training

To use Maven correctly you'll need to understand the fundamentals. This class is designed to deliver just that.

Introduction to Maven
 

Stay Connected

 

Newsletter

Subscribe to our newsletter and stay up to date with the latest news and events!