Skip to content

Commit 2b6ecc1

Browse files
joperezradamsitnikstephentoubCopilotericstj
authored
Merge changes from internal (#7038)
* Merged PR 54952: Getting ready for the 10.0 stable release. Flowing .NET Servicing #### AI description (iteration 1) #### PR Classification This PR updates dependency versions and build pipeline configurations to prepare for the .NET 10.0 stable release. #### PR Summary The changes update dependency and LTS versions (upgrading many from 9.0.10 to 9.0.11), enable release-specific flags, and streamline the build pipelines for servicing. - **`eng/Version.Details.xml` and `eng/Versions.props`**: Upgraded various dependency versions and LTS numbers and set stabilization flags (e.g., `StabilizePackageVersion` to true, `DotNetFinalVersionKind` to release). - **`azure-pipelines.yml`**: Removed the code coverage stage to simplify the CI pipeline. - **`eng/pipelines/templates/BuildAndTest.yml`**: Added tasks to set up private feed credentials and commented out integration tests that require authentication. - **`NuGet.config`**: Revised package source configuration by removing package source mapping and adding new internal feed URLs. - **`Directory.Build.props`**: Suppressed NU1507 warnings to accommodate internal branch configuration. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot --> * [MEDI] start producing NuGet packages (#7016) * remove IsPackable=false, provide all mandatory properties for each package we want to ship * add basic READMEs * Update version numbers in AI changelogs (#7008) * [MEDI] Don't stop document processing on enricher error (#7005) * introduce EnricherOptions option bag * implement batching * don't validate results returned by IChatClient * don't expose FileInfo as source via IngestionResult, as it could be Stream in the future. Just expose the document id * Enricher failures should not fail the whole ingestion pipeline, as they are best-effort enhancements * [MEDI] add PackageTags (#7022) * Add MarkItDownMcpReader for MCP server support (#7025) Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Adam Sitnik <[email protected]> * Image generation tool (#6749) * Prototype of using ImageGenerationTool * Handle DataContent returned from ImageGen * React to rename and improve metadata * Handle image_generation tool content from streaming * Add handling for combining updates with images * Add tests for new ChatResponseUpdateExtensions * Rename ImageGenerationTool to HostedImageGenerationTool * Remove ChatResponseUpdateCoalescingOptions * Add ImageGeneratingChatClient * Fix namespace of tool * Replace traces of function calling * More namepsace fix * Enable editing * Update to preview OpenAI with image tool support * Temporary OpenAI feed * Fix tests * Add integration tests for ImageGeneratingChatClient * Remove ChatRole.Tool -> Assistant workaround * Remove use of private reflection for Image results * Add ChatResponseUpdate.Clone * Move all mutable state into RequestState object * Adjust prompt to improve integration test reliability * Refactor tool initialization I verified that the tool creation is cached by ReflectionAIFunctionDescriptor This change includes a small optimization to avoid additional allocation around inserting tools into the options. * Add integration tests for streaming Fixes the removal of tool content - this was broken for streaming when I changed removal to be based on callId. We don't have the CallId yet in the streaming case so we have to remove by name. * React to changes and fix tests * Address feedback * Fix SkipTestException from ConditionalTheory * Fix formatting * Add back image replacement coalescing (removed in merge) * Fix template tests and use new OpenAI * Remove use of temporary staging nuget feed * Address feedback * Make ImageGeneratingChatClient use ImageGenerationTool*Content * Remove ApplyUpdates and Coalesce ImageResults instead of DataContent. * Workaround OpenAI issue where image data is not read for partial images. openai/openai-dotnet#809 * Improved workaround * Return ImageGenerationToolCallContent from OpenAI * Add OpenAI image tool tests with representation of real traffic * Correct the event sequence for streaming single image * Fix some docs and refactor for clarity * Make MEAI packages use 10.0 runtime packages (#7028) * Make MEAI packages use 10.0 runtime packages * Add back MEAI.Abstractions JsonSchemaExporter tests * Address feedback * Remove unneeded trimming suppression * When using latest .NET packages, force System.Numerics.Tensors to 10.0 (for MEAI) (#7031) * Add a new Microsoft.Agents.AI.Templates package with an aiagents-webapi project template (#7014) * Initial Microsoft.Agents.AI.Templates structure * Refine Microsoft.Agents.AI.Templates infrastructure * Move project template infrastructure utilities into a shared folder * Add the webapi-agents project template content with GitHub models * Support parameterized AI Service Provider * Rename to aiagents-webapi * Support parameterized chatmodel and update docs with renames * Add Snapshot tests * Add aiagents-webapi snapshot tests * Add aiagents-webapi execution tests (and component governance) * Improve aiagents-webapi template parameters * Apply suggestions from copilot code review Co-authored-by: Copilot <[email protected]> * Move shared ProjectTemplate infrastructure to not get included in Shared.Tests * Fix the template sandbox / execution tests after moving infrastructure * Ignore CA1716 warning about 'Shared' namespace in template tests * Clean up template sandbox source/output * Rename to "aiagent-webapi" and favor singular "Agent". Docs cleanup. * Update templates dev doc to cover Microsoft.Agents.AI.Templates too * Fix remaining template sandbox references with new paths * Add a tool call in aiagent-webapi. Update workflow API usage for upcoming change. Fix snapshots * Exclude csproj.in file from template package * Add a survey link to the aiagent-webapi template's generated readme --------- Co-authored-by: Copilot <[email protected]> * Use `Microsoft.Extensions.DataIngestion` in AI Chat Web template (#7023) * Add Markdown support * Remove PDF support * Revert "Remove PDF support" This reverts commit e1d066034962c9686bf8150984b6adf0e25846c8. * Add 'Example_GPS_Watch.md' * Add MEDI dependencies * Revert "[MEDI] Remove collection key type workaround (#7010)" This reverts commit a369be9. * MEDI integration into chat template * Remove PdfPig dependency * Fix citation + normalize identifier path * Undo changes to `M.E.DI.csproj` * Update snapshots * Update DataIngestion unit tests to handle keys as either strings or guids * Update SK and fix MEDI version * Remove SK workaround * Fix sandbox paths to allow running tests multiple times * Reliable data ingestion * Enable MEDI tracing * Simplify log message * Add `PdfPigReader` for non-Aspire template * Invert PdfPigReader exclusion condition * Use Markitdown MCP * Update snapshots * Undo changes to `IngestionPipelineTests.cs` * Update src/ProjectTemplates/Microsoft.Extensions.AI.Templates/src/ChatWithCustomData/ChatWithCustomData-CSharp.Web/Services/Ingestion/DocumentReader.cs Co-authored-by: Jeff Handley <[email protected]> * Update snapshots * Improve template execution test failure output * Support .NET 10 in aichatweb, using it by default * Show a message when loading documents by loading docs as a separate tool * disable the incremental ingestion * map every PDF page to a single section * drop SK dependency * Add system prompt instructions for calling the LoadDocuments tool. Fix code formatting. --------- Co-authored-by: Jeff Handley <[email protected]> Co-authored-by: Adam Sitnik <[email protected]> * Add Agent Framework DevUI into the aiagent-webapi template (#7026) * Integrate DevUI into the aiagent-webapi project template * Improve aiagent-webapi Program.cs per feedback. * Remove --no-devui. Fix OpenAI clients. Augment execution test sandbox ignores. * Rename to Microsoft.Agents.AI.ProjectTemplates * Set Microsoft.Agents.AI package versions * Simplify the GitHub and OpenAI key config vars for aiagent-webapi * Sort package references * Fix troubleshooting section in READMEs * Revert MEAI.Templates change. Make launchSettings .gitignore more specific. --------- Co-authored-by: Mackinnon Buck <[email protected]> * Fix display of target frameworks in agents template. Hide the chat model textbox from the IDE template UI. --------- Co-authored-by: Adam Sitnik <[email protected]> Co-authored-by: Stephen Toub <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Eric StJohn <[email protected]> Co-authored-by: Jeff Handley <[email protected]> Co-authored-by: Jeff Handley <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Mackinnon Buck <[email protected]>
2 parents 192782e + e9e1d3e commit 2b6ecc1

File tree

293 files changed

+8950
-5148
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

293 files changed

+8950
-5148
lines changed

Directory.Build.targets

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
<Import Project="$(MSBuildThisFileDirectory)\eng\MSBuild\Generators.targets" />
99
<Import Project="$(MSBuildThisFileDirectory)\eng\MSBuild\ProjectStaging.targets" />
1010

11+
<PropertyGroup>
12+
<!-- Workaround https://github.com/dotnet/sdk/issues/51265 - can be removed when updating to .NET 10.0.100 (GA) SDK -->
13+
<RestoreEnablePackagePruning Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">false</RestoreEnablePackagePruning>
14+
</PropertyGroup>
15+
1116
<!-- Warning stuff -->
1217
<PropertyGroup>
1318
<MSBuildWarningsAsMessages>$(MSBuildWarningsAsMessages);NETSDK1138;MSB3270</MSBuildWarningsAsMessages>

eng/MSBuild/LegacySupport.props

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<ItemGroup Condition="'$(InjectCompilerFeatureRequiredOnLegacy)' == 'true' AND ('$(TargetFramework)' == 'net462' or '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'netcoreapp3.1')">
33
<Compile Include="$(MSBuildThisFileDirectory)\..\..\src\LegacySupport\CompilerFeatureRequiredAttribute\*.cs" LinkBase="LegacySupport\CompilerFeatureRequiredAttribute" />
44
</ItemGroup>
5-
5+
66
<ItemGroup Condition="'$(InjectRequiredMemberOnLegacy)' == 'true' AND ('$(TargetFramework)' == 'net462' or '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'netcoreapp3.1')">
77
<Compile Include="$(MSBuildThisFileDirectory)\..\..\src\LegacySupport\RequiredMemberAttribute\*.cs" LinkBase="LegacySupport\RequiredMemberAttribute" />
88
</ItemGroup>
@@ -47,10 +47,6 @@
4747
<Compile Include="$(MSBuildThisFileDirectory)\..\..\src\LegacySupport\StringSyntaxAttribute\*.cs" LinkBase="LegacySupport\StringSyntaxAttribute" />
4848
</ItemGroup>
4949

50-
<ItemGroup Condition="'$(InjectJsonSchemaExporterOnLegacy)' == 'true' AND ('$(TargetFramework)' == 'net462' or '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'netcoreapp3.1' or '$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0' or '$(TargetFramework)' == 'net8.0')">
51-
<Compile Include="$(MSBuildThisFileDirectory)\..\..\src\Shared\JsonSchemaExporter\**\*.cs" LinkBase="Shared\EmptyCollections" />
52-
</ItemGroup>
53-
5450
<ItemGroup Condition="'$(InjectGetOrAddOnLegacy)' == 'true' AND ('$(TargetFramework)' == 'net462' or '$(TargetFramework)' == 'netstandard2.0')">
5551
<Compile Include="$(MSBuildThisFileDirectory)\..\..\src\LegacySupport\GetOrAdd\*.cs" LinkBase="LegacySupport\GetOrAdd" />
5652
</ItemGroup>

eng/Version.Details.xml

Lines changed: 100 additions & 100 deletions
Large diffs are not rendered by default.

eng/Versions.props

Lines changed: 116 additions & 116 deletions
Large diffs are not rendered by default.

eng/build.proj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.Build.Traversal">
22
<ItemGroup>
33
<_SnapshotsToExclude Include="$(MSBuildThisFileDirectory)..\test\**\Snapshots\**\*.*proj" />
4-
<_GeneratedContentToExclude Include="$(MSBuildThisFileDirectory)..\test\**\TemplateSandbox\**\*.*proj" />
4+
<_GeneratedContentToExclude Include="$(MSBuildThisFileDirectory)..\test\**\ExecutionTestSandbox\**\*.*proj" />
55

66
<!-- We recursively add all of the projects inside the src directory, except for the exclusions above -->
77
<_ProjectsToBuild Include="$(MSBuildThisFileDirectory)..\src\**\*.csproj" />

eng/packages/General-net10.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<PackageVersion Include="System.IO.Pipelines" Version="$(SystemIOPipelinesNet10Version)" />
3939
<PackageVersion Include="System.Memory.Data" Version="$(SystemMemoryDataNet10Version)" />
4040
<PackageVersion Include="System.Net.Http.Json" Version="$(SystemNetHttpJsonNet10Version)" />
41+
<PackageVersion Include="System.Numerics.Tensors" Version="$(SystemNumericsTensorsNet10Version)" />
4142
<PackageVersion Include="System.Text.Encodings.Web" Version="$(SystemTextEncodingsWebNet10Version)" />
4243
<PackageVersion Include="System.Text.Json" Version="$(SystemTextJsonNet10Version)" />
4344
<PackageVersion Include="System.Threading.Channels" Version="$(SystemThreadingChannelsNet10Version)" />

eng/packages/General-net9.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<PackageVersion Include="System.IO.Pipelines" Version="$(SystemIOPipelinesVersion)" />
3939
<PackageVersion Include="System.Memory.Data" Version="$(SystemMemoryDataVersion)" />
4040
<PackageVersion Include="System.Net.Http.Json" Version="$(SystemNetHttpJsonVersion)" />
41+
<PackageVersion Include="System.Numerics.Tensors" Version="$(SystemNumericsTensorsVersion)" />
4142
<PackageVersion Include="System.Text.Encodings.Web" Version="$(SystemTextEncodingsWebVersion)" />
4243
<PackageVersion Include="System.Text.Json" Version="$(SystemTextJsonVersion)" />
4344
<PackageVersion Include="System.Threading.Channels" Version="$(SystemThreadingChannelsVersion)" />

eng/packages/General.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<PackageVersion Include="Microsoft.Extensions.VectorData.Abstractions" Version="$(MicrosoftExtensionsVectorDataAbstractionsVersion)" />
1919
<PackageVersion Include="Microsoft.IO.RecyclableMemoryStream" Version="3.0.0" />
2020
<PackageVersion Include="Microsoft.ML.Tokenizers" Version="$(MicrosoftMLTokenizersVersion)" />
21+
<PackageVersion Include="ModelContextProtocol.Core" Version="0.4.0-preview.3" />
2122
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
2223
<PackageVersion Include="OllamaSharp" Version="5.1.9" />
2324
<PackageVersion Include="OpenAI" Version="2.6.0" />
@@ -32,7 +33,6 @@
3233
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
3334
<PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
3435
<PackageVersion Include="System.Memory" Version="4.5.5" />
35-
<PackageVersion Include="System.Numerics.Tensors" Version="$(SystemNumericsTensorsVersion)" />
3636
<PackageVersion Include="System.Private.Uri" Version="4.3.2" />
3737
<PackageVersion Include="System.Runtime.Caching" Version="$(SystemRuntimeCachingVersion)" />
3838
<PackageVersion Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.0" />

eng/packages/TestOnly.props

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@
3131
<PackageVersion Include="Xunit.SkippableFact" Version="1.4.13" />
3232
</ItemGroup>
3333

34+
<PropertyGroup>
35+
<!-- Warn NU1903 happens at restore time when a transitive dependency has been marked with a vulnerability in NuGet. Our test projects get it due to Transitive dependencies to System.Net.Http and System.Text.RegularExpressions.
36+
Given both of those assemblies are in the shared framework, they won't be used at runtime and so we dismiss this warning for test projects. -->
37+
<NoWarn>$(NoWarn);NU1903</NoWarn>
38+
</PropertyGroup>
39+
3440
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
3541
<PackageVersion Include="Microsoft.AspNetCore.Mvc" Version="2.1.3" />
3642
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="2.1.3" />

src/Libraries/Microsoft.Extensions.AI.Abstractions/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Release History
22

3-
## NOT YET RELEASED
3+
## 9.10.2
44

55
- Updated `AIFunctionFactory` to respect `[DisplayName(...)]` on functions as a way to override the function name.
66
- Updated `AIFunctionFactory` to respect `[DefaultValue(...)]` on function parameters as a way to specify default values.

0 commit comments

Comments
 (0)