Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
3 changes: 3 additions & 0 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,14 @@
<!-- This version should be N-1 (ie the currently released version) in the preview branch but N-2 in main so that workloads stay behind the unreleased version -->
<VersionFeature80>22</VersionFeature80>
<VersionFeature90>11</VersionFeature90>
<VersionFeature100>0</VersionFeature100>
<!-- Should be kept in sync with VersionFeature70. It should match the version of Microsoft.NET.ILLink.Tasks
referenced by the same 7.0 SDK that references the 7.0.VersionFeature70 runtime pack. -->
<_NET70ILLinkPackVersion>7.0.100-1.23211.1</_NET70ILLinkPackVersion>
<!-- workload-specific version information -->
<VersionFeature80ForWorkloads>$(VersionFeature80)</VersionFeature80ForWorkloads>
<VersionFeature90ForWorkloads>$(VersionFeature90)</VersionFeature90ForWorkloads>
<VersionFeature100ForWorkloads>$(VersionFeature100)</VersionFeature100ForWorkloads>
</PropertyGroup>
<PropertyGroup Label="Restore feeds">
<!-- In an orchestrated build, this may be overridden to other Azure feeds. -->
Expand Down Expand Up @@ -119,6 +121,7 @@
<!-- Dependencies from https://github.com/dotnet/emsdk -->
<!-- emscripten versions, these are are included in package IDs and need to be kept in sync with emsdk -->
<EmscriptenVersionCurrent>3.1.56</EmscriptenVersionCurrent>
<EmscriptenVersionNet10>3.1.56</EmscriptenVersionNet10>
<EmscriptenVersionNet9>3.1.56</EmscriptenVersionNet9>
<EmscriptenVersionNet8>3.1.34</EmscriptenVersionNet8>
<EmscriptenVersionNet7>3.1.12</EmscriptenVersionNet7>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,13 @@ protected List<WorkloadSetRecord> GetWorkloadSetRecords()
"Microsoft.NET.Workload.Emscripten.net7",
"Microsoft.NET.Workload.Emscripten.net8",
"Microsoft.NET.Workload.Emscripten.net9",
"Microsoft.NET.Workload.Emscripten.net10",
"Microsoft.NET.Workload.Mono.ToolChain.Current",
"Microsoft.NET.Workload.Mono.ToolChain.net6",
"Microsoft.NET.Workload.Mono.ToolChain.net7",
"Microsoft.NET.Workload.Mono.ToolChain.net8",
"Microsoft.NET.Workload.Mono.ToolChain.net9",
"Microsoft.NET.Workload.Mono.ToolChain.net10"
];

private static readonly IReadOnlyDictionary<string, string> ManifestIdCasing = CasedManifestIds.ToDictionary(id => id.ToLowerInvariant()).AsReadOnly();
Expand Down Expand Up @@ -241,7 +243,7 @@ protected List<WorkloadManifestRecord> GetWorkloadManifestRecords()
/// <returns>A UUID generated using the given namespace UUID and name.</returns>
public static Guid CreateUuid(Guid namespaceUuid, string name)
{
// 1. Convert the name to a canonical sequence of octets (as defined by the standards or conventions of its name space); put the name space ID in network byte order.
// 1. Convert the name to a canonical sequence of octets (as defined by the standards or conventions of its name space); put the name space ID in network byte order.
byte[] namespaceBytes = namespaceUuid.ToByteArray();
// Octet 0-3
int timeLow = IPAddress.HostToNetworkOrder(BitConverter.ToInt32(namespaceBytes, 0));
Expand All @@ -268,29 +270,29 @@ public static Guid CreateUuid(Guid namespaceUuid, string name)

Array.Resize(ref hash, 16);

// 3. Set octets zero through 3 of the time_low field to octets zero through 3 of the hash.
// 3. Set octets zero through 3 of the time_low field to octets zero through 3 of the hash.
timeLow = IPAddress.NetworkToHostOrder(BitConverter.ToInt32(hash, 0));
Buffer.BlockCopy(BitConverter.GetBytes(timeLow), 0, hash, 0, 4);

// 4. Set octets zero and one of the time_mid field to octets 4 and 5 of the hash.
// 4. Set octets zero and one of the time_mid field to octets 4 and 5 of the hash.
timeMid = IPAddress.NetworkToHostOrder(BitConverter.ToInt16(hash, 4));
Buffer.BlockCopy(BitConverter.GetBytes(timeMid), 0, hash, 4, 2);

// 5. Set octets zero and one of the time_hi_and_version field to octets 6 and 7 of the hash.
// 5. Set octets zero and one of the time_hi_and_version field to octets 6 and 7 of the hash.
timeHiVersion = IPAddress.NetworkToHostOrder(BitConverter.ToInt16(hash, 6));

// 6. Set the four most significant bits (bits 12 through 15) of the time_hi_and_version field to the appropriate 4-bit version number from Section 4.1.3.
// 6. Set the four most significant bits (bits 12 through 15) of the time_hi_and_version field to the appropriate 4-bit version number from Section 4.1.3.
timeHiVersion = (short)((timeHiVersion & 0x0fff) | 0x3000);
Buffer.BlockCopy(BitConverter.GetBytes(timeHiVersion), 0, hash, 6, 2);

// 7. Set the clock_seq_hi_and_reserved field to octet 8 of the hash.
// 7. Set the clock_seq_hi_and_reserved field to octet 8 of the hash.
// 8. Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.
hash[8] = (byte)((hash[8] & 0x3f) | 0x80);

// Steps 9-11 are essentially no-ops, but provided for completion sake
// 9. Set the clock_seq_low field to octet 9 of the hash.
// 10. Set octets zero through five of the node field to octets 10 through 15 of the hash.
// 11. Convert the resulting UUID to local byte order.
// 11. Convert the resulting UUID to local byte order.

return new Guid(hash);
}
Expand Down
6 changes: 4 additions & 2 deletions src/Layout/redist/targets/BundledManifests.targets
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@
<BuiltinManifests Include="microsoft.net.workload.emscripten.net7" />
<BuiltinManifests Include="microsoft.net.workload.emscripten.net8" />
<BuiltinManifests Include="microsoft.net.workload.emscripten.net9" />
<BuiltinManifests Include="microsoft.net.workload.emscripten.net10" />
<BuiltinManifests Include="microsoft.net.workload.mono.toolchain.net6" />
<BuiltinManifests Include="microsoft.net.workload.mono.toolchain.net7" />
<BuiltinManifests Include="microsoft.net.workload.mono.toolchain.net8" />
<BuiltinManifests Include="microsoft.net.workload.mono.toolchain.net9" />
<BuiltinManifests Include="microsoft.net.workload.mono.toolchain.net10" />
</ItemGroup>

<!-- Calculate NuGet package IDs for bundled manifests -->
Expand Down Expand Up @@ -117,7 +119,7 @@
<!-- NOTE: When setting this to true, we need to also add logic to include it in the exe installation bundle, either via a new MSI or by including it in an existing one. -->
<GenerateBaselineWorkloadSet>false</GenerateBaselineWorkloadSet>
</PropertyGroup>

<Target Name="LayoutBaselineWorkloadSet" DependsOnTargets="LayoutManifests" Condition="'$(GenerateBaselineWorkloadSet)' == 'true'">

<PropertyGroup>
Expand All @@ -130,7 +132,7 @@
</GetWorkloadSetFeatureBand>

<PropertyGroup>
<RealFormattedManifestPaths>$(RedistInstallerLayoutPath)sdk-manifests\$(WorkloadSetFeatureBand)\workloadsets\$(WorkloadSetVersion)</RealFormattedManifestPaths>
<RealFormattedManifestPaths>$(RedistInstallerLayoutPath)sdk-manifests\$(WorkloadSetFeatureBand)\workloadsets\$(WorkloadSetVersion)</RealFormattedManifestPaths>
</PropertyGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

<Target Name="_GenerateWorkloadManifestFiles">
<ItemGroup>
<_WorkloadManifestValues Include="NetVersion" Value="net10" />
<_WorkloadManifestValues Include="NetVersion" Value="net11" />
<_WorkloadManifestValues Include="WorkloadVersion" Value="$(PackageVersion)" />
<_WorkloadManifestValues Include="EmsdkVersion" Value="$(MicrosoftNETCoreAppRuntimePackageVersion)" />
<_WorkloadManifestValues Include="EmscriptenVersion" Value="$(EmscriptenVersionCurrent)" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
</PropertyGroup>

<PropertyGroup Condition="'$(UsingBrowserRuntimeWorkload)' == 'true' or '$(UsingEmscriptenWorkload)' == 'true'">
<CurrentEmsdkTarget Condition="'$(TreatPreviousAsCurrent)' == 'true'">9.0</CurrentEmsdkTarget>
<CurrentEmsdkTarget Condition="'$(TreatPreviousAsCurrent)' != 'true'">10.0</CurrentEmsdkTarget>
<CurrentEmsdkTarget Condition="'$(TreatPreviousAsCurrent)' == 'true'">10.0</CurrentEmsdkTarget>
<CurrentEmsdkTarget Condition="'$(TreatPreviousAsCurrent)' != 'true'">11.0</CurrentEmsdkTarget>
</PropertyGroup>

