You have my vote. I could add a new interface, but people should be using the
base class anyway. Perhaps we need to add an
CBundleBootstrapperApplicationImpl<>-style class with simple virtual methods to
appease people, but anyone building against the interfaces will face issues.
Heath Stewart
Software Design Engineer
Visual Studio, Microsoft
http://blogs.msdn.com/heaths
Date: Tue, 29 Apr 2014 17:22:46 -0500
From: r.sean.h...@gmail.com
To: wix-devs@lists.sourceforge.net
Subject: [WiX-devs] Is adding a method to a Burn COM Interface breaking?
2. I'm going to break this into a separate thread, hope that's OK.
It looks like Heath's change only added new methods. Bob says that this is
breaking because 3.7's changes were breaking. Let's look back at the changes
made to IBootstrapperApplication between 3.6 and 3.7:
1. Added new bootstrapper relation type (BOOTSTRAPPER_RELATION_UPDATE).2. Added
new BOOL member to BOOTSTRAPPER_COMMAND struct (fPassthrough).3. Added new int
parameter to OnSystemShutdown (nRecommendation).
4. Added new BOOL parameter to OnDetectBegin (fInstalled).5. Added new method:
OnDetectForwardCompatibleBundle.6. Added new method: OnDetectUpdateBegin.7.
Added new method: OnDetectUpdateComplete.
8. Added new BOOTSTRAPPER_RELATION_TYPE parameter to OnDetectRelatedBundle.
3, 4, and 8 are clearly breaking since they added required parameters to
existing methods. I'm not a COM expert, but because we force a recompile and
are not striving for binary compatibility, I don't believe adding methods is a
breaking change.
I think we need to give ourselves the ability to add methods to
IBootstrapperApplication. Full disclosure: I've been thinking about somehow
informing the BA when creating a system restore point, which I'm pretty sure
will require some new methods.
On Sun, Apr 27, 2014 at 11:50 PM, Bob Arnson <b...@joyofsetup.com> wrote:
Links:
1. https://github.com/wixtoolset/wix3/pull/21/files#r12034827
2. https://github.com/wixtoolset/wix3/pull/15/files#r12034610
On 28-Apr-14 00:49, Bob Arnson wrote:
> Not the kind of style discussion that devolves, I hope.
>
> 1. Sean sent a pull request that added an option to force packages to
> be cached by specifying an AlwaysCache attribute (yes/no) on the
> package. Caching is already controlled by a Cache attribute (yes/no).
> Sean gets bonus internet points for throwing a message if you were to
> specify both attributes. But the need to do that indicates a schema
> smell: Having two attributes to control three states is a bit wonky.
> One option is to create a new enum type to specify the three states.
> (This is done elsewhere in WiX, yielding perhaps my favorite boolean
> type: YesNoButton.) The downside is that while authoring would be
> compatible, there's a slight non-zero chance that someone could have a
> CodeDOM or similar dependency on the original type.
>
> Should we stick with the two attributes in v3.x and clean it up in v4.0?
>
> 2. Heath sent a pull request that, among other things, adds two
> methods to IBootstrapperApplication. Last time, we decided on a
> "no-error recompile required" policy. Heath suggested versioned
> interfaces. I'd be OK with that, as long as we don't carry them over
> to v4.0.
>
> Objections/concerns?
>
>
> --
> sig://boB
> http://joyofsetup.com/
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos. Get
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos. Get
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos. Get
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
WiX-devs mailing list
WiX-devs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-devs