Forking done right

I've been thinking more today about forking pre-existing code for new projects, and how Pippin Williamson was happy to see the Give team fork Easy Digital Downloads.

At first, it may seem difficult to feel happy about your work being forked and utilized for a separate project. But as I considered it, I further understood why it makes sense.

Easy Digital Downloads can't be all things to all people. It's primarily for digital downloads, per the name. However, many folks have taken an excellent codebase and attempted to warp it to do what they needed (myself included in the case of EDD!), because it fit the large majority of needs. That causes us to put square pegs in round holes.

With Give, the WordImpress guys have been able to take code that's tested and working on thousands of production sites and mold it for a separate but related project. Pippin expounded on his tweet for me:

GiveWP is an exemplary model of how a software fork should be done. They've taken the ground work provided by several other large plugins and made it their own. Not only have they successfully re-used large amounts of other projects, they have taken each piece and improved upon it to make better than the original.

Pippin even gave me an example for a part of the Make plugin that did this. Give took variable pricing from EDD and created a “multi-level donations” feature, that improves the UI and molds the feature to the purpose of Give.

Forks shouldn't be carbon copies, but rather descendants. It should be easy to identify where they came from for those familiar, but it shouldn't be comparable on a line-by-line basis.

I completely agree. In fact, because I know where Give came from, it makes me even more likely to recommend it; it's like using a plugin that's already gotten over many of the issues of adolescense; and it's probably ready for prime time out of the box.

Of course, Give has EDD and open source licensing to thank for its thousands of hours head start, and I'm sure they will willingly give it that credit it deserves. But it's awesome to know that a new product can be so sharp out of the gate, thanks to open source and the philosophies around it.

Similar Posts