From 607b96e9abac5d8bb999634c293eb1faea80e696 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Mon, 24 Jul 2023 17:29:12 +0000 Subject: [PATCH 1/5] Add v2 docs onboarding for Java --- eng/scripts/Language-Settings.ps1 | 7 ++++ eng/scripts/docs/Docs-Onboarding.ps1 | 61 ++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 eng/scripts/docs/Docs-Onboarding.ps1 diff --git a/eng/scripts/Language-Settings.ps1 b/eng/scripts/Language-Settings.ps1 index dd2bd16d50baa..f9f89ebaf1d4d 100644 --- a/eng/scripts/Language-Settings.ps1 +++ b/eng/scripts/Language-Settings.ps1 @@ -9,6 +9,7 @@ $GithubUri = "https://github.com/Azure/azure-sdk-for-java" $PackageRepositoryUri = "https://repo1.maven.org/maven2" . "$PSScriptRoot/docs/Docs-ToC.ps1" +. "$PSScriptRoot/docs/Docs-Onboarding.ps1" function Get-java-PackageInfoFromRepo ($pkgPath, $serviceDirectory) { @@ -315,6 +316,12 @@ function SourcePackageHasComFolder($artifactNamePrefix, $packageDirectory) { $sourcesJarPath = (Get-ChildItem -File -Path $packageDirectory -Filter "*-sources.jar")[0] $sourcesExtractPath = Join-Path $packageDirectory "sources" + + # Ensure that the sources folder is empty before extracting the jar + # otherwise there could be file collisions from a previous extraction run on + # the same system. + Remove-Item $sourcesExtractPath/* -Force -Recurse + Add-Type -AssemblyName System.IO.Compression.FileSystem [System.IO.Compression.ZipFile]::ExtractToDirectory($sourcesJarPath, $sourcesExtractPath) diff --git a/eng/scripts/docs/Docs-Onboarding.ps1 b/eng/scripts/docs/Docs-Onboarding.ps1 new file mode 100644 index 0000000000000..0ef2b06ccad35 --- /dev/null +++ b/eng/scripts/docs/Docs-Onboarding.ps1 @@ -0,0 +1,61 @@ +#$SetDocsPackageOnboarding = "Set-${Language}-DocsPackageOnboarding" +function Set-java-DocsPackageOnboarding($moniker, $metadata, $docRepoLocation, $packageSourceOverride) { + + # Do not write onboarding information for legacy moniker + # TODO: remove this once legacy moniker is properly configured + if ($moniker -eq 'legacy') { + return + } + + $packageJsonPath = Join-Path $docRepoLocation "package.json" + $onboardingInfo = Get-Content $packageJsonPath | ConvertFrom-Json + + $monikerOutputPath = "docs-ref-autogen" + if ($moniker -ne 'latest') { + $monikerOutputPath = "$moniker/docs-ref-autogen" + } + $monikerIndex = -1 + for($i = 0; $i -lt $onboardingInfo.Count; $i++) { + if ($onboardingInfo[$i].output_path -eq $monikerOutputPath) { + $monikerIndex = $i + break + } + } + + if ($monikerIndex -eq -1) { + Write-Error "No appropriate index for moniker $moniker" + } + + $onboardedPackages = @() + foreach ($package in $metadata) { + $packageInfo = [ordered]@{ + packageArtifactId = $package.Name + packageGroupId = $package.Group + packageVersion = $package.Version + + # packageDownloadUrl is required by docs build and other values are + # rejected. This is a temporary workaround until the docs build + # supports more package stores. + packageDownloadUrl = 'https://repo1.maven.org/maven2' + } + + # Add items from 'DocsCiConfigProperties' into onboarding info. If a + # property already exists, it will be overwritten. + if ($package.ContainsKey('DocsCiConfigProperties')) { + foreach ($key in $package['DocsCiConfigProperties'].Keys) { + $packageInfo[$key] = $package['DocsCiConfigProperties'][$key] + } + } + + $onboardedPackages += $packageInfo + } + + $onboardingInfo[$monikerIndex].packages = $onboardedPackages + + Set-Content -Path $packageJsonPath -Value (ConvertTo-Json -InputObject $onboardingInfo -Depth 100) +} + +#$GetDocsPackagesAlreadyOnboarded = "Get-${Language}-DocsPackagesAlreadyOnboarded" +function Get-java-DocsPackagesAlreadyOnboarded($docRepoLocation, $moniker) { + return Get-java-OnboardedDocsMsPackagesForMoniker $docRepoLocation $moniker +} From d969df7c83aae6627b3cbbc9dcc0c0923d3daddd Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 1 Aug 2023 20:55:26 +0000 Subject: [PATCH 2/5] Add onboarding logic for onboarding v2 --- eng/scripts/docs/Docs-Onboarding.ps1 | 5 +++++ eng/scripts/docs/Docs-ToC.ps1 | 3 +++ .../docs/tests/Docs-Onboarding.tests.ps1 | 17 +++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 eng/scripts/docs/tests/Docs-Onboarding.tests.ps1 diff --git a/eng/scripts/docs/Docs-Onboarding.ps1 b/eng/scripts/docs/Docs-Onboarding.ps1 index 0ef2b06ccad35..eefb6c4189368 100644 --- a/eng/scripts/docs/Docs-Onboarding.ps1 +++ b/eng/scripts/docs/Docs-Onboarding.ps1 @@ -59,3 +59,8 @@ function Set-java-DocsPackageOnboarding($moniker, $metadata, $docRepoLocation, $ function Get-java-DocsPackagesAlreadyOnboarded($docRepoLocation, $moniker) { return Get-java-OnboardedDocsMsPackagesForMoniker $docRepoLocation $moniker } + +# $GetPackageIdentity = "Get-${Language}-PackageIdentity" +function Get-java-PackageIdentity($package) { + return "$($package['Group']):$($package['Name'])" +} diff --git a/eng/scripts/docs/Docs-ToC.ps1 b/eng/scripts/docs/Docs-ToC.ps1 index 5252f37b1a996..3152853a0e37f 100644 --- a/eng/scripts/docs/Docs-ToC.ps1 +++ b/eng/scripts/docs/Docs-ToC.ps1 @@ -19,6 +19,9 @@ function Get-java-OnboardedDocsMsPackagesForMoniker ($DocRepoLocation, $moniker) elseif("latest" -eq $moniker) { $onboardingSpec = $onboardingSpec | Where-Object { $_.output_path -eq "docs-ref-autogen" } } + + # TODO: Add support for "legacy" moniker + $onboardedPackages = @{} foreach ($spec in $onboardingSpec.packages) { $packageName = $spec.packageArtifactId diff --git a/eng/scripts/docs/tests/Docs-Onboarding.tests.ps1 b/eng/scripts/docs/tests/Docs-Onboarding.tests.ps1 new file mode 100644 index 0000000000000..6b28333bb3b1a --- /dev/null +++ b/eng/scripts/docs/tests/Docs-Onboarding.tests.ps1 @@ -0,0 +1,17 @@ +Import-Module Pester + +BeforeAll { + . $PSScriptRoot/../Docs-Onboarding.ps1 +} + +Describe 'Get-java-PackageIdentity' { + It 'should return the package identity' { + $package = [ordered]@{ + Name = 'packageName' + Group = 'packageGroup' + } + + $packageIdentity = Get-java-PackageIdentity $package + $packageIdentity | Should -Be 'packageGroup:packageName' + } +} \ No newline at end of file From d383cad7a9643fb7b3887d5602af81f5ba766fd4 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Thu, 17 Aug 2023 20:56:50 +0000 Subject: [PATCH 3/5] Set skipPublishDocMs for packages that are skipped in Language-Settings.ps1 and should not publish docs. --- sdk/aot/ci.yml | 2 ++ sdk/core/ci.yml | 2 ++ sdk/cosmos/ci.yml | 1 + sdk/personalizer/ci.yml | 3 ++- sdk/storagemover/ci.yml | 1 + sdk/template/ci.yml | 3 +++ sdk/voiceservices/ci.yml | 1 + 7 files changed, 12 insertions(+), 1 deletion(-) diff --git a/sdk/aot/ci.yml b/sdk/aot/ci.yml index 8d881d7b907f6..93cd28a0ba58e 100644 --- a/sdk/aot/ci.yml +++ b/sdk/aot/ci.yml @@ -49,10 +49,12 @@ extends: groupId: com.azure safeName: azureaotgraalvmsupport releaseInBatch: ${{ parameters.release_azureaotgraalvmsupport }} + skipPublishDocMs: true - name: azure-aot-graalvm-support-netty groupId: com.azure safeName: azureaotgraalvmsupportnetty releaseInBatch: ${{ parameters.release_azureaotgraalvmsupportnetty }} + skipPublishDocMs: true AdditionalModules: - name: azure-aot-graalvm-samples groupId: com.azure diff --git a/sdk/core/ci.yml b/sdk/core/ci.yml index 8f52b059fa702..02dd391bf9a06 100644 --- a/sdk/core/ci.yml +++ b/sdk/core/ci.yml @@ -244,6 +244,7 @@ extends: - name: azure-core-experimental groupId: com.azure safeName: azurecoreexperimental + skipPublishDocMs: true - name: azure-core-http-jdk-httpclient groupId: com.azure safeName: azurecorehttpjdkhttpclient @@ -271,6 +272,7 @@ extends: - name: azure-core-test groupId: com.azure safeName: azurecoretest + skipPublishDocMs: true - name: azure-core-tracing-opentelemetry groupId: com.azure safeName: azurecoretracingopentelemetry diff --git a/sdk/cosmos/ci.yml b/sdk/cosmos/ci.yml index 8456e7c357b11..9e7809d8b44cd 100644 --- a/sdk/cosmos/ci.yml +++ b/sdk/cosmos/ci.yml @@ -149,6 +149,7 @@ extends: groupId: com.azure safeName: azurecosmostest releaseInBatch: ${{ parameters.release_azurecosmostest }} + skipPublishDocMs: true AdditionalModules: - name: azure-cosmos-tests groupId: com.azure diff --git a/sdk/personalizer/ci.yml b/sdk/personalizer/ci.yml index b9d40d6102934..83c755d53fc2e 100644 --- a/sdk/personalizer/ci.yml +++ b/sdk/personalizer/ci.yml @@ -34,4 +34,5 @@ extends: Artifacts: - name: azure-ai-personalizer groupId: com.azure - safeName: azureaipersonalizer \ No newline at end of file + safeName: azureaipersonalizer + skipPublishDocMs: true \ No newline at end of file diff --git a/sdk/storagemover/ci.yml b/sdk/storagemover/ci.yml index bf608eb749aff..29e6efc16263b 100644 --- a/sdk/storagemover/ci.yml +++ b/sdk/storagemover/ci.yml @@ -45,3 +45,4 @@ extends: groupId: com.azure.resourcemanager safeName: azureresourcemanagerstoragemover releaseInBatch: ${{ parameters.release_azureresourcemanagerstoragemover }} + skipPublishDocMs: true diff --git a/sdk/template/ci.yml b/sdk/template/ci.yml index 4f357239bc322..3f336645544d7 100644 --- a/sdk/template/ci.yml +++ b/sdk/template/ci.yml @@ -70,14 +70,17 @@ extends: groupId: com.azure safeName: azuresdktemplate releaseInBatch: ${{ parameters.release_azuresdktemplate }} + skipPublishDocMs: true - name: azure-sdk-template-two groupId: com.azure safeName: azuresdktemplatetwo releaseInBatch: ${{ parameters.release_azuresdktemplatetwo }} + skipPublishDocMs: true - name: azure-sdk-template-three groupId: com.azure safeName: azuresdktemplatethree releaseInBatch: ${{ parameters.release_azuresdktemplatethree }} + skipPublishDocMs: true AdditionalModules: - name: azure-template-perf groupId: com.azure diff --git a/sdk/voiceservices/ci.yml b/sdk/voiceservices/ci.yml index fb7ec35804f8c..a23d78e0efafb 100644 --- a/sdk/voiceservices/ci.yml +++ b/sdk/voiceservices/ci.yml @@ -45,3 +45,4 @@ extends: groupId: com.azure.resourcemanager safeName: azureresourcemanagervoiceservices releaseInBatch: ${{ parameters.release_azureresourcemanagervoiceservices }} + skipPublishDocMs: true From 1994c01940e6bebc6dc35a9f837b7900dab7a492 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Thu, 17 Aug 2023 20:57:33 +0000 Subject: [PATCH 4/5] Ignore errors removing path that doesn't exist (ensure that test runs on local machine are clean, it's OK if files aren't present to clean up. --- eng/scripts/Language-Settings.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/scripts/Language-Settings.ps1 b/eng/scripts/Language-Settings.ps1 index f9f89ebaf1d4d..c491b5afd3309 100644 --- a/eng/scripts/Language-Settings.ps1 +++ b/eng/scripts/Language-Settings.ps1 @@ -320,7 +320,7 @@ function SourcePackageHasComFolder($artifactNamePrefix, $packageDirectory) { # Ensure that the sources folder is empty before extracting the jar # otherwise there could be file collisions from a previous extraction run on # the same system. - Remove-Item $sourcesExtractPath/* -Force -Recurse + Remove-Item $sourcesExtractPath/* -Force -Recurse -ErrorAction Ignore Add-Type -AssemblyName System.IO.Compression.FileSystem [System.IO.Compression.ZipFile]::ExtractToDirectory($sourcesJarPath, $sourcesExtractPath) From 869a7d94a155eaee9d0d79f860e14a279dbd64a6 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Thu, 17 Aug 2023 22:08:25 +0000 Subject: [PATCH 5/5] Revert "Set skipPublishDocMs for packages that are skipped in Language-Settings.ps1 and should not publish docs." This reverts commit d383cad7a9643fb7b3887d5602af81f5ba766fd4. --- sdk/aot/ci.yml | 2 -- sdk/core/ci.yml | 2 -- sdk/cosmos/ci.yml | 1 - sdk/personalizer/ci.yml | 3 +-- sdk/storagemover/ci.yml | 1 - sdk/template/ci.yml | 3 --- sdk/voiceservices/ci.yml | 1 - 7 files changed, 1 insertion(+), 12 deletions(-) diff --git a/sdk/aot/ci.yml b/sdk/aot/ci.yml index 93cd28a0ba58e..8d881d7b907f6 100644 --- a/sdk/aot/ci.yml +++ b/sdk/aot/ci.yml @@ -49,12 +49,10 @@ extends: groupId: com.azure safeName: azureaotgraalvmsupport releaseInBatch: ${{ parameters.release_azureaotgraalvmsupport }} - skipPublishDocMs: true - name: azure-aot-graalvm-support-netty groupId: com.azure safeName: azureaotgraalvmsupportnetty releaseInBatch: ${{ parameters.release_azureaotgraalvmsupportnetty }} - skipPublishDocMs: true AdditionalModules: - name: azure-aot-graalvm-samples groupId: com.azure diff --git a/sdk/core/ci.yml b/sdk/core/ci.yml index 02dd391bf9a06..8f52b059fa702 100644 --- a/sdk/core/ci.yml +++ b/sdk/core/ci.yml @@ -244,7 +244,6 @@ extends: - name: azure-core-experimental groupId: com.azure safeName: azurecoreexperimental - skipPublishDocMs: true - name: azure-core-http-jdk-httpclient groupId: com.azure safeName: azurecorehttpjdkhttpclient @@ -272,7 +271,6 @@ extends: - name: azure-core-test groupId: com.azure safeName: azurecoretest - skipPublishDocMs: true - name: azure-core-tracing-opentelemetry groupId: com.azure safeName: azurecoretracingopentelemetry diff --git a/sdk/cosmos/ci.yml b/sdk/cosmos/ci.yml index 9e7809d8b44cd..8456e7c357b11 100644 --- a/sdk/cosmos/ci.yml +++ b/sdk/cosmos/ci.yml @@ -149,7 +149,6 @@ extends: groupId: com.azure safeName: azurecosmostest releaseInBatch: ${{ parameters.release_azurecosmostest }} - skipPublishDocMs: true AdditionalModules: - name: azure-cosmos-tests groupId: com.azure diff --git a/sdk/personalizer/ci.yml b/sdk/personalizer/ci.yml index 83c755d53fc2e..b9d40d6102934 100644 --- a/sdk/personalizer/ci.yml +++ b/sdk/personalizer/ci.yml @@ -34,5 +34,4 @@ extends: Artifacts: - name: azure-ai-personalizer groupId: com.azure - safeName: azureaipersonalizer - skipPublishDocMs: true \ No newline at end of file + safeName: azureaipersonalizer \ No newline at end of file diff --git a/sdk/storagemover/ci.yml b/sdk/storagemover/ci.yml index 29e6efc16263b..bf608eb749aff 100644 --- a/sdk/storagemover/ci.yml +++ b/sdk/storagemover/ci.yml @@ -45,4 +45,3 @@ extends: groupId: com.azure.resourcemanager safeName: azureresourcemanagerstoragemover releaseInBatch: ${{ parameters.release_azureresourcemanagerstoragemover }} - skipPublishDocMs: true diff --git a/sdk/template/ci.yml b/sdk/template/ci.yml index 3f336645544d7..4f357239bc322 100644 --- a/sdk/template/ci.yml +++ b/sdk/template/ci.yml @@ -70,17 +70,14 @@ extends: groupId: com.azure safeName: azuresdktemplate releaseInBatch: ${{ parameters.release_azuresdktemplate }} - skipPublishDocMs: true - name: azure-sdk-template-two groupId: com.azure safeName: azuresdktemplatetwo releaseInBatch: ${{ parameters.release_azuresdktemplatetwo }} - skipPublishDocMs: true - name: azure-sdk-template-three groupId: com.azure safeName: azuresdktemplatethree releaseInBatch: ${{ parameters.release_azuresdktemplatethree }} - skipPublishDocMs: true AdditionalModules: - name: azure-template-perf groupId: com.azure diff --git a/sdk/voiceservices/ci.yml b/sdk/voiceservices/ci.yml index a23d78e0efafb..fb7ec35804f8c 100644 --- a/sdk/voiceservices/ci.yml +++ b/sdk/voiceservices/ci.yml @@ -45,4 +45,3 @@ extends: groupId: com.azure.resourcemanager safeName: azureresourcemanagervoiceservices releaseInBatch: ${{ parameters.release_azureresourcemanagervoiceservices }} - skipPublishDocMs: true