Adventures of a Setup Developer

my musings about setups and other things in my life

  Home  |   Contact  |   Syndication    |   Login
  30 Posts | 1 Stories | 12 Comments | 71 Trackbacks

News

Article Categories

Archives

Post Categories

General

Regular Reads

Tools

If people were following the the WIX-Users Mailing list, they would find that it has been a little hot recently. The first instance (as far as my knowledge goes) was with Michael creating a validation tool for the WIX Toolset called 'smoke'. I personally found it very useful as it could easily be included as a part of the build process. The output is in a structured XML format that makes it easier for us to crunch and build reports. But, some of the members in the group did not share the same level of enthusiasm. Michael seemed to be put off by that and included a disturbing update to his blog entry. Rob immediately acknowledged it and posted a blog entry about being thick skinned.

Recently, history repeated with Marc Bogers starting to ask about the ICE 33 warnings as Tallow populates the Registry table instead of the Registry Tables group. Firstly, Tallow is only a helper utility and is anything but perfect. It is useful but does not exactly produce usable WIX code. Heck, it doesn't even write to a file. Rob had said that ICE33 warnings can be ignored as it created some "strange behavior". More precisely, the resiliency associated with advertisement would prompt the end user for the media when Windows Installer detects some inconsistencies with the CLSID registration. Michael dismissed the argument that it arose from sloppy authoring and had nothing to do with MSI itself. Follow Michael's blog entry on COM registration for more information.

As we all know, Rob does not agree on a lot of things like inserting GUIDs while generating output with Tallow, using the Registry Tables Group and so on. I am sure that he has good reasons behind them. I am also sure that many people (including me), have modified Tallow to suit their requirements. Some people are using Riko's Tallow that does write to the Regsitry table's group using the Class and TypeLib elements. (On a totally different note, Riko, when are you going to release that code of yours?) I have a version of Tallow that creates components with GUIDs and names them appropriately. I am pretty sure that I am aware of the consequences and I have written code to persist the component information for future reference.

This freedom is the inherent beauty of open-source software. People can use their own ingenious imagination to tailor the tool to best suit their requirements. Of course, some of our opinions differ and we need a healthy debate to analyze these opinions and make the best of it. We should refrain from flaming and should try to embrace new ideas. Rob may be the BDFL for the WIX Toolset but I am sure that he would like the WIX Toolset to be successful and that helps developers create better installers without breaking much sweat. I tried hard not to write about this topic but after reading Michael's blog and comments with certain conspiracy theories, I wanted to voice my opinion too. I am sorry if I have hurt anybody's feelings.

 

posted on Thursday, December 23, 2004 4:18 PM

Feedback

# re: My 2 cents 12/31/2004 12:19 AM Rob Mensching
Since I'm still a little on the defensive after all of this, I hope you won't mind if I clarify a couple of my behaviors that you call out here. First, my blog entry (http://blogs.msdn.com/robmen/archive/2004/12/16/318015.aspx) was intended to focus more on the way that I handle the information flow on the wix-users mailing list. Since I typically have little time, I typically provide short answers that can come across as abrupt or harsh. Looking back, I think it'd be better off if I never posted that blog entry. It did not serve the purpose I intended.

Second, I think it would be great if tallow created the correct "Registry Group" elements (like Class, ProgId, AppId, etc…). My only objection is with the *advertisement* of COM registration using the Class, MIME, ProgId, and AppId tables. There are side-effects (that I have obviously not described well enough yet) that all setup developers need to be aware of and, IMHO, avoid. Note: the TypeLib and Extension tables are fine to use if you want the advertisement behavior.

Third, tallow is a complete hack. I personally spent about 5 hours on it in total. Someone else spent a few hours debugging some of the self-registration capture problems (that obviously didn't fix all of the issues). That's it. Something like 8 hours of development. Beating up on the poor thing is silly. Improvements and new features (Riko?) should be expected. Also, not writing to a file in tallow was done on purpose… the idea was to not encourage developers to add tallow to their build process. <smile/>

Fourth, as I know you are aware, tracking Component GUIDs is vital to the success of a product deployed via the Windows Installer. I have seen teams use tools that automatically generated new GUIDs every time they built their MSI. It wasn't until they tried to update their MSI (or ship in another language) that they found out how screwed they were because they didn't track their Component GUIDs. In fact, there was a feature (the "FileGroup" element) in the WiX toolset that I spent two years trying to get rid of after a team got mad at *me* for building a tool that did not protect them from the Component Rules. Since, then I've been trying to avoid features that allow setup developers to unwittingly violate the Component Rules. I realize this creates work for developers, but that work improves the chances that they are conscious of the Component Rules, doesn't it?

Finally, if you have ideas how to improve the tools then please, please, please submit the ideas to the wix-devs@lists.sourceforge.net (or open a FeatureRequest). Vagmi, it is very likely that you have an idea how to ensure developers learn about the Component Rules without requiring lots of extra typing. Please, share the idea. Even better, code it up, sign the assignment agreement (I'd love to have you able to submit fixes to the toolset back directly) and send the diffs to the wix-devs mailing list. Just remember to have a little bit of "thick skin" when posting. <smile/>

Post A Comment
Title:
Name:
Email:
Website:
Comment:
Verification: