From bfc6e487631ffa8bb46d31c8778f96ddbd4c73e5 Mon Sep 17 00:00:00 2001 From: "Gavin Barron (from Dev Box)" Date: Fri, 9 Oct 2026 09:47:34 -0700 Subject: [PATCH] refactor(hidi): remove migrated main tool resources Follow accepted OpenAPI.NET.OData main migration PR884. Preserve current library ESRP/signing/feed/version-check and GitHub release infrastructure; point hidi documentation to its new home. Cleanup acceptance remains gated on publisher handoff readiness. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: c631d217-9378-4cee-8c7e-761043ff3ae5 --- .azure-pipelines/ci-build.yml | 261 +- .github/workflows/codeql-analysis.yml | 3 +- .vscode/launch.json | 18 - .vscode/settings.json | 1 - .vscode/tasks.json | 14 - CONTRIBUTING.md | 4 +- Dockerfile | 25 - Microsoft.OpenApi.slnx | 2 - README.md | 8 +- build.cmd | 7 - build.sh | 7 - install-tool.ps1 | 7 - src/Microsoft.OpenApi.Hidi/CsdlFilter.xslt | 22 - .../Extensions/CommandExtensions.cs | 19 - .../Extensions/OpenApiExtensibleExtensions.cs | 23 - .../Extensions/StringExtensions.cs | 46 - .../Formatters/PowerShellFormatter.cs | 251 - .../Handlers/PluginCommandHandler.cs | 53 - .../Handlers/ShowCommandHandler.cs | 53 - .../Handlers/TransformCommandHandler.cs | 53 - .../Handlers/ValidateCommandHandler.cs | 53 - src/Microsoft.OpenApi.Hidi/Logger.cs | 28 - .../Microsoft.OpenApi.Hidi.csproj | 67 - src/Microsoft.OpenApi.Hidi/OpenApiService.cs | 818 - .../OpenApiSpecVersionHelper.cs | 46 - .../Options/CommandOptions.cs | 144 - .../Options/FilterOptions.cs | 13 - .../Options/HidiOptions.cs | 65 - src/Microsoft.OpenApi.Hidi/Program.cs | 60 - src/Microsoft.OpenApi.Hidi/StatsVisitor.cs | 86 - .../Utilities/SettingsUtilities.cs | 39 - src/Microsoft.OpenApi.Hidi/readme.md | 148 - .../Properties/AssemblyInfo.cs | 3 - .../Formatters/PowerShellFormatterTests.cs | 192 - .../Microsoft.OpenApi.Hidi.Tests.csproj | 46 - .../OpenApiSpecVersionHelperTests.cs | 31 - .../Services/OpenApiFilterServiceTests.cs | 371 - .../Services/OpenApiServiceTests.cs | 380 - .../StatsVisitorTests.cs | 110 - .../Utilities/SettingsUtilitiesTests.cs | 44 - .../UtilityFiles/InvalidSampleOpenApi.yml | 19 - .../UtilityFiles/OpenApiDocumentMock.cs | 689 - .../UtilityFiles/SampleOpenApi.yml | 22 - .../UtilityFiles/Todo.xml | 21 - .../UtilityFiles/appsettingstest.json | 21 - .../docWithReusableHeadersAndExamples.yaml | 85 - .../UtilityFiles/exampleapimanifest.json | 27 - .../examplepowershellsettings.json | 22 - .../UtilityFiles/postmanCollection_ver1.json | 102 - .../UtilityFiles/postmanCollection_ver2.json | 23698 ---------------- .../UtilityFiles/postmanCollection_ver3.json | 1382 - .../UtilityFiles/postmanCollection_ver4.json | 145 - .../Microsoft.OpenApi.Tests.csproj | 1 - 53 files changed, 8 insertions(+), 29847 deletions(-) delete mode 100644 Dockerfile delete mode 100644 install-tool.ps1 delete mode 100644 src/Microsoft.OpenApi.Hidi/CsdlFilter.xslt delete mode 100644 src/Microsoft.OpenApi.Hidi/Extensions/CommandExtensions.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Extensions/OpenApiExtensibleExtensions.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Extensions/StringExtensions.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Formatters/PowerShellFormatter.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Handlers/PluginCommandHandler.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Handlers/ShowCommandHandler.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Handlers/TransformCommandHandler.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Handlers/ValidateCommandHandler.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Logger.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj delete mode 100644 src/Microsoft.OpenApi.Hidi/OpenApiService.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/OpenApiSpecVersionHelper.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Options/CommandOptions.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Options/FilterOptions.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Options/HidiOptions.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Program.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/StatsVisitor.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/Utilities/SettingsUtilities.cs delete mode 100644 src/Microsoft.OpenApi.Hidi/readme.md delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/Formatters/PowerShellFormatterTests.cs delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/Microsoft.OpenApi.Hidi.Tests.csproj delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/OpenApiSpecVersionHelperTests.cs delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/Services/OpenApiFilterServiceTests.cs delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/Services/OpenApiServiceTests.cs delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/StatsVisitorTests.cs delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/Utilities/SettingsUtilitiesTests.cs delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/InvalidSampleOpenApi.yml delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/OpenApiDocumentMock.cs delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/SampleOpenApi.yml delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/Todo.xml delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/appsettingstest.json delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/docWithReusableHeadersAndExamples.yaml delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/exampleapimanifest.json delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/examplepowershellsettings.json delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/postmanCollection_ver1.json delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/postmanCollection_ver2.json delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/postmanCollection_ver3.json delete mode 100644 test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/postmanCollection_ver4.json diff --git a/.azure-pipelines/ci-build.yml b/.azure-pipelines/ci-build.yml index 5e8a40e98..1281acf0a 100644 --- a/.azure-pipelines/ci-build.yml +++ b/.azure-pipelines/ci-build.yml @@ -24,9 +24,6 @@ variables: NuGetOrganizationName: 'openapinet' privateFeedBaseUrl: 'https://microsoftgraph.pkgs.visualstudio.com/0985d294-5762-4bc2-a565-161ef349ca3e/_packaging/GraphDeveloperExperiences_Public' ProductBinPath: '$(Build.SourcesDirectory)\src\Microsoft.OpenApi\bin\$(BuildConfiguration)' - REGISTRY: 'msgraphprodregistry.azurecr.io' - IMAGE_NAME: 'public/openapi/hidi' - PREVIEW_BRANCH: 'refs/heads/main' resources: repositories: @@ -53,10 +50,6 @@ extends: displayName: 'Publish Artifact: Nugets' artifactName: Nugets targetPath: '$(Build.ArtifactStagingDirectory)/Nugets' - - output: pipelineArtifact - displayName: 'Publish Artifact: RepoFiles' - artifactName: RepoFiles - targetPath: '$(Build.ArtifactStagingDirectory)/RepoFiles' steps: - task: UseDotNet@2 displayName: 'Use .NET 6' @@ -175,10 +168,6 @@ extends: - pwsh: dotnet pack $(Build.SourcesDirectory)/src/Microsoft.OpenApi.YamlReader/Microsoft.OpenApi.YamlReader.csproj -o $(Build.ArtifactStagingDirectory) --configuration $(BuildConfiguration) --no-build --include-symbols --include-source /p:SymbolPackageFormat=snupkg displayName: 'pack YamlReader' - # Pack hidi - - pwsh: dotnet pack $(Build.SourcesDirectory)/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj -o $(Build.ArtifactStagingDirectory) --configuration $(BuildConfiguration) --no-build --include-symbols --include-source /p:SymbolPackageFormat=snupkg - displayName: 'pack Hidi' - - task: EsrpCodeSigning@6 displayName: 'ESRP CodeSigning Nuget Packages' inputs: @@ -213,16 +202,6 @@ extends: MaxRetryAttempts: '5' PendingAnalysisWaitTimeoutMinutes: '5' - # publish hidi as an .exe - - task: DotNetCoreCLI@2 - displayName: publish Hidi as executable - inputs: - command: 'publish' - arguments: -c Release --runtime win-x64 -p:RestoreConfigFile=$(Build.SourcesDirectory)\nuget.config /p:PublishSingleFile=true /p:PackAsTool=false --self-contained --output $(Build.ArtifactStagingDirectory)/Microsoft.OpenApi.Hidi - projects: 'src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj' - publishWebProjects: False - zipAfterPublish: false - - task: CopyFiles@2 displayName: Prepare staging folder for upload inputs: @@ -239,84 +218,14 @@ extends: Contents: 'check-nuget-package-published.ps1' TargetFolder: '$(Build.ArtifactStagingDirectory)/Nugets/scripts' - # Copy repository files to be used in the deploy stage - - task: CopyFiles@2 - displayName: 'Copy repository files for deploy stage' - inputs: - SourceFolder: '$(Build.SourcesDirectory)' - Contents: | - **/* - !**/bin/** - !**/obj/** - !**/.git/** - TargetFolder: '$(Build.ArtifactStagingDirectory)/RepoFiles' - - stage: deploy - condition: and(or(contains(variables['Build.SourceBranch'], 'refs/tags/v'), eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])), succeeded()) + condition: and(contains(variables['Build.SourceBranch'], 'refs/tags/v'), succeeded()) dependsOn: build pool: name: Azure-Pipelines-1ESPT-ExDShared os: linux image: ubuntu-latest jobs: - - deployment: deploy_hidi - condition: and(contains(variables['build.SourceBranch'], 'refs/tags/v'), succeeded()) - templateContext: - type: releaseJob - isProduction: true - inputs: - - input: pipelineArtifact - artifactName: Nugets - targetPath: '$(Pipeline.Workspace)' - dependsOn: [] - environment: nuget-org - strategy: - runOnce: - deploy: - pool: - vmImage: ubuntu-latest - steps: - - task: PowerShell@2 - displayName: 'Check whether NuGet package version already published (idempotent)' - inputs: - targetType: filePath - filePath: '$(Pipeline.Workspace)/scripts/check-nuget-package-published.ps1' - arguments: '-PackageId "Microsoft.OpenApi.Hidi" -PackageDirectory "$(Pipeline.Workspace)" -NuGetServiceIndexUrl "$(privateFeedBaseUrl)/nuget/v3/index.json"' - pwsh: true - env: - FEED_ACCESS_TOKEN: $(System.AccessToken) - - task: CopyFiles@2 - displayName: 'Stage Hidi NuGet packages for ESRP release' - condition: and(succeeded(), ne(variables['nugetAlreadyPublished'], 'true')) - inputs: - SourceFolder: '$(Pipeline.Workspace)' - Contents: | - Microsoft.OpenApi.Hidi.*.nupkg - Microsoft.OpenApi.Hidi.*.snupkg - TargetFolder: '$(Pipeline.Workspace)/nuget-packages/$(NuGetOrganizationName)/hidi' - CleanTargetFolder: true - - task: EsrpRelease@14 - displayName: 'ESRP Release - Hidi NuGet' - condition: and(succeeded(), ne(variables['nugetAlreadyPublished'], 'true')) - inputs: - connectedservicename: 'Federated DevX ESRP Managed Identity Connection' - usemanagedidentity: false - keyvaultname: 'akv-prod-eastus' - authcertname: 'ReferenceLibraryPrivateCert' - signcertname: 'ReferencePackagePublisherCertificate' - clientid: '65035b7f-7357-4f29-bf25-c5ee5c3949f8' - intent: 'packagedistribution' - contenttype: 'NuGet' - organizationname: '$(NuGetOrganizationName)' - contentsource: 'Folder' - folderlocation: '$(Pipeline.Workspace)/nuget-packages/$(NuGetOrganizationName)/hidi' - waitforreleasecompletion: true - owners: 'christiano@microsoft.com,ramsess@microsoft.com,gavinbarron@microsoft.com,jingjingjia@microsoft.com,peombwa@microsoft.com,treicys@microsoft.com' - approvers: 'christiano@microsoft.com,ramsess@microsoft.com,gavinbarron@microsoft.com,jingjingjia@microsoft.com,peombwa@microsoft.com,treicys@microsoft.com' - serviceendpointurl: 'https://api.esrp.microsoft.com/' - mainpublisher: 'ESRPRELPACMAN' - domaintenantid: 'cdc5aeea-15c5-4db6-b079-fcadd2505dc2' - - deployment: deploy_lib condition: and(contains(variables['build.SourceBranch'], 'refs/tags/v'), succeeded()) templateContext: @@ -351,7 +260,6 @@ extends: Contents: | Microsoft.OpenApi.*.nupkg Microsoft.OpenApi.*.snupkg - !Microsoft.OpenApi.Hidi.* !Microsoft.OpenApi.YamlReader.* TargetFolder: '$(Pipeline.Workspace)/nuget-packages/$(NuGetOrganizationName)/openapi' CleanTargetFolder: true @@ -468,175 +376,8 @@ extends: tagSource: userSpecifiedTag tag: 'v$(artifactVersion)' releaseNotesSource: inline - assets: '$(Pipeline.Workspace)\**\*.exe' addChangeLog: false - - deployment: deploy_docker_image - environment: docker-images-deploy - templateContext: - type: releaseJob - isProduction: true - inputs: - - input: pipelineArtifact - artifactName: RepoFiles - targetPath: '$(Pipeline.Workspace)' - strategy: - runOnce: - deploy: - pool: - vmImage: 'ubuntu-latest' - steps: - - task: AzureCLI@2 - displayName: 'Login to Azure Container Registry' - inputs: - azureSubscription: 'ACR Images Push Service Connection' - scriptType: bash - scriptLocation: inlineScript - inlineScript: | - az acr login --name $(REGISTRY) - - - pwsh: | - $content = [XML](Get-Content $(Pipeline.Workspace)/Directory.Build.props) - Write-Host "XML loaded, finding version..." - - # Handle PropertyGroup as either a single element or array - $version = $null - if ($content.Project.PropertyGroup -is [array]) { - Write-Host "PropertyGroup is an array, checking each entry..." - foreach ($pg in $content.Project.PropertyGroup) { - if ($pg.Version) { - $version = $pg.Version.ToString().Trim() - Write-Host "Found version in PropertyGroup array: $version" - break - } - } - } else { - # Single PropertyGroup - $version = $content.Project.PropertyGroup.Version - if ($version) { - $version = $version.ToString().Trim() - Write-Host "Found version in PropertyGroup: $version" - } - } - - if (-not $version) { - Write-Host "##vso[task.logissue type=error]Version not found in Directory.Build.props" - exit 1 - } - - Write-Host "Version found: $version" - Write-Host "##vso[task.setvariable variable=version;isoutput=true]$version" - Write-Host "##vso[task.setvariable variable=VERSION]$version" - displayName: 'Get version from csproj' - name: getversion - - - bash: | - # Debug output to verify version variable - echo "Version from previous step: $VERSION" - displayName: 'Verify version variable' - - - bash: | - echo "Build Number: $(Build.BuildNumber)" - # Extract the last 3 characters for the run number - runnumber=$(echo "$(Build.BuildNumber)" | grep -o '[0-9]\+$') - echo "Extracted Run Number: $runnumber" - - # If extraction fails, set a default - if [ -z "$runnumber" ]; then - echo "Extraction failed, using default value" - runnumber=$(date +"%S%N" | cut -c1-3) - echo "Generated fallback run number: $runnumber" - fi - - # Set the variable for later steps - echo "##vso[task.setvariable variable=RUNNUMBER]$runnumber" - echo "##vso[task.setvariable variable=RUNNUMBER;isOutput=true]$runnumber" - displayName: 'Get truncated run number' - name: getrunnumber - condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH']) - - - bash: | - date=$(date +'%Y%m%d') - echo "Date value: $date" - echo "##vso[task.setvariable variable=BUILDDATE;isOutput=true]$date" - echo "##vso[task.setvariable variable=BUILDDATE]$date" - displayName: 'Get current date' - name: setdate - condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH']) - - # Keep feed credentials out of the Docker build context and image layers. - - pwsh: | - if ([string]::IsNullOrWhiteSpace($env:FEED_ACCESS_TOKEN)) { - throw "No Azure Artifacts access token available for the Docker build." - } - $feedAccessToken = [System.Security.SecurityElement]::Escape($env:FEED_ACCESS_TOKEN) - @" - - - - - - - - - - - - - - - "@ | Set-Content -Path "$(Agent.TempDirectory)/hidi-docker.nuget.config" -Encoding UTF8 - displayName: 'Create Docker NuGet config (central feed)' - env: - FEED_ACCESS_TOKEN: $(System.AccessToken) - - - script: | - docker run --privileged --rm msgraphprodregistry.azurecr.io/tonistiigi/binfmt --install all - displayName: "Enable multi-platform builds" - - - script: | - docker buildx create --use --name mybuilder - displayName: "Set up Docker BuildX" - - - script: | - docker buildx inspect --bootstrap - displayName: "Ensure BuildX is working" - - - bash: | - echo "Building Docker image..." - echo "Using build date: ${BUILDDATE}" - # Using quotes around tags to prevent flag interpretation - docker buildx build \ - --platform linux/amd64,linux/arm64/v8 \ - --secret id=nuget_config,src="$(Agent.TempDirectory)/hidi-docker.nuget.config" \ - --push \ - -t "$(REGISTRY)/$(IMAGE_NAME):nightly" \ - -t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}" \ - "$(Pipeline.Workspace)" - - displayName: 'Build and Push Nightly Image' - condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH']) - - - bash: | - echo "Building Docker image for release..." - docker buildx build\ - --platform linux/amd64,linux/arm64/v8 \ - --secret id=nuget_config,src="$(Agent.TempDirectory)/hidi-docker.nuget.config" \ - --push \ - -t "$(REGISTRY)/$(IMAGE_NAME):latest" \ - -t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}" \ - "$(Pipeline.Workspace)" - displayName: 'Build and Push Release Image' - condition: contains(variables['Build.SourceBranch'], 'refs/tags/v') - - - pwsh: | - $configPath = "$(Agent.TempDirectory)/hidi-docker.nuget.config" - if (Test-Path $configPath) { - Remove-Item $configPath -Force - } - displayName: 'Remove Docker NuGet config' - condition: always() - # once the nuget has been released, fill this form to get the public documentation updated. # https://dev.azure.com/msft-skilling/Content/_workitems/create/User%20Story?templateId=39fb91e3-64a2-4c8a-83db-b2bdf3603dd3&ownerId=c4a28f90-17ae-4384-b514-7273392b082b # https://learn.microsoft.com/en-us/dotnet/api/microsoft.openapi diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index b2311adf8..576283c02 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -44,8 +44,7 @@ jobs: run: | $projectsArray = @( '.\src\Microsoft.OpenApi\Microsoft.OpenApi.csproj', - '.\src\Microsoft.OpenApi.YamlReader\Microsoft.OpenApi.YamlReader.csproj', - '.\src\Microsoft.OpenApi.Hidi\Microsoft.OpenApi.Hidi.csproj' + '.\src\Microsoft.OpenApi.YamlReader\Microsoft.OpenApi.YamlReader.csproj' ) $projectsArray | ForEach-Object { diff --git a/.vscode/launch.json b/.vscode/launch.json index ad2bdf11d..fb87186c4 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,24 +1,6 @@ { "version": "0.2.0", "configurations": [ - { - // Use IntelliSense to find out which attributes exist for C# debugging - // Use hover for the description of the existing attributes - // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/main/debugger-launchjson.md - "name": "Launch Hidi", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/src/Microsoft.OpenApi.Hidi/bin/Debug/net8.0/Microsoft.OpenApi.Hidi.dll", - "args": ["plugin", - "-m","${workspaceFolder}/test/Microsoft.OpenApi.Hidi.Tests/UtilityFiles/exampleapimanifest.json", - "--of","./output"], - "cwd": "${workspaceFolder}/src/Microsoft.OpenApi.Hidi", - // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console - "console": "internalConsole", - "stopAtEntry": false - }, { // Use IntelliSense to find out which attributes exist for C# debugging // Use hover for the description of the existing attributes diff --git a/.vscode/settings.json b/.vscode/settings.json index 619467ff3..4bfa8971f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,7 +6,6 @@ }, "cSpell.words": [ "csdl", - "Hidi", "Xunit" ] } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index c61ccd31c..4372c2f45 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -29,20 +29,6 @@ "--collect:\"XPlat Code Coverage\"" ], "problemMatcher": "$msCompile" - }, - { - "label": "watch", - "command": "dotnet", - "type": "process", - "group": "build", - "args": [ - "watch", - "run", - "${workspaceFolder}/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" - ], - "problemMatcher": "$msCompile" } ] } \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7719a3839..98e928d47 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,9 @@ OpenAPI.net is a mono-repo containing source code for the following packages: |----------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Microsoft.OpenAPI](./src/Microsoft.OpenAPI/README.md) | [![NuGet Version](https://img.shields.io/nuget/vpre/Microsoft.OpenAPI?label=Latest&logo=nuget)](https://www.nuget.org/packages/Microsoft.OpenAPI/) | | [Microsoft.OpenAPI.YamlReader](./src/Microsoft.OpenApi.YamlReader/README.md) | [![NuGet Version](https://img.shields.io/nuget/vpre/Microsoft.OpenAPI.YamlReader?label=Latest&logo=nuget)](https://www.nuget.org/packages/Microsoft.OpenAPI.YamlReader/) | -| [Microsoft.OpenAPI.Hidi](./src/Microsoft.OpenAPI.Hidi/README.md) | [![NuGet Version](https://img.shields.io/nuget/vpre/Microsoft.OpenAPI.Hidi?label=Latest&logo=nuget)](https://www.nuget.org/packages/Microsoft.OpenAPI.Hidi/) | + +The OpenAPI.NET v3-compatible [Microsoft.OpenApi.Hidi command line tool](https://github.com/microsoft/OpenAPI.NET.OData/blob/main/src/Microsoft.OpenApi.Hidi/readme.md) is maintained separately. +Contribute to Hidi in [OpenAPI.NET.OData's main branch](https://github.com/microsoft/OpenAPI.NET.OData/tree/main). OpenAPI.net is open to contributions. There are a couple of different recommended paths to get contributions into the released version of this library. diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 4e932b975..000000000 --- a/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build-env -WORKDIR /app - -COPY ./src ./hidi/src -COPY ./Directory.Build.props ./hidi/Directory.Build.props -COPY ./README.md ./hidi/README.md -WORKDIR /app/hidi -# CI supplies the private feed config as a secret; local builds use default NuGet sources. -RUN --mount=type=secret,id=nuget_config,target=/app/hidi/NuGet.Config \ - dotnet publish ./src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj -c Release - -FROM mcr.microsoft.com/dotnet/runtime:8.0-jammy-chiseled AS runtime -WORKDIR /app - -COPY --from=build-env /app/hidi/src/Microsoft.OpenApi.Hidi/bin/Release/net8.0 ./ - -VOLUME /app/output -VOLUME /app/openapi.yml -VOLUME /app/api.csdl -VOLUME /app/collection.json -ENV HIDI_CONTAINER=true DOTNET_TieredPGO=1 DOTNET_TC_QuickJitForLoops=1 -ENTRYPOINT ["dotnet", "Microsoft.OpenApi.Hidi.dll"] -LABEL description="# Welcome to Hidi \ -To start transforming OpenAPI documents checkout [the getting started documentation](https://github.com/microsoft/OpenAPI.NET/tree/main/src/Microsoft.OpenApi.Hidi) \ -[Source dockerfile](https://github.com/microsoft/OpenAPI.NET/blob/main/Dockerfile)" diff --git a/Microsoft.OpenApi.slnx b/Microsoft.OpenApi.slnx index 8356bb428..007071a9e 100644 --- a/Microsoft.OpenApi.slnx +++ b/Microsoft.OpenApi.slnx @@ -8,12 +8,10 @@ - - diff --git a/README.md b/README.md index 8622d64d8..a4cf4171e 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ |--|--| |Models and Writers|[![nuget](https://img.shields.io/nuget/v/Microsoft.OpenApi.svg)](https://www.nuget.org/packages/Microsoft.OpenApi/) | |YamlReader | [![nuget](https://img.shields.io/nuget/v/Microsoft.OpenApi.YamlReader.svg)](https://www.nuget.org/packages/Microsoft.OpenApi.YamlReader/) | -|Hidi|[![nuget](https://img.shields.io/nuget/v/Microsoft.OpenApi.Hidi.svg)](https://www.nuget.org/packages/Microsoft.OpenApi.Hidi/) The **OpenAPI.NET** SDK contains a useful object model for OpenAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model. @@ -86,10 +85,9 @@ var outputString = await openApiDocument.SerializeAsJsonAsync(OpenApiSpecVersion ``` # Validating/Testing OpenAPI descriptions -In order to test the validity of an OpenApi document, we avail the following tools: -- [Microsoft.OpenApi.Hidi](https://www.nuget.org/packages/Microsoft.OpenApi.Hidi) - - A commandline tool for validating and transforming OpenAPI descriptions. [Installation guidelines and documentation](https://github.com/microsoft/OpenAPI.NET/blob/main/src/Microsoft.OpenApi.Hidi/readme.md) +[Microsoft.OpenApi.Hidi](https://www.nuget.org/packages/Microsoft.OpenApi.Hidi) is a command line tool for validating and transforming OpenAPI descriptions. +The OpenAPI.NET v3-compatible tool is maintained in [OpenAPI.NET.OData's main branch](https://github.com/microsoft/OpenAPI.NET.OData/tree/main/src/Microsoft.OpenApi.Hidi). +See its [installation guidelines and documentation](https://github.com/microsoft/OpenAPI.NET.OData/blob/main/src/Microsoft.OpenApi.Hidi/readme.md). # Contributing diff --git a/build.cmd b/build.cmd index 07daf7b6c..4fa04e44a 100644 --- a/build.cmd +++ b/build.cmd @@ -13,11 +13,4 @@ dotnet msbuild %PROJ% /t:restore /p:Configuration=Release dotnet msbuild %PROJ% /t:build /p:Configuration=Release dotnet msbuild %PROJ% /t:pack /p:Configuration=Release;PackageOutputPath=%~dp0artifacts -Echo Building Microsoft.OpenApi.Hidi - -SET PROJ=%~dp0src\Microsoft.OpenApi.Hidi\Microsoft.OpenApi.Hidi.csproj -dotnet msbuild %PROJ% /t:restore /p:Configuration=Release -dotnet msbuild %PROJ% /t:build /p:Configuration=Release -dotnet msbuild %PROJ% /t:pack /p:Configuration=Release;PackageOutputPath=%~dp0artifacts - :end diff --git a/build.sh b/build.sh index 0de30b6df..1e6ae6313 100755 --- a/build.sh +++ b/build.sh @@ -12,11 +12,4 @@ echo "Building Microsoft.OpenApi.YamlReader" PROJ="$(dirname "$0")/src/Microsoft.OpenApi.YamlReader/Microsoft.OpenApi.YamlReader.csproj" dotnet msbuild "$PROJ" /t:restore /p:Configuration=Release dotnet msbuild "$PROJ" /t:build /p:Configuration=Release -dotnet msbuild "$PROJ" /t:pack "/p:Configuration=Release;PackageOutputPath=$(dirname "$0")/artifacts" - -echo "Building Microsoft.OpenApi.Hidi" - -PROJ="$(dirname "$0")/src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj" -dotnet msbuild "$PROJ" /t:restore /p:Configuration=Release -dotnet msbuild "$PROJ" /t:build /p:Configuration=Release dotnet msbuild "$PROJ" /t:pack "/p:Configuration=Release;PackageOutputPath=$(dirname "$0")/artifacts" \ No newline at end of file diff --git a/install-tool.ps1 b/install-tool.ps1 deleted file mode 100644 index 0b4615c67..000000000 --- a/install-tool.ps1 +++ /dev/null @@ -1,7 +0,0 @@ -$latest = Get-ChildItem .\artifacts\Microsoft.OpenApi.Hidi* | select-object -Last 1 -$version = $latest.Name.Split(".")[3..5] | join-string -Separator "." - -if (Test-Path -Path ./artifacts/hidi.exe) { - dotnet tool uninstall --tool-path artifacts Microsoft.OpenApi.Hidi -} -dotnet tool install --tool-path artifacts --add-source .\artifacts\ --version $version Microsoft.OpenApi.Hidi \ No newline at end of file diff --git a/src/Microsoft.OpenApi.Hidi/CsdlFilter.xslt b/src/Microsoft.OpenApi.Hidi/CsdlFilter.xslt deleted file mode 100644 index ee3bf0d40..000000000 --- a/src/Microsoft.OpenApi.Hidi/CsdlFilter.xslt +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/Microsoft.OpenApi.Hidi/Extensions/CommandExtensions.cs b/src/Microsoft.OpenApi.Hidi/Extensions/CommandExtensions.cs deleted file mode 100644 index 1a2dc477d..000000000 --- a/src/Microsoft.OpenApi.Hidi/Extensions/CommandExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -using System.Collections.Generic; -using System.CommandLine; - -namespace Microsoft.OpenApi.Hidi.Extensions -{ - internal static class CommandExtensions - { - public static void AddOptions(this Command command, IReadOnlyList