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)
{