diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4db00223..36fe47c3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -2,4 +2,4 @@ # For more information, see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners # The '*' pattern represents global owners. -* @joseharriaga @trrwilson @ShivangiReja +* @joseharriaga @christothes @ShivangiReja @jsquire diff --git a/.github/workflows/codegen-validation.yml b/.github/workflows/codegen-validation.yml index 9c8bf671..e0fd3b13 100644 --- a/.github/workflows/codegen-validation.yml +++ b/.github/workflows/codegen-validation.yml @@ -20,7 +20,7 @@ jobs: validate-codegen: name: Validate Code Generation runs-on: ubuntu-latest - + steps: - name: Checkout code uses: actions/checkout@v4 @@ -29,7 +29,7 @@ jobs: uses: actions/setup-node@v4 with: node-version: '22.x' - + - name: Setup .NET uses: actions/setup-dotnet@v4 with: @@ -41,14 +41,14 @@ jobs: run: | Write-Host "Running code generation validation..." ./scripts/Invoke-CodeGen.ps1 -Clean - + if ($LASTEXITCODE -ne 0) { Write-Error "Code generation failed with exit code: $LASTEXITCODE" exit $LASTEXITCODE } - + Write-Host "Code generation completed successfully!" - + - name: Check for uncommitted changes run: | # Check if there are any changes to tracked files after code generation @@ -60,7 +60,7 @@ jobs: git diff exit 1 fi - + # Also check for untracked files that might have been generated if [ -n "$(git ls-files --others --exclude-standard)" ]; then echo "::error::Code generation produced untracked files. Please review and commit them if they should be included." @@ -68,16 +68,16 @@ jobs: git ls-files --others --exclude-standard exit 1 fi - + echo "No uncommitted changes detected - code generation is up to date!" - + - name: Run codegen visitor tests run: dotnet test codegen/generator/test/ --configuration Release --logger "trx;LogFilePrefix=codegen" --results-directory ${{github.workspace}}/artifacts/test-results ${{ env.version_suffix_args}} - + - name: Upload artifacts uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} diff --git a/.github/workflows/live-test.yml b/.github/workflows/live-test.yml index f1359007..61c69ab0 100644 --- a/.github/workflows/live-test.yml +++ b/.github/workflows/live-test.yml @@ -16,7 +16,12 @@ jobs: env: version_suffix_args: ${{ format('/p:VersionSuffix="alpha.{0}"', github.run_number) }} steps: - - name: Setup .NET + - name: Setup .NET 10 + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '10.x' + + - name: Setup .NET 9 uses: actions/setup-dotnet@v3 with: dotnet-version: '9.x' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7b942131..a4f0a3dd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,7 +17,12 @@ jobs: env: version_suffix_args: ${{ format('/p:VersionSuffix="alpha.{0}"', github.run_number) }} steps: - - name: Setup .NET + - name: Setup .NET 10 + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '10.x' + + - name: Setup .NET 9 uses: actions/setup-dotnet@v3 with: dotnet-version: '9.x' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3a9f9bdf..81525525 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,12 @@ jobs: env: version_suffix_args: ${{ github.event_name == 'schedule' && format('/p:VersionSuffix="alpha.{0}"', github.run_number) || '' }} steps: - - name: Setup .NET + - name: Setup .NET 10 + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '10.x' + + - name: Setup .NET 9 uses: actions/setup-dotnet@v3 with: dotnet-version: '9.x' @@ -78,22 +83,22 @@ jobs: environment: release # Needed for OIDC subject for releases triggered on release being created. permissions: id-token: write # Required for requesting the JWT - + steps: - name: Download build artifacts uses: actions/download-artifact@v4 with: name: build-artifacts path: ${{ github.workspace }}/build-artifacts - + - name: Setup .NET uses: actions/setup-dotnet@v3 with: dotnet-version: '9.x' - + - name: Install Sign CLI tool run: dotnet tool install --tool-path . --prerelease sign - + - name: 'Az CLI login' uses: azure/login@v2 with: @@ -113,13 +118,13 @@ jobs: --azure-credential-type "azure-cli" --azure-key-vault-url "https://sc-openaisdk.vault.azure.net/" --azure-key-vault-certificate "OpenAISDKSCCert" - + - name: Upload signed artifact uses: actions/upload-artifact@v4 with: name: build-artifacts-signed path: ${{ github.workspace }}/build-artifacts - + deploy: name: Publish package needs: sign diff --git a/global.json b/global.json index cbe802cd..8e8a4cdf 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "9.0.306", + "version": "10.0.100", "rollForward": "feature" } -} +} \ No newline at end of file diff --git a/nuget.config b/nuget.config index 6bf477c4..273cdaea 100644 --- a/nuget.config +++ b/nuget.config @@ -10,6 +10,7 @@ + diff --git a/src/OpenAI.csproj b/src/OpenAI.csproj index bf0c2b9c..d057bb27 100644 --- a/src/OpenAI.csproj +++ b/src/OpenAI.csproj @@ -3,15 +3,15 @@ The official .NET library for the OpenAI service API. - SDK Code Generation OpenAI + OpenAI client library for .NET OpenAI;openai-dotnet;ChatGPT;Dall-E MIT - Copyright (c) 2024 OpenAI (https://openai.com) + Copyright (c) 2025 OpenAI (https://openai.com) 2.8.0 - net8.0;netstandard2.0 + net10.0;net8.0;netstandard2.0 latest @@ -62,10 +62,6 @@ - - - true - @@ -73,12 +69,22 @@ - - + + + + + - - + + + + + + + + true + diff --git a/tests/OpenAI.Tests.csproj b/tests/OpenAI.Tests.csproj index bcb5bd4f..960ad0d0 100644 --- a/tests/OpenAI.Tests.csproj +++ b/tests/OpenAI.Tests.csproj @@ -1,28 +1,33 @@  - net9.0 + net10.0;net9.0;net8.0 + latest $(NoWarn);CS1591 - - $(NoWarn);OPENAI001;SCME0001; - - latest + + $(NoWarn);OPENAI001;OPENAI002;SCME0001; + + - - - - + + - - + + + + + + + + diff --git a/tests/Responses/ResponsesTests.cs b/tests/Responses/ResponsesTests.cs index 3050337f..4be5523e 100644 --- a/tests/Responses/ResponsesTests.cs +++ b/tests/Responses/ResponsesTests.cs @@ -760,7 +760,10 @@ public async Task AllInstructionMethodsWork(ResponsesTestInstructionMethod instr } List listedItems = []; - await client.GetResponseInputItemsAsync(new ResponseItemCollectionOptions(response.Id)).ForEachAsync(item => listedItems.Add(item)); + await foreach (var item in client.GetResponseInputItemsAsync(response.Id)) + { + listedItems.Add(item); + } if (instructionMethod == ResponsesTestInstructionMethod.InstructionsProperty) {