From fe4540d11273086868126aec11899e75541e271d Mon Sep 17 00:00:00 2001 From: Joe Mayo Date: Wed, 8 May 2024 12:11:24 -0700 Subject: [PATCH] Update PaYaml schema and OM to be v3.0 --- .vscode/settings.json | 6 ++-- schemas/pa-yaml/{v2.2 => v3.0}/pa.schema.yaml | 4 +-- .../Models/PaControlInstanceContainerTests.cs | 2 +- .../Serialization/PaYamlSerializerTests.cs | 34 +++++++++---------- .../Persistence.Tests.csproj | 4 +-- src/Persistence/GlobalSuppressions.cs | 2 +- .../{SchemaV2_2 => SchemaV3_3}/AppInstance.cs | 2 +- .../ComponentDefinition.cs | 2 +- .../ControlGroup.cs | 2 +- .../ControlInstance.cs | 2 +- .../IPaControlInstanceContainer.cs | 2 +- .../ModelsExtensions.cs | 2 +- .../{SchemaV2_2 => SchemaV3_3}/PaModule.cs | 2 +- .../SchemaKeywords.cs | 2 +- .../ScreenInstance.cs | 2 +- .../Serialization/PaYamlSerializerOptions.cs | 2 +- src/schemas-tests/.vscode/settings.json | 4 +-- .../Examples/AmbiguousComponentNames.pa.yaml | 0 .../Examples/Single-File-App.pa.yaml | 0 .../{v2.2 => v3.0}/Examples/Src/App.pa.yaml | 0 .../Src/Components/MyHeaderComponent.pa.yaml | 0 .../Src/Screens/ComponentsScreen4.pa.yaml | 0 .../Examples/Src/Screens/FormsScreen2.pa.yaml | 0 .../Examples/Src/Screens/Screen1.pa.yaml | 0 .../{v2.2 => v3.0}/FullSchemaUses/App.pa.yaml | 0 .../Screens-general-controls.pa.yaml | 0 .../Screens-with-components.pa.yaml | 0 .../pa-yaml/{v2.2 => v3.0}/pa.schema.yaml | 4 +-- src/schemas/publish.cmd | 8 ++--- 29 files changed, 44 insertions(+), 44 deletions(-) rename schemas/pa-yaml/{v2.2 => v3.0}/pa.schema.yaml (99%) rename src/Persistence/PaYaml/Models/{SchemaV2_2 => SchemaV3_3}/AppInstance.cs (95%) rename src/Persistence/PaYaml/Models/{SchemaV2_2 => SchemaV3_3}/ComponentDefinition.cs (98%) rename src/Persistence/PaYaml/Models/{SchemaV2_2 => SchemaV3_3}/ControlGroup.cs (94%) rename src/Persistence/PaYaml/Models/{SchemaV2_2 => SchemaV3_3}/ControlInstance.cs (98%) rename src/Persistence/PaYaml/Models/{SchemaV2_2 => SchemaV3_3}/IPaControlInstanceContainer.cs (94%) rename src/Persistence/PaYaml/Models/{SchemaV2_2 => SchemaV3_3}/ModelsExtensions.cs (98%) rename src/Persistence/PaYaml/Models/{SchemaV2_2 => SchemaV3_3}/PaModule.cs (96%) rename src/Persistence/PaYaml/Models/{SchemaV2_2 => SchemaV3_3}/SchemaKeywords.cs (97%) rename src/Persistence/PaYaml/Models/{SchemaV2_2 => SchemaV3_3}/ScreenInstance.cs (96%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/Examples/AmbiguousComponentNames.pa.yaml (100%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/Examples/Single-File-App.pa.yaml (100%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/Examples/Src/App.pa.yaml (100%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/Examples/Src/Components/MyHeaderComponent.pa.yaml (100%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/Examples/Src/Screens/ComponentsScreen4.pa.yaml (100%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/Examples/Src/Screens/FormsScreen2.pa.yaml (100%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/Examples/Src/Screens/Screen1.pa.yaml (100%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/FullSchemaUses/App.pa.yaml (100%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/FullSchemaUses/Screens-general-controls.pa.yaml (100%) rename src/schemas-tests/pa-yaml/{v2.2 => v3.0}/FullSchemaUses/Screens-with-components.pa.yaml (100%) rename src/schemas/pa-yaml/{v2.2 => v3.0}/pa.schema.yaml (99%) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3f8631a5..8bdd2d2d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,11 +10,11 @@ "yaml.validate": true, "yaml.schemas": { "http://json-schema.org/draft-07/schema#": "*.schema.yaml", - "src/schemas/pa-yaml/v2.2/pa.schema.yaml": [ + "src/schemas/pa-yaml/v3.0/pa.schema.yaml": [ //"*.pa.yaml", - "src/schemas-tests/pa-yaml/v2.2/**/*.pa.yaml" + "src/schemas-tests/pa-yaml/v3.0/**/*.pa.yaml" ], - "https://raw.githubusercontent.com/microsoft/PowerApps-Tooling/master/schemas/pa-yaml/v2.2/pa.schema.yaml": [ + "https://raw.githubusercontent.com/microsoft/PowerApps-Tooling/master/schemas/pa-yaml/v3.0/pa.schema.yaml": [ "*.pa.yaml" ] } diff --git a/schemas/pa-yaml/v2.2/pa.schema.yaml b/schemas/pa-yaml/v3.0/pa.schema.yaml similarity index 99% rename from schemas/pa-yaml/v2.2/pa.schema.yaml rename to schemas/pa-yaml/v3.0/pa.schema.yaml index 79d23680..b8c6ec5e 100644 --- a/schemas/pa-yaml/v2.2/pa.schema.yaml +++ b/schemas/pa-yaml/v3.0/pa.schema.yaml @@ -4,8 +4,8 @@ # How to add snippets for use in VS Code: https://code.visualstudio.com/docs/languages/json#_define-snippets-in-json-schemas $schema: http://json-schema.org/draft-07/schema# -$id: http://powerapps.com/schemas/pa-yaml/v2.2/pa.schema -title: Microsoft Power Apps schema for app source yaml files (v2.2). +$id: http://powerapps.com/schemas/pa-yaml/v3.0/pa.schema +title: Microsoft Power Apps schema for app source yaml files (v3.0). description: >- The schema for all *.pa.yaml files which are used to describe a Power Apps canvas app. All *.pa.yaml files in an *.msapp are logically combined into a single *.pa.yaml file. diff --git a/src/Persistence.Tests/PaYaml/Models/PaControlInstanceContainerTests.cs b/src/Persistence.Tests/PaYaml/Models/PaControlInstanceContainerTests.cs index 2f71f6f0..c2738580 100644 --- a/src/Persistence.Tests/PaYaml/Models/PaControlInstanceContainerTests.cs +++ b/src/Persistence.Tests/PaYaml/Models/PaControlInstanceContainerTests.cs @@ -2,7 +2,7 @@ // Licensed under the MIT License. using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models; -using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; namespace Persistence.Tests.PaYaml.Models; diff --git a/src/Persistence.Tests/PaYaml/Serialization/PaYamlSerializerTests.cs b/src/Persistence.Tests/PaYaml/Serialization/PaYamlSerializerTests.cs index af4669d2..da40c3fc 100644 --- a/src/Persistence.Tests/PaYaml/Serialization/PaYamlSerializerTests.cs +++ b/src/Persistence.Tests/PaYaml/Serialization/PaYamlSerializerTests.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Serialization; namespace Persistence.Tests.PaYaml.Serialization; @@ -12,7 +12,7 @@ public class PaYamlSerializerTests : VSTestBase #region Deserialize Examples [TestMethod] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/App.pa.yaml", 5)] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/App.pa.yaml", 5)] public void DeserializeExamplePaYamlApp(string path, int expectedAppPropertiesCount) { var paFileRoot = PaYamlSerializer.Deserialize(File.ReadAllText(path)); @@ -29,9 +29,9 @@ public void DeserializeExamplePaYamlApp(string path, int expectedAppPropertiesCo } [TestMethod] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/Screens/Screen1.pa.yaml", 2, 8, 14, 2, 3)] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/Screens/FormsScreen2.pa.yaml", 0, 1, 62, 0, 0)] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/Screens/ComponentsScreen4.pa.yaml", 0, 6, 6, 0, 0)] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/Screens/Screen1.pa.yaml", 2, 8, 14, 2, 3)] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/Screens/FormsScreen2.pa.yaml", 0, 1, 62, 0, 0)] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/Screens/ComponentsScreen4.pa.yaml", 0, 6, 6, 0, 0)] public void DeserializeExamplePaYamlScreen(string path, int expectedScreenPropertiesCount, int expectedScreenChildrenCount, int expectedDescendantsCount, int expectedScreenGroupsCount, int expectedTotalGroupsCount) { var paFileRoot = PaYamlSerializer.Deserialize(File.ReadAllText(path)); @@ -54,7 +54,7 @@ public void DeserializeExamplePaYamlScreen(string path, int expectedScreenProper } [TestMethod] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/Components/MyHeaderComponent.pa.yaml", 9, 6, 1)] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/Components/MyHeaderComponent.pa.yaml", 9, 6, 1)] public void DeserializeExamplePaYamlComponentDefinition(string path, int expectedCustomPropertiesCount, int expectedPropertiesCount, int expectedChildrenCount) { var paFileRoot = PaYamlSerializer.Deserialize(File.ReadAllText(path)); @@ -76,7 +76,7 @@ public void DeserializeExamplePaYamlComponentDefinition(string path, int expecte [TestMethod] public void DeserializeExamplePaYamlSingleFileApp() { - var path = @"_TestData/SchemaV2_2/Examples/Single-File-App.pa.yaml"; + var path = @"_TestData/SchemaV3_0/Examples/Single-File-App.pa.yaml"; var paFileRoot = PaYamlSerializer.Deserialize(File.ReadAllText(path)); paFileRoot.ShouldNotBeNull(); @@ -99,16 +99,16 @@ public void DeserializeExamplePaYamlSingleFileApp() #region RoundTrip from yaml [TestMethod] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/App.pa.yaml")] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/Screens/Screen1.pa.yaml")] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/Screens/FormsScreen2.pa.yaml")] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/Screens/ComponentsScreen4.pa.yaml")] - [DataRow(@"_TestData/SchemaV2_2/Examples/Src/Components/MyHeaderComponent.pa.yaml")] - [DataRow(@"_TestData/SchemaV2_2/Examples/Single-File-App.pa.yaml")] - [DataRow(@"_TestData/SchemaV2_2/Examples/AmbiguousComponentNames.pa.yaml")] - [DataRow(@"_TestData/SchemaV2_2/FullSchemaUses/App.pa.yaml")] - [DataRow(@"_TestData/SchemaV2_2/FullSchemaUses/Screens-general-controls.pa.yaml")] - [DataRow(@"_TestData/SchemaV2_2/FullSchemaUses/Screens-with-components.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/App.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/Screens/Screen1.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/Screens/FormsScreen2.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/Screens/ComponentsScreen4.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/Examples/Src/Components/MyHeaderComponent.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/Examples/Single-File-App.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/Examples/AmbiguousComponentNames.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/FullSchemaUses/App.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/FullSchemaUses/Screens-general-controls.pa.yaml")] + [DataRow(@"_TestData/SchemaV3_0/FullSchemaUses/Screens-with-components.pa.yaml")] public void RoundTripFromYaml(string path) { var originalYaml = File.ReadAllText(path); diff --git a/src/Persistence.Tests/Persistence.Tests.csproj b/src/Persistence.Tests/Persistence.Tests.csproj index 0b6cc8fa..ec782fa1 100644 --- a/src/Persistence.Tests/Persistence.Tests.csproj +++ b/src/Persistence.Tests/Persistence.Tests.csproj @@ -18,10 +18,10 @@ PreserveNewest - + PreserveNewest - + PreserveNewest diff --git a/src/Persistence/GlobalSuppressions.cs b/src/Persistence/GlobalSuppressions.cs index 58767c9d..7396319c 100644 --- a/src/Persistence/GlobalSuppressions.cs +++ b/src/Persistence/GlobalSuppressions.cs @@ -5,4 +5,4 @@ using System.Diagnostics.CodeAnalysis; -[assembly: SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Version number in namespace.", Scope = "namespace", Target = "~N:Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2")] +[assembly: SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Version number in namespace.", Scope = "namespace", Target = "~N:Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0")] diff --git a/src/Persistence/PaYaml/Models/SchemaV2_2/AppInstance.cs b/src/Persistence/PaYaml/Models/SchemaV3_3/AppInstance.cs similarity index 95% rename from src/Persistence/PaYaml/Models/SchemaV2_2/AppInstance.cs rename to src/Persistence/PaYaml/Models/SchemaV3_3/AppInstance.cs index 332a9f9f..8d989d31 100644 --- a/src/Persistence/PaYaml/Models/SchemaV2_2/AppInstance.cs +++ b/src/Persistence/PaYaml/Models/SchemaV3_3/AppInstance.cs @@ -3,7 +3,7 @@ using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.PowerFx; -namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; public record AppInstance { diff --git a/src/Persistence/PaYaml/Models/SchemaV2_2/ComponentDefinition.cs b/src/Persistence/PaYaml/Models/SchemaV3_3/ComponentDefinition.cs similarity index 98% rename from src/Persistence/PaYaml/Models/SchemaV2_2/ComponentDefinition.cs rename to src/Persistence/PaYaml/Models/SchemaV3_3/ComponentDefinition.cs index bc4ed2b2..ba7f5b59 100644 --- a/src/Persistence/PaYaml/Models/SchemaV2_2/ComponentDefinition.cs +++ b/src/Persistence/PaYaml/Models/SchemaV3_3/ComponentDefinition.cs @@ -4,7 +4,7 @@ using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.PowerFx; using YamlDotNet.Serialization; -namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; public enum ComponentPropertyKind { diff --git a/src/Persistence/PaYaml/Models/SchemaV2_2/ControlGroup.cs b/src/Persistence/PaYaml/Models/SchemaV3_3/ControlGroup.cs similarity index 94% rename from src/Persistence/PaYaml/Models/SchemaV2_2/ControlGroup.cs rename to src/Persistence/PaYaml/Models/SchemaV3_3/ControlGroup.cs index 46a71f38..adb25dea 100644 --- a/src/Persistence/PaYaml/Models/SchemaV2_2/ControlGroup.cs +++ b/src/Persistence/PaYaml/Models/SchemaV3_3/ControlGroup.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; /// /// Represents a group of controls under the same parent. diff --git a/src/Persistence/PaYaml/Models/SchemaV2_2/ControlInstance.cs b/src/Persistence/PaYaml/Models/SchemaV3_3/ControlInstance.cs similarity index 98% rename from src/Persistence/PaYaml/Models/SchemaV2_2/ControlInstance.cs rename to src/Persistence/PaYaml/Models/SchemaV3_3/ControlInstance.cs index 022348b7..f8afa553 100644 --- a/src/Persistence/PaYaml/Models/SchemaV2_2/ControlInstance.cs +++ b/src/Persistence/PaYaml/Models/SchemaV3_3/ControlInstance.cs @@ -5,7 +5,7 @@ using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.PowerFx; using YamlDotNet.Serialization; -namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; public record ControlInstance { diff --git a/src/Persistence/PaYaml/Models/SchemaV2_2/IPaControlInstanceContainer.cs b/src/Persistence/PaYaml/Models/SchemaV3_3/IPaControlInstanceContainer.cs similarity index 94% rename from src/Persistence/PaYaml/Models/SchemaV2_2/IPaControlInstanceContainer.cs rename to src/Persistence/PaYaml/Models/SchemaV3_3/IPaControlInstanceContainer.cs index bebe75fc..5e4789f2 100644 --- a/src/Persistence/PaYaml/Models/SchemaV2_2/IPaControlInstanceContainer.cs +++ b/src/Persistence/PaYaml/Models/SchemaV3_3/IPaControlInstanceContainer.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; public interface IPaControlInstanceContainer { diff --git a/src/Persistence/PaYaml/Models/SchemaV2_2/ModelsExtensions.cs b/src/Persistence/PaYaml/Models/SchemaV3_3/ModelsExtensions.cs similarity index 98% rename from src/Persistence/PaYaml/Models/SchemaV2_2/ModelsExtensions.cs rename to src/Persistence/PaYaml/Models/SchemaV3_3/ModelsExtensions.cs index 29f76737..cc52b624 100644 --- a/src/Persistence/PaYaml/Models/SchemaV2_2/ModelsExtensions.cs +++ b/src/Persistence/PaYaml/Models/SchemaV3_3/ModelsExtensions.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; public static class ModelsExtensions { diff --git a/src/Persistence/PaYaml/Models/SchemaV2_2/PaModule.cs b/src/Persistence/PaYaml/Models/SchemaV3_3/PaModule.cs similarity index 96% rename from src/Persistence/PaYaml/Models/SchemaV2_2/PaModule.cs rename to src/Persistence/PaYaml/Models/SchemaV3_3/PaModule.cs index 0eb13423..3a5f3c0a 100644 --- a/src/Persistence/PaYaml/Models/SchemaV2_2/PaModule.cs +++ b/src/Persistence/PaYaml/Models/SchemaV3_3/PaModule.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; /// /// Represents a Power Apps Yaml module file. diff --git a/src/Persistence/PaYaml/Models/SchemaV2_2/SchemaKeywords.cs b/src/Persistence/PaYaml/Models/SchemaV3_3/SchemaKeywords.cs similarity index 97% rename from src/Persistence/PaYaml/Models/SchemaV2_2/SchemaKeywords.cs rename to src/Persistence/PaYaml/Models/SchemaV3_3/SchemaKeywords.cs index 22e4e02f..94c12903 100644 --- a/src/Persistence/PaYaml/Models/SchemaV2_2/SchemaKeywords.cs +++ b/src/Persistence/PaYaml/Models/SchemaV3_3/SchemaKeywords.cs @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; public static class SchemaKeywords { diff --git a/src/Persistence/PaYaml/Models/SchemaV2_2/ScreenInstance.cs b/src/Persistence/PaYaml/Models/SchemaV3_3/ScreenInstance.cs similarity index 96% rename from src/Persistence/PaYaml/Models/SchemaV2_2/ScreenInstance.cs rename to src/Persistence/PaYaml/Models/SchemaV3_3/ScreenInstance.cs index aa3961a7..88e7cd34 100644 --- a/src/Persistence/PaYaml/Models/SchemaV2_2/ScreenInstance.cs +++ b/src/Persistence/PaYaml/Models/SchemaV3_3/ScreenInstance.cs @@ -3,7 +3,7 @@ using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.PowerFx; -namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +namespace Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; public record ScreenInstance : IPaControlInstanceContainer { diff --git a/src/Persistence/PaYaml/Serialization/PaYamlSerializerOptions.cs b/src/Persistence/PaYaml/Serialization/PaYamlSerializerOptions.cs index 7872783f..7845446a 100644 --- a/src/Persistence/PaYaml/Serialization/PaYamlSerializerOptions.cs +++ b/src/Persistence/PaYaml/Serialization/PaYamlSerializerOptions.cs @@ -2,7 +2,7 @@ // Licensed under the MIT License. using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.PowerFx; -using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV2_2; +using Microsoft.PowerPlatform.PowerApps.Persistence.PaYaml.Models.SchemaV3_0; using YamlDotNet.Serialization; using YamlDotNet.Serialization.NamingConventions; diff --git a/src/schemas-tests/.vscode/settings.json b/src/schemas-tests/.vscode/settings.json index 170d832f..aad689d6 100644 --- a/src/schemas-tests/.vscode/settings.json +++ b/src/schemas-tests/.vscode/settings.json @@ -18,8 +18,8 @@ ], "yaml.schemas": { "http://json-schema.org/draft-07/schema#": "*.schema.yaml", - "../schemas/pa-yaml/v2.2/pa.schema.yaml": [ - "pa-yaml/v2.2/**/*.pa.yaml" + "../schemas/pa-yaml/v3.0/pa.schema.yaml": [ + "pa-yaml/v3.0/**/*.pa.yaml" ] } } diff --git a/src/schemas-tests/pa-yaml/v2.2/Examples/AmbiguousComponentNames.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/Examples/AmbiguousComponentNames.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/Examples/AmbiguousComponentNames.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/Examples/AmbiguousComponentNames.pa.yaml diff --git a/src/schemas-tests/pa-yaml/v2.2/Examples/Single-File-App.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/Examples/Single-File-App.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/Examples/Single-File-App.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/Examples/Single-File-App.pa.yaml diff --git a/src/schemas-tests/pa-yaml/v2.2/Examples/Src/App.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/Examples/Src/App.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/Examples/Src/App.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/Examples/Src/App.pa.yaml diff --git a/src/schemas-tests/pa-yaml/v2.2/Examples/Src/Components/MyHeaderComponent.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/Examples/Src/Components/MyHeaderComponent.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/Examples/Src/Components/MyHeaderComponent.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/Examples/Src/Components/MyHeaderComponent.pa.yaml diff --git a/src/schemas-tests/pa-yaml/v2.2/Examples/Src/Screens/ComponentsScreen4.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/ComponentsScreen4.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/Examples/Src/Screens/ComponentsScreen4.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/ComponentsScreen4.pa.yaml diff --git a/src/schemas-tests/pa-yaml/v2.2/Examples/Src/Screens/FormsScreen2.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/FormsScreen2.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/Examples/Src/Screens/FormsScreen2.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/FormsScreen2.pa.yaml diff --git a/src/schemas-tests/pa-yaml/v2.2/Examples/Src/Screens/Screen1.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/Screen1.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/Examples/Src/Screens/Screen1.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/Examples/Src/Screens/Screen1.pa.yaml diff --git a/src/schemas-tests/pa-yaml/v2.2/FullSchemaUses/App.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/FullSchemaUses/App.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/FullSchemaUses/App.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/FullSchemaUses/App.pa.yaml diff --git a/src/schemas-tests/pa-yaml/v2.2/FullSchemaUses/Screens-general-controls.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/FullSchemaUses/Screens-general-controls.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/FullSchemaUses/Screens-general-controls.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/FullSchemaUses/Screens-general-controls.pa.yaml diff --git a/src/schemas-tests/pa-yaml/v2.2/FullSchemaUses/Screens-with-components.pa.yaml b/src/schemas-tests/pa-yaml/v3.0/FullSchemaUses/Screens-with-components.pa.yaml similarity index 100% rename from src/schemas-tests/pa-yaml/v2.2/FullSchemaUses/Screens-with-components.pa.yaml rename to src/schemas-tests/pa-yaml/v3.0/FullSchemaUses/Screens-with-components.pa.yaml diff --git a/src/schemas/pa-yaml/v2.2/pa.schema.yaml b/src/schemas/pa-yaml/v3.0/pa.schema.yaml similarity index 99% rename from src/schemas/pa-yaml/v2.2/pa.schema.yaml rename to src/schemas/pa-yaml/v3.0/pa.schema.yaml index 79d23680..b8c6ec5e 100644 --- a/src/schemas/pa-yaml/v2.2/pa.schema.yaml +++ b/src/schemas/pa-yaml/v3.0/pa.schema.yaml @@ -4,8 +4,8 @@ # How to add snippets for use in VS Code: https://code.visualstudio.com/docs/languages/json#_define-snippets-in-json-schemas $schema: http://json-schema.org/draft-07/schema# -$id: http://powerapps.com/schemas/pa-yaml/v2.2/pa.schema -title: Microsoft Power Apps schema for app source yaml files (v2.2). +$id: http://powerapps.com/schemas/pa-yaml/v3.0/pa.schema +title: Microsoft Power Apps schema for app source yaml files (v3.0). description: >- The schema for all *.pa.yaml files which are used to describe a Power Apps canvas app. All *.pa.yaml files in an *.msapp are logically combined into a single *.pa.yaml file. diff --git a/src/schemas/publish.cmd b/src/schemas/publish.cmd index 899f6d99..028e28b7 100644 --- a/src/schemas/publish.cmd +++ b/src/schemas/publish.cmd @@ -8,7 +8,7 @@ :: TODO: Instead of a straight copy, we should remove yaml comments; only keeping '$comment' :: TODO: We MAY want to also publish the *.schema.json files too. -@ECHO Copying pa-yaml/v2.2 ... -@RMDIR /S /Q "%_SchemasDistRoot%pa-yaml\v2.2\" -@MKDIR "%_SchemasDistRoot%pa-yaml\v2.2\" -@COPY pa-yaml\v2.2\pa.schema.yaml "%_SchemasDistRoot%pa-yaml\v2.2\" +@ECHO Copying pa-yaml/v3.0 ... +@RMDIR /S /Q "%_SchemasDistRoot%pa-yaml\v3.0\" +@MKDIR "%_SchemasDistRoot%pa-yaml\v3.0\" +@COPY pa-yaml\v3.0\pa.schema.yaml "%_SchemasDistRoot%pa-yaml\v3.0\"