This is the blog of Adam Kalsey. Unusual depth and complexity. Rich, full body with a hint of nutty earthiness.

Not a fork

Freshness Warning This article is over 10 years old. It's possible that the information you read below isn't current.

27 Mar 2008

A question has come up here and there about what we’re doing with this community platform, especially now that’s it’s been dubbed "Gnomepal." Are we forking Drupal?

We have no intention of forking Drupal. That would be nuts. Drupal has such a great developer community, why would we want to toss that aside and build our own little fiefdom? What we’re doing is creating a pre-configured instance of Drupal with the right themes and modules woven together. With the custom code that’s needed to get it all to work.

Drupal does a lot of things. We’re taking one of those things (community) and building all the little things that are needed to make it work right out of the box. Much of it already exists either in the Drupal core or third party modules. But getting all those things working together and working well is a challenge for the non-developer. It’s not going to be for everybody and not appropriate for every site. And that’s okay.

Someone made this apt analogy. We’re Ubuntu to Drupal’s Debian.

We’re creating a way to install and use Drupal. We think it’s a better way for the types of sites we’re targeting. We think that Drupal’s power and flexibility makes it a fantastic platform to develop content sites on top of. We hope that lots of people still build their own custom sites using it. But for those non-developers who want to put together a site for their school PTA, their baseball team, or their department’s intranet, we’re building an app that can be downloaded and launched in minutes.

I was wondering if you are looking for a solid beta tester to be included in testing out the new platform. I would be interested in using it for a site that needs all the features you guys have been discussing and could be a solid launchpad and live case study for the project. Please let me know if you would like to work with a great web producer that can give you good feedback and test things out in a live environment.

Dries -- Certainly. The whole goal of this is to have something that someone can simply install and use. That updating is possible, not by trying to figure out what the latest version of module X is, but by getting an update of the whole package.
Eric --We're quite a ways off from a beta, really.

Hi, CivicSpace was a fork of Drupal because we couldn't initially get the core worthy installer that would meet the core developers needs. At the same time, we needed to meet end-user needs, particularly the tech saavy grassroots organizers, NPOs, and political folks who wanted the power of Drupal but needed an on ramp.
Much has been made of forking Drupal and why it's a bad thing. Having gone through an expensive unforking process at CivicSpace forking is certainly something you shouldn't do lightly. But here's some guidelines for branching that should maximize your flexibility.
1) Drupal's principles include experimentation. You should experiment as well. There's nothing wrong with adding patches to a version of Drupal that meets your users needs. Just clarify that they are patches, and include them as part of the distribution so that people can easily go back to core Drupal.
2) Drupal code is really clean, and easy to modify for a PHP app. One of the advantages of this well documented code is that it welcomes changes. If you make changes to core, and a huge amount of developers do make core changes, include patches and comment well. Make sure your patches run cleanly through coder, and follow Drupal community conventions. Be sure to post your patches to a Drupal.org issue so others can review those patches and give you some insight how to get them into either a contrib module or a future version of core. If you introduce a security vulnerability, you'll want thousands of developer eyeballs to be familiar with the patch code style so they can easily spot it.
3) There's good stuff in HEAD, use it. Your users or your business might not be able to wait for the Drupal development cycle to put out it's next release. If you aren't running five patches from head by the end of a Drupal release cycle, you aren't paying enough attention to the excellent work being done in head: CSS aggregation, Javascript aggregation, Master-Slave, contrib replacements of core modules, back-ports of Forms API are all things we've used at CivicSpace in the past. Open Source isn't just some moral high ground, make practical use of your access to the source. Make Drupal better by distributing patches from HEAD to your users and tell the Drupal core developers how it's working, particularly in production.
4) Have a yellow light stopping distance. That's the imaginary line when you decide to blow the yellow traffic light by speeding up, or slowing down to be safe. You should have a roadmap that states when you are going to stop hacking your own distribution, and commit to getting something into core. At CivicSpace, we committed to getting the installer back to Drupal core in 4.6. We submitted patches in 4.7 and kept at it through HEAD in Drupal 5. By the time everything was said and done a lot had changed, but that's part of the collaborative process. So don't be afraid to make radical changes and experiment, just make sure you are building meritocracy points (testing other's core patches, making smaller patches to core, etc.) so that your commitments to get changes into core are credible.
5) Use terms like distributions, or branches, instead of forks. The word fork contains a lot of drama for open source communities. Avoid it if you can. But Linus and Alan Cox each maintained their own branches of Linux. Almost every Drupal hosting company has their own "Branch" in SVN which meets their own security, feature, and business needs. All the consulting companies, particular those that deal with big sites have branches that deliver higher performance benefits, often with improvements that are customer specific. Don't be afraid to do the same, but keep a patch for core up to date in a Drupal core issue for your distribution. It will make the core contributors comfortable that you are being open and transparent.
Hope that helps.
Drupal community Adventure guide,
Acquia, Inc.
Founder CivicSpace LLC

This an interesting topic to bring up but the follow up done by CivicSpace was extremely helpful. I find the most interest in the use of terms instead of "fork" in open source communities. I can see where the drama induced by this term could spark a conflict of interests but I guess I don't find it to be as much of a problem. I am not an expert so I cannot add constructive insight like before me, but it was this very a helpful topic that clarified a few key points. Everyone should consider 4 and establish their own "yellow light"

To prevent spam bots from filling in worthless comments, without Javascript enabled, you can not comment here. Yeah, spammers suck.

Your comments:

Text only, no HTML. URLs will automatically be converted to links. Your email address is required, but it will not be displayed on the site.

Name:

Not your company or your SEO link. Comments without a real name will be deleted as spam.

Newly DigitalNewly Digital is an experimental writing project. I've asked 11 people to write about their early experiences with computing technology and post their essays on their weblogs. So go read, enjoy, and then contribute. This collection is open to you. Write up your own story, and then let the world know about it.