I came across this couple of times before and I always wanted to blog about it. In my daily work life I see many developers which just don’t get Open Source. For example, some discover issues in libraries they use. But they don’t fix them. They don’t even inform the maintainers of a library. Yet others have a great new use-case to address. Again, the library doesn’t support it. Thus, they write a great deal of new code to address their issue and eventually run into new ones (for example, see this thread).
But it’s that darn simple!
- Checkout the library from source. You can use a well known tag/branch for this.
- Get in touch with the maintainers and implement your modifications.
- Build and release your modified version until a new official release is available.
3 thoughts on “Understanding Open Source”
The problem with this is the associated cost of keeping up to date with other fixes versus the cost of your change. For example, I filed a bug against EFS/Path back against the 3.3 days:
I’ve had to build that internally and re-patch each major version of Eclipse that comes out because it’s not been integrated into the upstream system. One of the reasons why people pay support contracts is as an option to buy such fixes and ensure that they get fed back in.
Distributed version control systems (like git) will make this much less painful. You’ll still be able to update to the latest and build the system whilst letting the DVCS do the work for you (instead of you having to maintain a CVS branch and do the merges yourself). I wonder whether that will help increase the back-flow of patches upstream or inhibit it?
100% correct. It just doesn’t matter if it is bug or feature request. Also it doesn’t matter whether its a library or a end-user tool — FOSS projects needs input from users. And with feedback I don’t think of “All the crap is not working” at regulars’ table.
Exactly. And that’s why git is so important. It lets you manage your modified version and sync it with the upstream until you’re modifications get there.