Early in the project history, I was approached by an individual from Germany with a request to maintain a localized DotNetNuke site for the German community. I was certainly not naïve to the dangers of forking at this point and I told him that it would be fine so long as the site stayed consistent with the official source code base, which was under my jurisdiction. This was agreed upon and in the coming months I had periodic communication with this individual regarding his localization efforts. However as time wore on, he became critical of the manner in which the project was being managed, in particular the sole maintainer aspect, and began to voice his disapproval in the public forum. There was a group who believed that there should be greater degree of transparency in the project — that developers should be able to get access to the latest development source code at anytime, and that the maintenance of the application should be conducted by a team rather than an individual. He was able to convince a number of community members to collaborate with him on a modified version of DotNetNuke, a version that integrated a number of the more popular community enhancements available, and called it DotNetNuke XXL.
Now I have to admit that much of this occurred due to my own inability to respond quickly and form a Core Team. In addition, I was not providing adequate feedback to the community regarding my goals and objectives for the future of the project. The reality is that the background management tasks of creating the DotNetNuke Core Team and managing the myriad other issues had undermined my ability to deliver source code enhancements and support to the community. The combination of these factors resulted in an unpleasant situation, one that I should have mitigated sooner but was afraid to act upon due to the fragility of the newly formed community. And you also need to remember that the creator of the XXL variant had broken no license agreement by creating a fork — it was completely legal based on the freedom of the BSD open source license.
Eventually the issue came to a head when members of the XXL group began promoting their full-source-code hybrid in the DotNetNuke Forum. Essentially piggy-backing on the primary promotion channel for the DotNetNuke project, they were able to convince many people to switch to the XXL code base. This had some bad consequences for the DotNetNuke community. Mainly it threatened to splinter the emerging community on territorial boundaries — an event I wanted to avoid at all costs. This situation was the closest attempt of project hijacking that I can realistically imagine. The DotNetNuke XXL fork seemed to be fixated on becoming the official version of DotNetNuke and assuming control of the future project roadmap. The only saving grace was that I personally managed the DotNetNuke infrastructure and therefore had some influence over key aspects of the open source environment.
In searching for an effective mechanism to protect the integrity of the community and prevent the XXL fork from gaining momentum, some basic business fundamentals came into play. Any product or service is only as successful as its promotion or marketing channel. The DotNetNuke Forum on the www.asp.net web site was the primary communication hub to the DotNetNuke community. Therefore it was not difficult to realize that restricting discussion on XXL in the forum was the simplest method to mitigate its growth. In probably the most aggressive political move I have ever been forced to make, I introduced some bold changes to the DotNetNuke project. I established some guidelines for Core Team conduct that included, among other things, restrictions on promoting competing open source hybrids of the DotNetNuke application. I also posted some policies on the DotNetNuke Forum that emphasized that the forum was dedicated solely to the discussion of the official DotNetNuke application and that discussion of third-party commercial or open source products was strictly forbidden. This was an especially difficult decision to make from a moral standpoint as I was well aware that the DotNetNuke application had been introduced to the community via the IBuySpy Portal Forum. Nonetheless, the combination of these two announcements resulted in both the resignation of the XXL project leader from the Core Team as well as the end of discussion of the XXL fork in the DotNetNuke Forum. It is important to note that such a defensive move would not have been possible without the loyalty and support of the rest of the Core Team in terms of enforcing the guidelines.
The unfortunate side effect, one about which I had been cautioning members of the community for weeks, was that users who had upgraded to the XXL fork were effectively left on an evolutionary dead-end — a product version with no support mechanism or promise of future upgrades. This is because many of the XXL enhancements were never going to be integrated into the official DotNetNuke code base (either due to design limitations or inapplicability to the general public). This situation, as unpleasant as it may have been for those caught on the dead-end side of the equation, was a real educational experience for the community in general as they began to understand the longer-term and deeper implications of open source project philosophy. In general the community feedback was positive to the project changes, with only occasional flare-ups in the weeks following. In addition, the Core Team seemed to gel more as a result of these decisions because it provided some much-needed policies on conduct, loyalty, and dedication as well a concrete example of how inappropriate behavior would be penalized.