Skip to content

Design versioning strategy for MSI pre-release & fix the MSI generator script #4627

@liliankasem

Description

@liliankasem

MSI versioning is limited to x.x.x (major.minor.build) and as such does not support pre-release versions, or semver standards.

Today, the MSI script is broken as it assumes MSI versioning allows 4 numbers (x.x.x.x):

# If the version has -ci.x.y, convert it to .x to ensure we have a valid MSI version format
$cliVersion = $cliVersion -replace '-(?:ci|beta|rc|dev)\.([0-9]+)\.0$', '.$1'

(It also doensn't support the -preview suffix but that's besides the point)

This hasn't been an issue so far as we have never released a preview MSI package before, however if we ever intend to in future, this issue needs to be addressed before hand.

Tasks

  • Design a versioning approach that supports pre-release versioning

An potential solution could be using the ado build number for all MSI versions (as suggested by the MSI version docs e.g. 4.3.235164), never including patch. Or designing a schema such as this one.

  • Update the generate-msi-files.ps1 to adhear to the new versioning standard

If we decide that we do not want to ever support MSI pre-releases (that's also fine as we have many other release channels), we should at the very least fix the current msi generator script to ensure a valid MSI version when any suffix is included.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions