Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,7 @@ stages:
}

$buildType = '$(channel)'
$majorMinorPatchRev = '$(MajorVersion).$(MinorVersion).$(versionMinDate)'
$majorMinorPatchRev = $majorMinorPatchRev + $paddedRevision
$majorMinorPatchRev = '$(MajorVersion).$(MinorVersion).$(PatchVersion)'

if ($env:ComponentType)
{
Expand Down Expand Up @@ -219,7 +218,11 @@ stages:
$formattedTag = ''
if(-not [String]::IsNullOrEmpty($versionTag))
{
$formattedTag = '-' + $versionTag
$formattedTag = '-' + $versionTag + "-" + $(versionMinDate) + $paddedRevision
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not SemVer compliant.

Copy link
Contributor Author

@Dreynor87 Dreynor87 Oct 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Including the Date and Revision for the release one, or in all cases? Re-reading semver.org, if I change that to a "+" does that work? I switched because I thought that M.m.p+DateRev was not ok for the vpack code.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, switching to "+" should address the SemVer issue. I agree that vpack limitations also need to be considered (I'm not familiar enough there to know whether there is a problem).

I'm still curious if this is a temporary change or intended long-term. If the latter, is there a spec to review?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do intend this to be long term. I am adding the date and revision in case we need to rebuild something internal (as we have seen multiple times trying to get 2.0.0-exp2 out the door). We dont want to have to bump everything another patch because of a problem with a single metapackage. I have not put this recent-ish design change into a spec yet.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not excited about this as the long-term design. I strongly recommend a spec and reviewing that before implementing something across all components. Differences from the old 2.0 spec would be especially good to discuss.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+stuff = build info, which is entirely informational. Whether and how this should be valued is hard to say given the lack of spec. We need spec, before doing any implementation.

RECOMMEND: Create specs/SemanticVersion.md and spell out how semver is defined/used (and of course follow up with spec review :-)

FYI per https://semver.org

<valid semver> ::= <version core>
                 | <version core> "-" <pre-release>
                 | <version core> "+" <build>
                 | <version core> "-" <pre-release> "+" <build>

}
else
{
$formattedTag = "-" + $(versionMinDate) + $paddedRevision
}
Write-Host "Using Release Versioning"
$version = $majorMinorPatchRev + $formattedTag
Expand Down
18 changes: 15 additions & 3 deletions dev/WindowsAppRuntime_BootstrapDLL/MddBootstrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -508,12 +508,24 @@ std::wstring GetFrameworkPackageFamilyName(
PCWSTR packageVersionTag{ !versionTag ? L"" : versionTag };
PCWSTR packageVersionTagDelimiter{ (packageVersionTag[0] == L'\0') ? L"" : L"-"};

const std::wstring packageFamilyName{ std::format(L"{}.{}.{}{}{}_8wekyb3d8bbwe",
if (majorVersion == 1)
{
const std::wstring packageFamilyName{ std::format(L"{}.{}.{}{}{}_8wekyb3d8bbwe",
namePrefix, majorVersion, minorVersion,
packageVersionTagDelimiter, packageVersionTag) };
THROW_HR_IF_MSG(E_INVALIDARG, packageFamilyName.length() > PACKAGE_FAMILY_NAME_MAX_LENGTH, "%ls", packageFamilyName.c_str());
THROW_HR_IF_MSG(E_INVALIDARG, packageFamilyName.length() > PACKAGE_FAMILY_NAME_MAX_LENGTH, "%ls", packageFamilyName.c_str());

return packageFamilyName;
return packageFamilyName;
}
else
{
const std::wstring packageFamilyName{ std::format(L"{}.{}{}{}_8wekyb3d8bbwe",
namePrefix, majorVersion,
packageVersionTagDelimiter, packageVersionTag) };
THROW_HR_IF_MSG(E_INVALIDARG, packageFamilyName.length() > PACKAGE_FAMILY_NAME_MAX_LENGTH, "%ls", packageFamilyName.c_str());

return packageFamilyName;
}
}

/// Determine the path for the Windows App Runtime Framework package
Expand Down
Loading