<PropertyGroup Condition="'$(BrowserWorkloadDisabled)' == 'true'">
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<Project Sdk="Microsoft.Build.NoTargets">

<PropertyGroup>
<GenerateNuspecDependsOn>_GenerateWorkloadManifestFiles;$(GenerateNuspecDependsOn)</GenerateNuspecDependsOn>
</PropertyGroup>

<PropertyGroup>
<WorkloadManifestPath>$(IntermediateOutputPath)WorkloadManifest.json</WorkloadManifestPath>
<WorkloadManifestTargetsPath>$(IntermediateOutputPath)WorkloadManifest.targets</WorkloadManifestTargetsPath>
</PropertyGroup>

<ItemGroup>
<None Include="$(WorkloadManifestPath)" Pack="true" PackagePath="data" />
<None Include="$(WorkloadManifestTargetsPath)" Pack="true" PackagePath="data" />
</ItemGroup>

<Target Name="_GenerateWorkloadManifestFiles">
<ItemGroup>
<_WorkloadManifestValues Include="NetVersion" Value="net10" />
<_WorkloadManifestValues Include="WorkloadVersion" Value="$(PackageVersion)" />
<_WorkloadManifestValues Include="EmsdkVersion" Value="10.0.$(VersionFeature100ForWorkloads)" />
<_WorkloadManifestValues Include="EmscriptenVersion" Value="$(EmscriptenVersionNet10)" />
</ItemGroup>

<Error Condition="'%(_WorkloadManifestValues.Value)' == ''"
Text="No value specified for template variable '%(_WorkloadManifestValues.Identity)'" />

