-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Rewrite Copilot instructions and move to AGENTS.md #53630
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
0bc6693
5c368da
747216e
c66fd64
b9bdec0
16c4bdf
9cac85c
4e349fe
dac83ea
da4f0f4
2b9f2ff
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,56 @@ | ||||||
| # dotnet/sdk Repo Overview | ||||||
|
|
||||||
| This is the .NET SDK repo. | ||||||
| It contains the `dotnet` CLI, MSBuild tasks/targets, project system SDKs, template engine, workload management, and related tooling. | ||||||
| This repo uses https://github.com/dotnet/arcade for build, test, and pipeline infrastructure. | ||||||
|
Member
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. nit: technically I think 'repo' refers to the digital source storage mechanism, aka 'https://github.com/dotnet/sdk' but this source code folder is not a 'repo' if it is cloned. I don't think this is the best terminology. We could be more concise as well using bullet points instead of full sentences with 'this repo' 'the sdk' |
||||||
|
|
||||||
| ## Local Development Workflow | ||||||
|
|
||||||
| Use the `.dotnet/dotnet` executable for `dotnet` CLI commands. | ||||||
| It is automatically acquired during the build process. | ||||||
| Do not modify the SDK version specified in `global.json`. | ||||||
|
|
||||||
| ### Build | ||||||
|
|
||||||
| - Linux/macOS: `./build.sh` | ||||||
| - Windows: `build.cmd` | ||||||
|
|
||||||
| Useful flags: | ||||||
|
|
||||||
| - `-bl` - Generate binlog | ||||||
| - `-v <level>` - verbosity: q[uiet], m[inimal], n[ormal], d[etailed], diag[nostic] | ||||||
| - `/p:SomeProperty=value` - Set MSBuild property | ||||||
|
|
||||||
| The newly built .NET CLI is output to `artifacts/bin/redist/Debug/dotnet/dotnet`. | ||||||
| It can be used to sanity check local changes in a temp directory. | ||||||
|
|
||||||
| ### Test | ||||||
|
|
||||||
| Do not run the full test suite locally, it takes hours. | ||||||
| Instead, run only the tests relevant to your changes. | ||||||
|
Member
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.
Suggested change
Member
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. 'your' confuses context with 3rd person vs first person |
||||||
|
|
||||||
| After building, run individual test projects: | ||||||
|
|
||||||
| ```bash | ||||||
| # Run all tests in a specific test project | ||||||
| ./.dotnet/dotnet test test/<ProjectName>.Tests | ||||||
|
|
||||||
|
Member
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. should we remove the mstest vs xunit bifurcation guide? |
||||||
| # Run a single test by name | ||||||
| ./.dotnet/dotnet test test/<ProjectName>.Tests --filter "FullyQualifiedName~TestMethodName" | ||||||
|
|
||||||
| # Run a single test by class | ||||||
| ./.dotnet/dotnet test test/<ProjectName>.Tests --filter "ClassName=Microsoft.DotNet.Cli.SomeTests" | ||||||
|
lbussell marked this conversation as resolved.
|
||||||
| ``` | ||||||
|
|
||||||
|
Member
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. Do you think this is helpful and we should keep this? |
||||||
| Test projects live in `test/<ProjectName>.Tests` and `test/<ProjectName>.IntegrationTests` (with one exception: `NetAnalyzers` tests live in `src/Microsoft.CodeAnalysis.NetAnalyzers/tests`). | ||||||
|
|
||||||
| ## Project Layout | ||||||
|
|
||||||
| | Feature | Location | | ||||||
| |---|---| | ||||||
| | `dotnet` CLI (entry point & commands) | `src/Cli/` | | ||||||
| | Template content | `template_feed/` | | ||||||
| | Build infrastructure | `eng/` | | ||||||
| | Arcade infrastructure (do not edit) | `eng/common` | | ||||||
|
Member
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. Does the do not edit warning here make agents worse at modifying props / targets for codeflow ?
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 opened dotnet/arcade#16757 which is a more general solution to keeping agents from messing up |
||||||
| | Distributed test orchestration via Helix | `test/UnitTests.proj` | | ||||||
| | Developer documentation | `documentation/` | | ||||||
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.
nit:
Does the agent need to be told this is the sdk repo? Did that help in any way?