Some time ago, during year 2008, Tim and I wrote the first version of the OpenForge API. The goal of this API was to allow communication between software forge. Thus, the 0.1 came with three main features :
- retrieve project data
- retrieve user data
- search for projects and users
Tim is the developper and the administrator beside ShareSource, another public software forge. So, our idea was to connect our forges, allowing our users to, for instance, search for projects registered on CodingTeam.net through ShareSource.
Nowadays, CodingTeam supports the full specification and all the three functionnalities of the OpenForge API are available inside our project. We can also notice that the most exciting features, the ability to search for projects and users in a network of forges from another, is not used at all. In fact, only CodingTeam supports this API and thus only CodingTeam forges can connect their search results (this can be activated in the administration panel, and by the way, if you are running a CodingTeam forge and want your search results to appear on CodingTeam.net, just contact me).
In fact, we can say that OpenForge is a failure. The innovant part is not used and the simple parts are barely used. Beyond that, we can try to explain the relative unsuccess of our API.
The main problem is that the simple parts of OpenForge (data retrieve) is somewhat too simple. See by yourself:
Example of an external search on two other forges (XML output example):
A lot of ideas have been debated on our developement room since OpenForge exists and there are a lot of possibility to improve it. I think it is reasonable to wonder if it's in the CodingTeam interest to keep these implementations in the codebase, since OpenForge is not really used by other projects (or even by users) and as the goal of OpenForge being the wish to connect software forges. Or maybe, it's time to work on this API.
It would be great to open the development of the API. Everyone should be able to give his opinion and his ideas.
There are many development possibilities that we thought about. We could use existing data representation like DOAP for projects and FOAF or vCard for users. We could switch to a really public and open development of the API. We could imagine that OpenForge supports importation and exportation of projects, bugs, SCM, wikis… Last but not least, OpenForge could also be used to post or edit content directly from the API.
Maybe OpenForge wasn't a very good idea. Maybe it can be improved to be very useful. We need help and comments.