nicolas de loof wrote:

So my idea would be to (pseudo-code) :

if ( mavenSession.getVersion() > 2.0.9 && source == null)
{
    source = 1.5;
}

IMHO, making a default value a function of both the plugin version and the Maven version introduces unnecessary complexity to the code and confusion for users.

As a user, would you expect that by merely updating from Maven 2.0.9 to 2.0.10, i.e. a point release, your maven-compiler-plugin, that you didn't update, changed it's behavior?

And even if we changed the "> 2.0.9" of the pseudo code to a minor update ">= 2.1.0", how would one communicate this behavior properly to the user? When I wanted to update my Maven installation, I check out the release notes of the Maven core. The solution you propose could introduce another change in people's builds that is beyond the core and as such not listed in the core's release notes, giving rise to surprises.

For the same reason compiler 2.0.4 could default to 1.6 and so on.

Changing default values, especially for sensitive configuration parameters, should probably not happen in point releases.

What's your opinion ?

+1 to just change the defaults for source&target to 1.5 in the next minor release 2.1 of the plugin. Backward-compat is surely nice but I wouldn't like to see future progress sacrificed for it. Also, even those bad builds that didn't lock down the plugin version will remain stable if users employ any recent Maven version (2.0.9 was released over a year ago).


Benjamin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to