Forking Maven

by Tim O'Brien

Everyone using Maven should pay attention to what Don Brown is doing. He's reached a level of frustration with Maven, and he's decided to start working on his own branch. Luckily some people on the core Maven team have noticed and have started porting some of his performance changes back into Maven proper.

Branching, forking, whatever you want to call it... should be much more common in open source Java. Even though we use tools that support it (or do we? see my previous post about SVN vs GIT), you rarely see the discussion on a developer list that mentions someone's branch. Hopefully people like Don will inspire more people to start forking the projects they use.

Open source isn't about convincing a centralized "project committee" that your changes have merit, it is about decentralized innovation. Over the last few years, I've come to the realization that open source communities can be detrimental to innovation, real innovation comes from ad-hoc, decentralized code revolutions like Don's. Too often, open source Java dev lists are full of noisy arguments about what to do and how to do it while building consensus. We'd all be better off if people forked first and discussed later.


2008-02-05 19:39:23
lot of ways to skin the cat i suppose:
1. state your case to the community mailing list, irc, etc hoping for action
2. state your case via fork
3. state your case via alternative project altogether
4. etc

regardless of how, it's always what actions (or the lack of it) that matters

2008-02-05 22:25:11
Already following it. Don is the man!
2008-02-06 09:00:28
Hmm, right an wrong.

On the one hand, a fork can attract the attention of the original developers of some tool, who keep being ignorant about patches sent in to correct heavy problems better than writing long mails to beg tpo get that patch in.

on the other hand, just doing a fork for everything you don't like is a waste of time, and if you do it without even talking to the original developers, it will not very likely create a very positive communication climate...

Apart from that general position, I don't know about the situation with this specific case of maven and don brown - but I'm happy to see progress in Maven's biggest problems going on!

2008-02-06 12:03:33
Decentralized innovation sounds great (is great, in the beginning); but once your Open Source project has grown into a tool that hundreds or millions of people are using, forking can easily create branding ambiguity, vis-a-vis, "Our build tool based upon Maven is better than the original because..."

If Open Source is to continue to be a force that balances the likes and cost of a Microsoft, it needs to continue to embrace strategies for centralizing the practice of team development. Encouraging would-be project contributers to go rogue is akin to spreading the message that we can all be individual development forces to reckon with, which simply isn't the case.

The only disclaimer for this would be the case of a project that has all but ground to a halt, particularly if such a halt is caused by the volume of contribution to the project and a failure of the project to process the flow.

Maybe Maven has become one of these "stuck" projects, although it sounds more or less like the Maven issue is related to a failure of the project leaders to listen to its community (or a failure of the community to properly present its case).

Don Brown
2008-02-06 14:29:50
I talk more about why I created a Maven branch in this interview, but basically I think there are some fundamental philosophical changes that need to happen with Maven, and I felt a separate branch that realized these changes was the best approach. Arguing philosophy on a mailing list won't benefit anyone, but pointing to a branch that implements those philosophical ideas that the community has tested and either likes or hates is much more effective.

Also, for the record, for most every change I make, I create an associated JIRA ticket and patch so that it can be integrated back into maven. I list those on the project page.

2008-02-06 14:48:41
This may be semantics, but I think something to take into considerations are forks and branches.

In the Linux kernel development realm for example, there are subsystem branches where developmental innovated work goes on and eventually once it has been tested and matured enough, gets reverted back.

Forking to me implies a branch but with a separation for the original project for some reasons (patches not being accepted, personality problems, different development paths, etc).

If the Maven folks are starting to accept it, then we should probably consider these more as a development branch than a true fork.

Just my opinion.

2008-02-08 11:34:07
Don has specifically said he is not forking Maven.