Skip to content

Commit a768d76

Browse files
Robert Holtrjmholt
authored andcommitted
Add proper versioning to schema
1 parent 1413c4b commit a768d76

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

PSCompatibilityCollector/Microsoft.PowerShell.CrossCompatibility/Collection/CompatibilityProfileCollector.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public CompatibilityProfileCollector Build(SMA.PowerShell pwsh)
7676
}
7777
}
7878

79-
private SMA.PowerShell _pwsh;
79+
private static readonly Version s_currentProfileSchemaVersion = new Version(1, 1);
8080

8181
private readonly PowerShellDataCollector _pwshDataCollector;
8282

@@ -86,6 +86,8 @@ public CompatibilityProfileCollector Build(SMA.PowerShell pwsh)
8686

8787
private readonly Func<ApplicationInfo, Version> _getApplicationVersion;
8888

89+
private SMA.PowerShell _pwsh;
90+
8991
private CompatibilityProfileCollector(
9092
SMA.PowerShell pwsh,
9193
PlatformInformationCollector platformInfoCollector,
@@ -126,6 +128,7 @@ public CompatibilityProfileData GetCompatibilityData(string platformId, out IEnu
126128

127129
return new CompatibilityProfileData()
128130
{
131+
ProfileSchemaVersion = s_currentProfileSchemaVersion,
129132
Id = platformId ?? PlatformNaming.GetPlatformName(platformData),
130133
Platform = platformData,
131134
Runtime = GetRuntimeData(out errors)

PSCompatibilityCollector/Microsoft.PowerShell.CrossCompatibility/Utility/JsonProfileSerializer.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4+
using System;
45
using System.Collections.Generic;
56
using System.IO;
67
using System.Text;
@@ -197,7 +198,14 @@ public CompatibilityProfileData Deserialize(FileInfo file)
197198
/// <returns>The hydrated compatibility profile as a .NET object.</returns>
198199
public CompatibilityProfileData Deserialize(TextReader textReader)
199200
{
200-
return _serializer.Deserialize<CompatibilityProfileData>(new JsonTextReader(textReader));
201+
CompatibilityProfileData profile = _serializer.Deserialize<CompatibilityProfileData>(new JsonTextReader(textReader));
202+
203+
if (profile.ProfileSchemaVersion == null)
204+
{
205+
profile.ProfileSchemaVersion = new Version(1, 0);
206+
}
207+
208+
return profile;
201209
}
202210

203211
private static IList<JsonConverter> GetFormatConverters()

0 commit comments

Comments
 (0)