RealTime IT News

Microsoft Releases WiX Toolset to Open Source

A Microsoft developer's vow to promote "change from within" has led to the software giant's unprecedented release of an XML toolset to the open-source developer community.

Rob Mensching, a Redmond employee who works on the Windows Installer XML (WiX) toolset in his free time, has convinced Microsoft to release the toolset and all of its source code to developers on SourceForge in an attempt to ferret out bugs and improve the toolset's documentation.

WiX is the first project from Microsoft to be released under the Common Public License, an externally created open source license.

The toolset is used to build Windows installation packages (MSI and MSM files) from XML source code and is currently used internally at Microsoft by developers working on Office SQL Server, BizTalk, Virtual PC, MSN and Windows Messenger and the msn.com network.

By putting the source code on the world's largest open-source software development repository, Mensching said the plan is to open up the bug-finding process to a larger community. "When someone encounters a bug [internally], the community tracks the issue down and fixes it. Now, via SourceForge.net, you have an opportunity to be a part of the community as well."

He said the WiX toolset is close to Beta2 quality but made it clear the documentation "leaves much to be desired."

"Part of my motivation for pushing the toolset external to Microsoft is to encourage me (and maybe find others) to update the documentation."

The toolset includes a compiler, a linker, a lib tool and a decompiler. The compiler (called candle) is used to compile XML source code into object files that contain symbols and references to symbols. The linker (known as light) is fed one or more object files and links the references in the object files to the appropriate symbols in other object files. The linker, Mensching explained, is also responsible for collecting all of the binaries, packaging them appropriately, and generating the final MSI or MSM file.

The lib tool (lit) is an optional tool that can be used to combine multiple object files into libraries that can be consumed by 'light' while the decompiler (called dark), can take existing MSI and MSM files and generate XML source code that represents the package.

Mensching said he had to convince Microsoft executives of the value of releasing the toolset to open-source developers. He described WiX as a developer-oriented project and wrote on his Weblog that providing source code access increases the pool of available developers.

"[M]any parts of the Open Source development process appeal to me. Back in 1999 and 2000, I did not feel that many people inside Microsoft understood what the Open Source community was really about and I wanted to improve that understanding by providing an example," he explained.

He said the process of releasing the tools and the source code started last October but stalled because of the way Shared Source dealt with contributions from the open-source community. In February, Mensching said he met Microsoft business development manager Stephen Walli, who has been working to improve Microsoft's relationship with open-source developers.

"Fortunately, Stephen was much farther along than I and had the step-by-step plan how to release an Open Source project from Microsoft using an approved OSS license." The process continued and reached the point where "everything passed through legal with flying colors," he explained.

"[Now], you get to see the results of many people's efforts to improve Microsoft from the inside out. I'm not exactly sure what is going to happen next but I'm sure there are quite a few people who are interested to see where this leads. Personally, all I hope is that if you find the WiX toolset useful then you'll join the community and help us improve the toolset," Mensching wrote.