-
Notifications
You must be signed in to change notification settings - Fork 2.3k
.NET: ci: switches to a dedicated solution for dependabot #8486
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| # Dependabot NuGet discovery | ||
|
|
||
| This folder contains the NuGet entry point used by Dependabot. | ||
|
|
||
| Dependabot's NuGet updater expands solution files before resolving package updates. The developer solution in `dotnet/agent-framework-dotnet.slnx` includes the sample projects, and expanding those projects causes the updater to exceed its fixed execution timeout before it can open dependency update pull requests. | ||
|
|
||
| `agent-framework-dependabot.slnx` intentionally references only non-sample source and test projects. The referenced projects still live under `dotnet/src` and `dotnet/tests`, so MSBuild imports the central package management configuration from `dotnet/Directory.Packages.props` normally. | ||
|
|
||
| Do not add sample projects to this solution. If a new non-sample project should be covered by Dependabot NuGet updates, add it here. |
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We’ll have to remember to update this file every time we add, remove, or update a project. Maybe we can use it to confirm that the timeouts are caused by the large number of dependencies that need to be analyzed, and then decide on a more maintainable solution.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd like to try this solution since I've already tried:
Unfortunately, for me to try anything, I need to merge into main. Nothing guarantees it'll work, and if it does, we can always adjust to negate any trade offs like these.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If it works, we’ll also need a way for Dependabot to update the sample dependencies.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The other alternative I thought of was to add entries dedicated to csproj, so it does the different runs on separate jobs. But that's going to be a pain to maintain. Which is why I'd like to try the solution first.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also check out https://github.com/microsoft/agent-framework/blob/main/dotnet/eng/scripts/New-FilteredSolution.ps1 We are using this in a few places in the main dotnet-build-and-test.yml to create smaller slnx files to avoid building everything in every parallel stream. It supports a switch for removing all samples, but can also filter projects by target framework. E.g.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. unfortunately I don't have control over how dependabot does the discovery or which steps it runs besides pointing it to a directory. So it won't be able to execute this script. (there's no workflow definition for dependabot) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| <Solution> | ||
| <Configurations> | ||
| <BuildType Name="Debug" /> | ||
| <BuildType Name="Publish" /> | ||
| <BuildType Name="Release" /> | ||
| </Configurations> | ||
| <Folder Name="/Source/"> | ||
| <File Path="../Directory.Packages.props" /> | ||
| <Project Path="../src/Aspire.Hosting.AgentFramework.DevUI/Aspire.Hosting.AgentFramework.DevUI.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.A2A/Microsoft.Agents.AI.A2A.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Abstractions/Microsoft.Agents.AI.Abstractions.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.AgentHooks/Microsoft.Agents.AI.AgentHooks.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Anthropic/Microsoft.Agents.AI.Anthropic.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.AzureAI.Persistent/Microsoft.Agents.AI.AzureAI.Persistent.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.CopilotStudio/Microsoft.Agents.AI.CopilotStudio.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.CosmosNoSql/Microsoft.Agents.AI.CosmosNoSql.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Declarative/Microsoft.Agents.AI.Declarative.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.DevUI/Microsoft.Agents.AI.DevUI.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Foundry.Hosting/Microsoft.Agents.AI.Foundry.Hosting.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Foundry/Microsoft.Agents.AI.Foundry.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.GitHub.Copilot/Microsoft.Agents.AI.GitHub.Copilot.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Harness/Microsoft.Agents.AI.Harness.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Hosting.A2A.AspNetCore/Microsoft.Agents.AI.Hosting.A2A.AspNetCore.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Hosting.A2A/Microsoft.Agents.AI.Hosting.A2A.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Hosting.AGUI.AspNetCore/Microsoft.Agents.AI.Hosting.AGUI.AspNetCore.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Hosting.AspNetCore/Microsoft.Agents.AI.Hosting.AspNetCore.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Hosting.AzureStorage/Microsoft.Agents.AI.Hosting.AzureStorage.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Hosting.OpenAI/Microsoft.Agents.AI.Hosting.OpenAI.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Hosting/Microsoft.Agents.AI.Hosting.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Hyperlight/Microsoft.Agents.AI.Hyperlight.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.LocalCodeAct/Microsoft.Agents.AI.LocalCodeAct.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Mcp/Microsoft.Agents.AI.Mcp.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Mem0/Microsoft.Agents.AI.Mem0.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.OpenAI/Microsoft.Agents.AI.OpenAI.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Purview/Microsoft.Agents.AI.Purview.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Tools.Shell/Microsoft.Agents.AI.Tools.Shell.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Valkey/Microsoft.Agents.AI.Valkey.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Workflows.Declarative.Foundry/Microsoft.Agents.AI.Workflows.Declarative.Foundry.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Workflows.Declarative.Mcp/Microsoft.Agents.AI.Workflows.Declarative.Mcp.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Workflows.Declarative/Microsoft.Agents.AI.Workflows.Declarative.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Workflows.Generators/Microsoft.Agents.AI.Workflows.Generators.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI.Workflows/Microsoft.Agents.AI.Workflows.csproj" /> | ||
| <Project Path="../src/Microsoft.Agents.AI/Microsoft.Agents.AI.csproj" /> | ||
| </Folder> | ||
| <Folder Name="/Tests/"> | ||
| <Project Path="../tests/AgentConformance.IntegrationTests/AgentConformance.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/AnthropicChatCompletion.IntegrationTests/AnthropicChatCompletion.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Aspire.Hosting.AgentFramework.DevUI.UnitTests/Aspire.Hosting.AgentFramework.DevUI.UnitTests.csproj" /> | ||
| <Project Path="../tests/AzureAIAgentsPersistent.IntegrationTests/AzureAIAgentsPersistent.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/CopilotStudio.IntegrationTests/CopilotStudio.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Foundry.Hosting.IntegrationTests.TestContainer/Foundry.Hosting.IntegrationTests.TestContainer.csproj" /> | ||
| <Project Path="../tests/Foundry.Hosting.IntegrationTests/Foundry.Hosting.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Foundry.IntegrationTests/Foundry.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.A2A.UnitTests/Microsoft.Agents.AI.A2A.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Abstractions.UnitTests/Microsoft.Agents.AI.Abstractions.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.AgentHooks.UnitTests/Microsoft.Agents.AI.AgentHooks.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Anthropic.UnitTests/Microsoft.Agents.AI.Anthropic.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.AzureAI.Persistent.UnitTests/Microsoft.Agents.AI.AzureAI.Persistent.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.CosmosNoSql.UnitTests/Microsoft.Agents.AI.CosmosNoSql.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Declarative.UnitTests/Microsoft.Agents.AI.Declarative.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.DevUI.UnitTests/Microsoft.Agents.AI.DevUI.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.FeatureRegistry.UnitTests/Microsoft.Agents.AI.FeatureRegistry.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Foundry.Hosting.UnitTests/Microsoft.Agents.AI.Foundry.Hosting.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Foundry.UnitTests/Microsoft.Agents.AI.Foundry.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.GitHub.Copilot.IntegrationTests/Microsoft.Agents.AI.GitHub.Copilot.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.GitHub.Copilot.UnitTests/Microsoft.Agents.AI.GitHub.Copilot.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Harness.UnitTests/Microsoft.Agents.AI.Harness.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hosting.A2A.UnitTests/Microsoft.Agents.AI.Hosting.A2A.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hosting.AGUI.AspNetCore.IntegrationTests/Microsoft.Agents.AI.Hosting.AGUI.AspNetCore.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hosting.AGUI.AspNetCore.UnitTests/Microsoft.Agents.AI.Hosting.AGUI.AspNetCore.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hosting.AzureStorage.IntegrationTests/Microsoft.Agents.AI.Hosting.AzureStorage.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hosting.AzureStorage.UnitTests/Microsoft.Agents.AI.Hosting.AzureStorage.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hosting.OpenAI.IntegrationTests/Microsoft.Agents.AI.Hosting.OpenAI.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hosting.OpenAI.UnitTests/Microsoft.Agents.AI.Hosting.OpenAI.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hosting.UnitTests/Microsoft.Agents.AI.Hosting.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hyperlight.IntegrationTests/Microsoft.Agents.AI.Hyperlight.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Hyperlight.UnitTests/Microsoft.Agents.AI.Hyperlight.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.LocalCodeAct.UnitTests/Microsoft.Agents.AI.LocalCodeAct.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Mcp.UnitTests/Microsoft.Agents.AI.Mcp.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Mem0.IntegrationTests/Microsoft.Agents.AI.Mem0.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Mem0.UnitTests/Microsoft.Agents.AI.Mem0.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.OpenAI.UnitTests/Microsoft.Agents.AI.OpenAI.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Purview.UnitTests/Microsoft.Agents.AI.Purview.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Tools.Shell.IntegrationTests/Microsoft.Agents.AI.Tools.Shell.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Tools.Shell.UnitTests/Microsoft.Agents.AI.Tools.Shell.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.UnitTests/Microsoft.Agents.AI.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Valkey.UnitTests/Microsoft.Agents.AI.Valkey.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Workflows.Declarative.Mcp.UnitTests/Microsoft.Agents.AI.Workflows.Declarative.Mcp.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Workflows.Declarative.UnitTests/Microsoft.Agents.AI.Workflows.Declarative.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Workflows.Generators.UnitTests/Microsoft.Agents.AI.Workflows.Generators.UnitTests.csproj" /> | ||
| <Project Path="../tests/Microsoft.Agents.AI.Workflows.UnitTests/Microsoft.Agents.AI.Workflows.UnitTests.csproj" /> | ||
| <Project Path="../tests/OpenAIChatCompletion.IntegrationTests/OpenAIChatCompletion.IntegrationTests.csproj" /> | ||
| <Project Path="../tests/OpenAIResponse.IntegrationTests/OpenAIResponse.IntegrationTests.csproj" /> | ||
| </Folder> | ||
| </Solution> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder how our CI workflows will handle the new solution file. Will they discover it and build it in addition to the main solution file? or ignore it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the pipelines (ADO) have a variable defined
solution: 'dotnet/agent-framework-dotnet.slnx'that's used by all the dotnet tasks. So it'll use that solution, and ignore the new one I'm introducing.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On GHA side, this will need an update to stop looking into the new directory,
agent-framework/.github/workflows/dotnet-build-and-test.yml
Line 133 in b043790