<GenerateFileFromTemplate
TemplateFile="WorkloadManifest.json.in"
Properties="@(_WorkloadManifestValues->'%(Identity)=%(Value)')"
OutputPath="$(WorkloadManifestPath)" />
<GenerateFileFromTemplate
TemplateFile="WorkloadManifest.targets.in"
Properties="@(_WorkloadManifestValues->'%(Identity)=%(Value)')"
OutputPath="$(WorkloadManifestTargetsPath)" />
</Target>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"version": "${WorkloadVersion}",
"workloads": {
"microsoft-net-sdk-emscripten-${NetVersion}": {
"abstract": true,
"description": "Emscripten SDK compiler tooling for ${NetVersion}.0",
"packs": [
"Microsoft.NET.Runtime.Emscripten.Node.${NetVersion}",
"Microsoft.NET.Runtime.Emscripten.Python.${NetVersion}",
"Microsoft.NET.Runtime.Emscripten.Cache.${NetVersion}",
"Microsoft.NET.Runtime.Emscripten.Sdk.${NetVersion}"
],
"platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "linux-musl-x64", "linux-musl-arm64", "osx-x64", "osx-arm64" ]
}
},
"packs": {
"Microsoft.NET.Runtime.Emscripten.Node.${NetVersion}" : {
"kind": "Sdk",
"version": "${EmsdkVersion}",
"alias-to": {
"win-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Node.win-x64",
"win-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Node.win-arm64",
"linux-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Node.linux-x64",
"linux-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Node.linux-arm64",
"linux-musl-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Node.linux-musl-x64",
"linux-musl-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Node.linux-musl-arm64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Node.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Node.osx-arm64"
}
},
"Microsoft.NET.Runtime.Emscripten.Python.${NetVersion}" : {
"kind": "Sdk",
"version": "${EmsdkVersion}",
"alias-to": {
"win-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Python.win-x64",
"win-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Python.win-arm64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Python.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Python.osx-arm64"
}
},
"Microsoft.NET.Runtime.Emscripten.Cache.${NetVersion}" : {
"kind": "Sdk",
"version": "${EmsdkVersion}",
"alias-to": {
"win-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Cache.win-x64",
"win-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Cache.win-arm64",
"linux-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Cache.linux-x64",
"linux-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Cache.linux-arm64",
"linux-musl-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Cache.linux-musl-x64",
"linux-musl-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Cache.linux-musl-arm64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Cache.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Cache.osx-arm64"
}
},
"Microsoft.NET.Runtime.Emscripten.Sdk.${NetVersion}" : {
"kind": "Sdk",
"version": "${EmsdkVersion}",
"alias-to": {
"win-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Sdk.win-x64",
"win-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Sdk.win-arm64",
"linux-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Sdk.linux-x64",
"linux-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Sdk.linux-arm64",
"linux-musl-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Sdk.linux-musl-x64",
"linux-musl-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Sdk.linux-musl-arm64",
"osx-x64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Sdk.osx-x64",
"osx-arm64": "Microsoft.NET.Runtime.Emscripten.${EmscriptenVersion}.Sdk.osx-arm64"
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Project>
<ImportGroup Condition="'$(RuntimeIdentifier)' == 'browser-wasm' and '$(UsingBrowserRuntimeWorkload)' == 'true' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '10.0')) and $([MSBuild]::VersionLessThan('$(TargetFrameworkVersion)', '$(CurrentEmsdkTarget)'))">
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.Emscripten.Python.${NetVersion}" Condition="!$([MSBuild]::IsOsPlatform('Linux'))" />
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.Emscripten.Node.${NetVersion}" />
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.Emscripten.Sdk.${NetVersion}" />
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.Emscripten.Cache.${NetVersion}" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.Emscripten.Cache.${NetVersion}" />
</ImportGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,11 @@
<Target Name="_GenerateWorkloadManifestFiles">
<ItemGroup>
<!-- When changing 'NetVersion', also change in the dotnet/runtime repo the value of 'PackageId' in Microsoft.NET.Runtime.WebAssembly.Templates.csproj -->
<_WorkloadManifestValues Include="NetVersion" Value="net10" /> <!-- NetCurrent -->
<_WorkloadManifestValues Include="NetVersion" Value="net11" /> <!-- NetCurrent -->
<_WorkloadManifestValues Include="FrameworkVersionCurrent" Value="11.0" />
<_WorkloadManifestValues Include="WorkloadVersion" Value="$(PackageVersion)" />
<_WorkloadManifestValues Include="RuntimeVersion" Value="$(MicrosoftNETCoreAppRuntimePackageVersion)" />
<_WorkloadManifestValues Include="RuntimeVersionNet10" Value="10.0.$(VersionFeature100ForWorkloads)" />
<_WorkloadManifestValues Include="RuntimeVersionNet9" Value="9.0.$(VersionFeature90ForWorkloads)" />
<_WorkloadManifestValues Include="RuntimeVersionNet8" Value="8.0.$(VersionFeature80ForWorkloads)" />
<_WorkloadManifestValues Include="RuntimeVersionNet7" Value="7.0.$(VersionFeature70)" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
<Project>
<PropertyGroup>
<_RuntimePackInWorkloadVersionCurrent>${RuntimeVersion}</_RuntimePackInWorkloadVersionCurrent>
<_RuntimePackInWorkloadVersion10>${RuntimeVersionNet10}</_RuntimePackInWorkloadVersion10>
<_RuntimePackInWorkloadVersion9>${RuntimeVersionNet9}</_RuntimePackInWorkloadVersion9>
<_RuntimePackInWorkloadVersion8>${RuntimeVersionNet8}</_RuntimePackInWorkloadVersion8>
<_RuntimePackInWorkloadVersion7>${RuntimeVersionNet7}</_RuntimePackInWorkloadVersion7>
<_RuntimePackInWorkloadVersion6>${RuntimeVersionNet6}</_RuntimePackInWorkloadVersion6>

<TargetsCurrent Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '10.0'))">true</TargetsCurrent>
<TargetsCurrent Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '${FrameworkVersionCurrent}'))">true</TargetsCurrent>

<!-- Disabled until next release: force net10.0 to use the current targets until the SDK can target net11.0 -->
<!--
Expand All @@ -16,6 +17,7 @@
-->
</PropertyGroup>
<PropertyGroup Condition="'$(TargetsCurrent)' != 'true'">
<TargetsNet10 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '10.0'))">true</TargetsNet10>
<TargetsNet9 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '9.0'))">true</TargetsNet9>
<TargetsNet8 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '8.0'))">true</TargetsNet8>
<TargetsNet7 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '7.0'))">true</TargetsNet7>
Expand All @@ -33,7 +35,8 @@

<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'browser-wasm'">
<SelfContained>true</SelfContained>
<WasmNativeWorkloadAvailable Condition="'$(TargetsCurrent)' == 'true'">$(WasmNativeWorkload10)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(TargetsCurrent)' == 'true'">$(WasmNativeWorkload11)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet10)' == 'true'">$(WasmNativeWorkload10)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet9)' == 'true'">$(WasmNativeWorkload9)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet8)' == 'true'">$(WasmNativeWorkload8)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet7)' == 'true'">$(WasmNativeWorkload7)</WasmNativeWorkloadAvailable>
Expand Down
Loading
Loading