The bulk of the active development community for the Apache iBATIS project has decided to fork the code, and move their development efforts to the new project they’ve founded called mybatis. While this may be old news to iBATIS/mybatis users, I thought it deserved a wider mention, both about the fork and some of the thoughts behind it.
What is mybatis?
mybatis.org is a new, independent project run by Clinton Begin and most of the PMC members and active committers of the Apache iBATIS project. It’s a fork of all the iBATIS code under a new name. They’ve recently released mybatis 3.0.1 GA, which will be the primary focus of development for the new mybatis team. They currently ship mybatis releases using the Apache License.
Since it’s a fork of the existing iBATIS code, it provides the same advanced SQL data mapping functionality that existing users expect. “MyBatis couples objects with stored procedures or SQL statements using a XML descriptor. Simplicity is the biggest advantage of the MyBatis data mapper over object relational mapping tools.”
Who is mybatis?
Clinton Begin, the original creator of iBATIS in 2001, is leading the project. Along with him are the bulk of the active developers of both mybatis (for Java) and mybatis.net. They are using Google Code to host the projects, along with source code, mailing lists and bug trackers. The project is independent, and is not directly associated with the ASF.
What will happen to Apache iBATIS?
The ASF is a public charity with the mission of provide software for the public good. Thus, we will continue to provide the complete source code under the Apache license in the future. In terms of the project as a whole, it’s expected that due to lack of community still participating at the ASF, it will be moved to the Apache Attic during the upcoming mid-June board meeting. That will mean the PMC and officer positions associated with Apache iBATIS will be dissolved, and some time thereafter, the website, mailing lists, and code for the project will be moved to the Attic for future read only reference.
Projects are moved to the Attic when there isn’t a sufficiently active and healthy community (primarily at the PMC level) to provide oversight to the project and it’s releases. The decision to move projects to the Attic is not a technical one – it’s purely a community issue. A project’s code and past history are always freely available to users, although in a read-only state. If, in the future, a sufficiently diverse community wishes to re-activate the project and follow the Apache Way, we welcome that.
What’s the difference? Why did mybatis want to fork?
Obviously, you’ll need to ask the mybatis team for the answer to this question. From emails I’ve exchanged with Clinton, and seen from other members of the mybatis team, my impression is that the difference wasn’t specifically technical, more organizational. They simply have a different vision for how to develop open source software projects than the ASF does.
ASF projects are expected to follow a number of procedures roughly known as “The Apache Way”. We believe that software projects with a diverse community; that use a consensus process to make decisions; and that do all their work in the open results in the best overall quality and longest lasting projects. While the ASF expects it’s projects to follow the Apache Way, we certainly understand that not everyone believes that our way of software development is the right one for everyone or for all projects.
While there were some unfortunate miscommunications (not necessarily anyone in particular’s fault) in the process of the fork, I hope there is no ill-will between the ASF and the mybatis team. While it’s sad that the ASF is losing a project (and the community with it), we wish the mybatis project luck in their work.
Is it OK for them to fork the project?
Of course! The Apache License is written to provide the maximum freedom to the users of our software. This means you are free to re-use any of the code we produce in almost any way you wish, including building atop it to create a proprietary product, or by forking the code and re-architecting the whole thing. While we always appreciate developers who choose to contribute fixes and new code back to our projects, we’re perfectly happy for people to take our code and do their own thing with it, either privately, or shared with the world.
So, good luck to mybatis, and mark this as (I think) the first time the ASF has had a coherent community choose to fork themselves and move elsewhere in a productive manner!