[wix-devs] 6210 - Burn engine should handle non-QWORD versions

Sean Hall r.sean.hall at gmail.com
Wed Jul 29 14:22:16 PDT 2020


> Should there be some indication when parsing that the parsed thing isn't
at all recognized as a version?

Ok, good. It sounds like I've convinced you that there's potential for
different parsing between Burn and general purpose.

> Is there a use case for arbitrary strings to be treated as
"v0-[arbitrarystring]" in version comparisons?

Like I said in the WIP, the behavior when it's not a valid Nuget version is
arbitrary and we can define it to be whatever we want.

If we want to change the comparison logic to take into account whether the
version was "valid", that requires us to write a spec on what is a valid
version. Otherwise, defining what is valid is out of scope for this issue.

At this point, I'm thinking about moving the methods into "verutil". I'll
add a Boolean parameter to the parse method for "strict mode" and return
E_NOTIMPL if it's true. For the struct name, I liked VERUTIL_VERSION the
best out of your suggestions. But I was more looking for a name that
described that it's a blending of Windows 4 part assembly versions and
SemVer 2.0. WINSEMVER_VERSION? WIXSEMVER_VERSION?

On Wed, Jul 22, 2020 at 9:24 AM Rob Mensching <rob at firegiant.com> wrote:

> Very interesting.  "@#$%^&*" is not valid SemVer nor 4-dotted.
>
> Should there be some indication when parsing that the parsed thing isn't
> at all recognized as a version?
> Is there a use case for arbitrary strings to be treated as
> "v0-[arbitrarystring]" in version comparisons?
>
>
> -----Original Message-----
> From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Sean
> Hall via wix-devs
> Sent: Friday, July 17, 2020 4:25 PM
> To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
> Cc: Sean Hall <r.sean.hall at gmail.com>
> Subject: Re: [wix-devs] 6210 - Burn engine should handle non-QWORD versions
>
> It would be parsed to
>
> major - 0
> minor - 0
> patch - 0
> revision - 0
> release labels - [] (empty array)
> metadata - "@#$%^&*"
>
> "v0" or "0" or "" are all parsed to
>
> major - 0
> minor - 0
> patch - 0
> revision - 0
> release labels - [] (empty array)
> metadata - "" (empty string)
>
> "@#$%^&*" would be greater than "v0"
>
>



More information about the wix-devs mailing list