[wix-devs] WiX v4 id versioning
osito at live.com
Thu Jan 31 18:27:02 PST 2019
Would be my vote
Get Outlook for Android<https://aka.ms/ghei36>
From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> on behalf of Rob Mensching via wix-devs <wix-devs at lists.wixtoolset.org>
Sent: Thursday, January 31, 2019 8:53:48 AM
To: WiX Toolset Developer Mailing List
Cc: Rob Mensching
Subject: [wix-devs] WiX v4 id versioning
As discussed in the meeting #162 (https://www.firegiant.com/blog/2019/1/17/wix-online-meeting-162-highlights/) there was a discussion about WiX Extension versioning. There were some random discussions here after that meeting about that topic but I wanted to focus it on a single thread.
I'm going to assume you're caught up on the conversation. If not, go back and watch the meeting linked in the blog above.
I posit there are two "types" of versions we need to consider here: the core toolset and extensions. (There is actually a third version if we include Votive but since Votive multi-targets WiX Toolset versions (v3 and v4) it's pretty clearly on its own).
We can choose to make the versioning scheme of the core the same as extensions but we don't have to.
There are two parts to consider: the "id" part and the "version" part. The "id" part is a string that must start with "WixToolset." (to reserve the namespace). The "version" part is a semver-based version.
In these examples, I'll be using "#" to designate the automatically increasing "build number" (actually GitVersioning number but that detail isn't important).
Today the core has this important package:
Also today, arguably the most used extension is:
Of course, the issue is how to "match" the v4 WixToolset.Util.wixext to the v4 WixToolset.MSBuild after we create v5 WixToolset.MSBuild and need to start creating v5 extensions. Semver on WixToolset.MSBuild is fine because we can go from v4.0.# to v5.0.# and demonstrate the big breaking change*.
However, a breaking change in WixToolset.Util.wixext going from v4.0.# to v5.0.# would make it confusing which versions of WixToolset.Util.wixext went with which versions of WixToolset.MSBuild (i.e. WixToolset.Util.wixext v4.0.# and v5.0.# both target WixToolset.MSBuild v4.0.#). It also could be confusing if we have a WixToolset.MSBuild v4.1.# and WixToolset.Util.wixext has v4.0.# and v4.1.# and v4.2.#.... which maps to which?
So, one option is to push a piece of the version into the "id" part. If we do that then the question is where to put it and do we reset the "version" part to 1.0?
Here are some permutations to consider:
If we wanted to push the version into the id for the core* then it could be one of these (or others?):
So, I'm looking for permutations that people think would be useful (or vote for something already proposed).
* Although if someone wants to argue that we need to be able to have big breaking changes *within* the WiX v4 release, I'd be interested to hear it.
FireGiant | Dedicated support for the WiX toolset | http://www.firegiant.com/
WiX Toolset Developer Mailing List provided by FireGiant http://www.firegiant.com/
More information about the wix-devs