diff --git a/tools/CreateMappings_rules.json b/tools/CreateMappings_rules.json index c821dda9bc58..1509fd42e49b 100644 --- a/tools/CreateMappings_rules.json +++ b/tools/CreateMappings_rules.json @@ -859,5 +859,9 @@ { "module": "NetworkAnalytics", "alias": "NetworkAnalytics" + }, + { + "module": "Fleet", + "alias": "Fleet" } ] diff --git a/tools/RunVersionController.ps1 b/tools/RunVersionController.ps1 index 8abb578c3deb..d7f980f5a7c8 100644 --- a/tools/RunVersionController.ps1 +++ b/tools/RunVersionController.ps1 @@ -21,7 +21,10 @@ Param( [string]$GalleryName = "PSGallery", [Parameter()] - [string]$ArtifactsOutputPath = "$PSScriptRoot/../artifacts/Release/" + [string]$ArtifactsOutputPath = "$PSScriptRoot/../artifacts/Release/", + + [Parameter()] + [switch]$GenerateSyntaxChangelog ) enum PSVersion @@ -520,7 +523,9 @@ switch ($PSCmdlet.ParameterSetName) # Refresh AzPreview.psd1 Update-AzPreview Update-AzPreviewChangelog - Update-AzSyntaxChangelog + if ($GenerateSyntaxChangelog){ + Update-AzSyntaxChangelog + } # We need to generate the upcoming-breaking-changes.md after the process of bump version in minor release if ([PSVersion]::MINOR -Eq $versionBump) { diff --git a/tools/StaticAnalysis/Exceptions/Az.Compute/GeneratedSdkIssues.csv b/tools/StaticAnalysis/Exceptions/Az.Compute/GeneratedSdkIssues.csv new file mode 100644 index 000000000000..874cd1f17c5e --- /dev/null +++ b/tools/StaticAnalysis/Exceptions/Az.Compute/GeneratedSdkIssues.csv @@ -0,0 +1,2 @@ +"Module","Sdk","Severity","ProblemId","Description","Remediation" +"Az.Compute","src/Compute/Compute.Management.Sdk","1","9080","Do not support updating SDK using autorest csharp v3.","Please update the Readme.md to generate code by autorest powershell v4." diff --git a/tools/VersionController/Models/SyntaxChangelogGenerator.cs b/tools/VersionController/Models/SyntaxChangelogGenerator.cs index 8bff4d88519a..ac1d079accdf 100644 --- a/tools/VersionController/Models/SyntaxChangelogGenerator.cs +++ b/tools/VersionController/Models/SyntaxChangelogGenerator.cs @@ -40,8 +40,10 @@ public void Analyze(String rootDirectory) var moduleName = psd1FileName.Replace(".psd1", ""); if (ModuleFilter.IsAzureStackModule(moduleName.Replace("Az.", ""))) continue; Console.WriteLine("Analyzing module: {0}", moduleName); - var newModuleMetadata = MetadataLoader.GetModuleMetadata(moduleName); var executingPath = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().Location).AbsolutePath); + Directory.SetCurrentDirectory(executingPath); + var newModuleMetadata = MetadataLoader.GetModuleMetadata(moduleName); + Console.WriteLine(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..")); var filePath = Path.Combine(executingPath, "SerializedCmdlets", $"{moduleName}.json"); if (!File.Exists(filePath)) continue; var oldModuleMetadata = ModuleMetadata.DeserializeCmdlets(filePath); @@ -277,9 +279,25 @@ join newParam in newParameterMetadatas on oldParam.Name equals newParam.Name { CompareChangedParameterAliases(moduleName, oldCmdletMetadata.Name, oldParameterMetadata, newParameterMetadata); CompareChangedParameterType(moduleName, oldCmdletMetadata, oldParameterMetadata, newParameterMetadata); + CompareChangedParameterAttribute(moduleName, oldCmdletMetadata, oldParameterMetadata, newParameterMetadata); + } + } + void CompareChangedParameterAttribute(string moduleName, CmdletMetadata oldCmdletMetadata, ParameterMetadata oldParameterMetadata, + ParameterMetadata newParameterMetadata) + { + if (oldParameterMetadata.ValidateNotNullOrEmpty != newParameterMetadata.ValidateNotNullOrEmpty) + { + diffInfo.Add(new CmdletDiffInformation() + { + ModuleName = moduleName, + CmdletName = oldCmdletMetadata.Name, + Type = ChangeType.ParameterAttributeChange, + ParameterName = newParameterMetadata.Name, + Before = new List { oldParameterMetadata.ValidateNotNullOrEmpty.ToString() }, + After = new List { newParameterMetadata.ValidateNotNullOrEmpty.ToString() }, + }); } } - private void CompareChangedParameterAliases(string moduleName, string cmdletName, ParameterMetadata oldParameterMetadata, ParameterMetadata newParameterMetadata) { if (!(oldParameterMetadata.AliasList.Count == newParameterMetadata.AliasList.Count @@ -393,11 +411,25 @@ public void GenerateMarkdown(string filePath) { if (diffInfo[i].Type == ChangeType.CmdletAdd) { - sb.AppendFormat("* Added cmdlet `{0}`\n", diffInfo[i].CmdletName); + if (diffInfo[i].Type == diffInfo[i-1].Type) { + sb.AppendFormat(", `{0}`",diffInfo[i].CmdletName); + if (i + 1 == diffInfo.Count ||diffInfo[i].Type != diffInfo[i+1].Type) { + sb.AppendFormat("\n"); + } + } else { + sb.AppendFormat("* Added cmdlet `{0}`", diffInfo[i].CmdletName); + } } else if (diffInfo[i].Type == ChangeType.CmdletRemove) { - sb.AppendFormat("* Removed cmdlet `{0}`\n", diffInfo[i].CmdletName); + if (diffInfo[i].Type == diffInfo[i-1].Type) { + sb.AppendFormat(", `{0}`",diffInfo[i].CmdletName); + if (i + 1 == diffInfo.Count ||diffInfo[i].Type != diffInfo[i+1].Type) { + sb.AppendFormat("\n"); + } + } else { + sb.AppendFormat("* Removed cmdlet `{0}`", diffInfo[i].CmdletName); + } } else { @@ -484,6 +516,10 @@ private string GetDescription_ParameterTypeChange(CmdletDiffInformation info) { return $"Changed the type of parameter `-{info.ParameterName}` from `{info.Before[0]}` to `{info.After[0]}`"; } + private string GetDescription_ParameterAttributeChange(CmdletDiffInformation info) + { + return $"Parameter `-{info.ParameterName}` ValidateNotNullOrEmpty changed from {info.Before[0]} to {info.After[0]}"; + } private string GetDescription_OutputTypeChange(CmdletDiffInformation info) { diff --git a/tools/VersionController/Program.cs b/tools/VersionController/Program.cs index c65d82907af8..022143645933 100644 --- a/tools/VersionController/Program.cs +++ b/tools/VersionController/Program.cs @@ -51,7 +51,7 @@ public static void Main(string[] args) var executingAssemblyPath = Assembly.GetExecutingAssembly().Location; var versionControllerDirectory = Directory.GetParent(executingAssemblyPath).FullName; var artifactsDirectory = Directory.GetParent(versionControllerDirectory).FullName; - + var syntaxChangelog = "false"; _rootDirectory = Directory.GetParent(artifactsDirectory).FullName; _projectDirectories = new List{ Path.Combine(_rootDirectory, @"src\") }.Where((d) => Directory.Exists(d)).ToList(); _outputDirectories = new List{ Path.Combine(_rootDirectory, @"artifacts\Release\") }.Where((d) => Directory.Exists(d)).ToList(); @@ -74,9 +74,16 @@ public static void Main(string[] args) _moduleNameFilter = args[1] + Psd1NameExtension; } + if (args != null && args.Length > 2) + { + syntaxChangelog = args[2]; + } + ConsolidateExceptionFiles(exceptionsDirectory); ValidateManifest(); - GenerateSyntaxChangelog(_rootDirectory); + if (syntaxChangelog.Equals("true", System.StringComparison.OrdinalIgnoreCase)) { + GenerateSyntaxChangelog(_rootDirectory); + } BumpVersions(); } private static void GenerateSyntaxChangelog(string _projectDirectories)