Microsoft has evolved in its stance toward open source, but its current hiccup with the Sandcastle project calls into question just how well it understands the obligations open source imposes. Microsoft created its CodePlex site to host open-source software, and has been careful to abide by open-source rules, submitting its licenses to the Open Source Initiative for approval.
Yet as Sandcastle demonstrates, Microsoft still has a long ways to go before it demonstrates that it understands and is willing to stand behind the obligations of open source. The Sandcastle project went live on January 8. Several months later, it still isn't providing source code, a key tenet of the CodePlex hosting requirements.
This isn't a matter of holding Microsoft to a third-party standard. It's a matter of holding Microsoft to its own standards. Microsoft declares CodePlex to be an open-source project hosting site:
- You must choose a license for your project (license resources: Open Source License page on Wikipedia)
- It must be an ongoing project (no "abandoned" projects)
- It must have source code (no non-software projects)
In the case of Sandcastle, it fails items one and three. No source, at least as of 2:54 PM PDT today, and therefore not open.
Does Microsoft care? Well, the CodePlex front page declares:
Microsoft does not control, review, revise, endorse or distribute the third party projects on [CodePlex]. Microsoft is hosting the CodePlex site solely as a web storage site as a service to the developer community.
Fine. But why then stipulate requirements for the site that are apparently meaningless? And why pretend that it's an open-source code repository if, in fact, it may not be?
Microsoft built CodePlex. It can do with it what it wants. But what it can't do is borrow the term "open source" for marketing purposes and then fail to live up to the Open Source Definition. I thought the company understood that. Sandcastle makes me wonder....
So, Microsoft, your options are clear: 1) Request the site owner to provide source code or 2) Properly label CodePlex as a code repository, but not necessarily as an open-source code repository.