Skip to content

[automated] Merge branch 'main' => 'dev' #6267

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 21 commits into
base: dev
Choose a base branch
from

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Apr 9, 2025

I detected changes in the main branch which have not been merged yet to dev. I'm a robot and am configured to help you automatically keep dev up to date, so I've opened this PR.

This PR merges commits made on main by the following committers:

  • evgenyfedorov2
  • joperezr
  • stephentoub
  • peterwald
  • RussKie

Instructions for merging from UI

This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.

merge button instructions

If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.

Instructions for merging via command line

Run these commands to merge this pull request from the command line.

git fetch
git checkout main
git pull --ff-only
git checkout dev
git pull --ff-only
git merge --no-ff main

# If there are merge conflicts, resolve them and then run git merge --continue to complete the merge
# Pushing the changes to the PR branch will re-trigger PR validation.
git push https://github.com/dotnet/extensions HEAD:merge/main-to-dev
or if you are using SSH
git push [email protected]:dotnet/extensions HEAD:merge/main-to-dev

After PR checks are complete push the branch

git push

Instructions for resolving conflicts

⚠️ If there are merge conflicts, you will need to resolve them manually before merging. You can do this using GitHub or using the command line.

Instructions for updating this pull request

Contributors to this repo have permission update this pull request by pushing to the branch 'merge/main-to-dev'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.

git fetch
git checkout -b merge/main-to-dev origin/dev
git pull https://github.com/dotnet/extensions merge/main-to-dev
(make changes)
git commit -m "Updated PR with my changes"
git push https://github.com/dotnet/extensions HEAD:merge/main-to-dev
or if you are using SSH
git fetch
git checkout -b merge/main-to-dev origin/dev
git pull [email protected]:dotnet/extensions merge/main-to-dev
(make changes)
git commit -m "Updated PR with my changes"
git push [email protected]:dotnet/extensions HEAD:merge/main-to-dev

Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.

Microsoft Reviewers: Open in CodeFlow

joperezr and others added 20 commits April 2, 2025 22:28
….4 release

Flowing stable internal versions and get ready for 9.4 release

----
#### AI description  (iteration 1)
#### PR Classification
Preparing for the 9.4 release by updating internal dependencies and configurations.

#### PR Summary
This pull request updates various dependencies to their latest stable versions and adjusts configurations for the upcoming 9.4 release.
- `Version.Details.xml` and `Versions.props`: Updated multiple dependencies from version 9.0.3 to 9.0.4.
- `azure-pipelines.yml`: Removed the code coverage stage and related configurations.
- `NuGet.config`: Added new internal package sources and removed package source mappings.
- `Directory.Build.props`: Disabled NU1507 warning for internal branches.
- `BuildAndTest.yml`: Added steps to set up private feed credentials for both Windows and non-Windows agents.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
* Add TextReasoningContent

* Coalesce TextReasoningContent
* Use ErrorContent in OpenAIResponseChatClient

* Address feedback
* OpenAI: Parse detail additional property

* Update tests to use AsIChatClient

* Don't throw when type is not string

* Match OpenAI.Chat.ChatImageDetailLevel
* Minimal change in AIJsonUtilities from SHA256 to SHA384

* Update GetCacheKey API to have explicit messages/options params

The point of this is to make it easier and more reliable for people overriding the logic to obtain specific values from messages/options to include in cache key without having to search through an opaque list of `object` values.
Several git cherry-picks with no conflicts or manual changes.

----
#### AI description  (iteration 1)
#### PR Classification
Backport recent changes from the main branch to the current branch.

#### PR Summary
This pull request backports recent changes related to AI functionalities and tests from the main branch.
- `OpenAIChatClientTests.cs`: Added new tests for image content handling in chat messages.
- `ChatResponseExtensions.cs`: Enhanced content coalescing to handle multiple content types.
- `TextReasoningContent.cs` and `TextReasoningContentTests.cs`: Added new class and corresponding tests for text reasoning content.
- `AIFunctionFactory.cs`: Improved result marshalling logic for async methods.
- `DistributedCachingChatClient.cs`: Updated cache key computation to include messages and options.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
#### AI description  (iteration 1)
#### PR Classification
New feature

