What's Taking So Long?
I started on our open-sourcing effort about four months ago. All we have right now is a snapshot of some (slightly) old code and some zipped-up bundles for convenience of downloading. What, does it take four months to run the "svn import" and "zip" commands?
By way of explanation, let me present a couple corollaries to Murphy's Law:
- Nothing is as easy as it looks.
- Everything takes longer than you think.
Initially I thought that it wouldn't take much effort. Oh, well, yes, there was some third-party copyrighted code in our source tree. So, we had to track it down to see if we could open source it, or we had to cut it out and open source everything else.
Oh, we also needed to remove swear words and people's names from the source code. I've blogged about that elsewhere -- Open Source or Dirty Laundry? -- but we decided to go ahead with that anyway. It's surprising to me that people were willing to ship product with this stuff in it but were unwilling to open source it in this condition. I'd guess that the open source community would be far more tolerant of profanity than commercial customers. But I digress.
Let's see, we also needed to set up some web pages, decide on some governance structures, choose a name -- that took a while -- reorganize the source tree, and figure out how to build our commercial product combining open source and non-open source components. We had to change all of the "property rights notices" (PRNs) from our commercial license to GPL. But we're dual licensed, so when we ship our commercial product, it still has to carry the commercial PRN. (I'm still not sure we have the mechanics of that quite correct.) We had to run a bunch of stuff through export control.
Oh, and we also had to track down a bunch of third-party copyrighted code lurking in the source tree to determine whether we could open source it or not. Didn't I already say that? Well, yes, but we kept running across more and more stuff for which we had to track down and clear the rights. I'm convinced I researched the history of the same pieces of code at least two or three times.
In retrospect, it's amazing we accomplished as much as we did in four months. Other groups we talked to suggested that it would take us a year.
Actually, that might still be true. We're not done yet. ("I have not yet begun to code!" -- John Paul Jones?) What's there now is snapshots of already-released source code. We still have to migrate the current stuff, as well as active development, into the open.
We're working on that as I write. The idea is to merge the current files into the repository so that the new files will have the proper historical relationship to the old ones. That is, you should be able to look back in the log and see the older version of the file. Also, this relationship should be preserved even if the file was renamed. You can imagine that this could get pretty tedious if there are a lot of changes. So, it'll take us some time to get it right. But we're getting close, and things should start to become visible in the next couple weeks.
Subscribe to email@example.com if you want to watch stuff as it hits the repository.