I love Git and GitHub. All my open source projects are hosted there (even though there isn’t a lot of them).
However I see one huge problem with it. Let me explain !
Today I falled on fetcher. One project that I was following since a few months.
But I forgot it and was happy to find it again and to think « great library. Let’s try it ».
So I take a look at the documentation and I see … It’s only a rails plugin. Not cool. I don’t want to parse emails on an IMAP server with Rails.
I want to do that in console and add the mails in a database.
So I think « let’s fork the project and make it a gem ». But as I don’t have a lot of time, I say : « what if someone else already did that before ? »
Then I look at the project’s network. And I see several other forks, two of them having already ported the library to a gem.
And here is the problem. The original project doesn’t seem to be maintained anymore. Other people have submited several patches to it.
But nothing takes all those patches to do one single and great project. And that’s a problem that appears on several other projects.
For some professional reasons, I’m currently taking a deeper look at CouchDB.
And particularly CouchREST. And here comes the nightmare !
There’s not one, not two but three active repositories for the project.mattetti’s, jchris’ and couchrest’s.
The original one is jchris. The other two ones are forks.
But apparently, the two ones are development versions (the forks of the two main developers ?). And the third one is the stable integration.
Cool, but not readaly at all.
I’d see two solutions for these two problems with GitHub.
For the couchrest problem, please projects owners, update your project description to explain what this repository is about.
Say this is only a development branch. Or it’s the stable branch and we should clone it and not your unstable testing repo.
For the fetcher problem, it seems to me to more like an architectural problem on GitHub.
Being able to move an original project from one place to an other (say « this project isn’t a fork. But this one is ») would change a lot of things.
We could, with the owner’s consent (or the github’s staff approval if the owner is unreachable) change the original project repository to some other place.
That’s called communication. If you see a project, you go to the original one, to download it and not a fork that might break everything.
But when it’s not the original that you must use but one specific fork, you’re not Mrs Irma and you can’t guess which one to use magically
Yes, this is a hidden message to defunkt, mojombo, tekkub, kneath or any other GitHub staff member if you read me.