#### PR Summary
This pull request marks release builds as "stable" by setting the `DotNetFinalVersionKind` property to "release".
- `eng/Versions.props`: Added `DotNetFinalVersionKind` property to mark builds as stable for release branches.
- `eng/MSBuild/ProjectStaging.props`: Removed redundant setting of `DotNetFinalVersionKind` property.
<!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->
…fety evaluators

The new evaluators ship in a new Microsoft.Extensions.AI.Evaluation.Safety package.

Also includes the following public API changes:
- Add a Metadata dictionary on EvaluationMetric.
- Make EvaluationMetric.Diagnostics nullable.
- Convert instance functions on some (fully mutable) result types to extension methods in the same namespace.

And some reporting improvements including:
- Change boolean metric UI representation in metric card from Pass / Fail to Yes / No
- Display the above Metadata contents in a table in the metric details view when a metric card is clicked
- Improve display for diagnostics in metric details - diagnostics are now also displayed in a table with with proper formatting and an option copy diagnostics to the clipboard
…unction invocations (#6250)

We try to use ConfigureAwait(false) throughout our libraries. However, we exempt ourselves from that in cases where user code is expected to be called back from within the async code, and there's a reasonable presumption that such code might care about the synchronization context. AIFunction fits that bill. And FunctionInvokingChatClient needs to invoke such functions, which means that we need to be able to successfully flow the context from where user code calls Get{Streaming}ResponseAsync through into wherever a FunctionInvokingChatClient is in the middleware pipeline. We could try to selectively avoid ConfigureAwait(false) on the path through middleware that could result in calls to FICC.Get{Streaming}ResponseAsync, but that's fairly brittle and hard to maintain. Instead, this PR just removes ConfigureAwait use from the M.E.AI library. It also fixes a few places where tasks were explicitly being created and queued to the thread pool.
…ns.AI.dll for AIFunction...

Remove use of ConfigureAwait from Microsoft.Extensions.AI.dll for AIFunction invocations (#6250)

We try to use ConfigureAwait(false) throughout our libraries. However, we exempt ourselves from that in cases where user code is expected to be called back from within the async code, and there's a reasonable presumption that such code might care about the synchronization context. AIFunction fits that bill. And FunctionInvokingChatClient needs to invoke such functions, which means that we need to be able to successfully flow the context from where user code calls Get{Streaming}ResponseAsync through into wherever a FunctionInvokingChatClient is in the middleware pipeline. We could try to selectively avoid ConfigureAwait(false) on the path through middleware that could result in calls to FICC.Get{Streaming}ResponseAsync, but that's fairly brittle and hard to maintain. Instead, this PR just removes ConfigureAwait use from the M.E.AI library. It also fixes a few places where tasks were explicitly being created and queued to the thread pool.
…t execution

Avoid displaying tags that are only present on previous runs since clicking on them filters out all the tests in the view. Tags from older runs also mess up the global tags display (since tags that are global to the latest execution are not considered global anymore unless they are all also present on older runs).

Also includes fixes for some minor issues I noticed:
* Avoid displaying the pointer (hand) cursor when hovering over controls that are not interactive (such as the global tags list and the section that displays historical trends for non-leaf nodes).
* Make styling for some buttons more consistent.
@github-actions github-actions bot requested review from a team as code owners April 9, 2025 07:10
@shyamnamboodiripad
Copy link
Contributor

@joperezr @RussKie Is this PR still needed? Should we update it to include commits for the next release?

@RussKie
Copy link
Contributor

RussKie commented May 9, 2025

This branch targets .NET 10, it's not a super high prio, but yes the tests need to be updated to get it green :) If you spare cycles and you're willing to help - great, otherwise I'll get it fixed next week some time.
Thank you for alerting me to the failure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants