Skip to content
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

Merge main to runtime async branch #77700

Merged
merged 194 commits into from
Mar 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
194 commits
Select commit Hold shift + click to select a range
b6b952a
wip
akhera99 Nov 26, 2024
5ed5ee7
wip
akhera99 Nov 27, 2024
f416e98
wip
akhera99 Nov 27, 2024
38fa91a
wip
akhera99 Nov 27, 2024
1f6a30f
wip
akhera99 Nov 29, 2024
6de1307
wip
akhera99 Nov 29, 2024
ed36e8f
wip
akhera99 Nov 29, 2024
9fd8f89
remove some commented out code
akhera99 Dec 3, 2024
36a8305
Merge branch 'main' into dev/ankitakhera/aai_doc_comments
akhera99 Jan 6, 2025
9c33d32
still cleaning up
akhera99 Jan 7, 2025
f2ec7f1
revert file
akhera99 Jan 7, 2025
0f8e4f3
clean up + option
akhera99 Jan 9, 2025
c096031
wip
akhera99 Jan 21, 2025
f46e751
dispose of disable of intellicode line completions
akhera99 Jan 27, 2025
0676f73
comments
akhera99 Jan 27, 2025
c028cc9
Merge branch 'main' into dev/ankitakhera/aai_doc_comments
akhera99 Jan 27, 2025
5ffb800
comments
akhera99 Jan 27, 2025
30c4aaf
add quota exceeded checks
akhera99 Jan 27, 2025
1f93a1f
fix tests
akhera99 Jan 28, 2025
8f64473
revert file
akhera99 Jan 28, 2025
2e2f6f0
remove unused optional params
akhera99 Jan 28, 2025
77a3f0c
last few fixes
akhera99 Jan 30, 2025
ae0ffe6
feedback
akhera99 Feb 4, 2025
ce330fe
fix tests
akhera99 Feb 4, 2025
ed65b3b
small fix
akhera99 Feb 4, 2025
73e3e8e
Merge branch 'main' into dev/ankitakhera/aai_doc_comments
akhera99 Feb 7, 2025
c756a4a
fix
akhera99 Feb 7, 2025
5fef68f
feedback
akhera99 Feb 7, 2025
dde66ab
feedback
akhera99 Feb 7, 2025
4e8f752
removed per comments
akhera99 Feb 11, 2025
b6688d6
remove unused usings
akhera99 Feb 11, 2025
ab35eeb
Fixer/Analyzer for implementing method
maryamariyan Feb 11, 2025
5decd9b
feedback
akhera99 Feb 12, 2025
daff7a1
feedback
akhera99 Feb 12, 2025
4dc63b8
move stuff around with new EA structure in roslyn
akhera99 Feb 13, 2025
96bd8e2
wip
akhera99 Feb 13, 2025
906aed9
feedback
akhera99 Feb 13, 2025
61acead
feedbacl
akhera99 Feb 15, 2025
ae609fa
fix
akhera99 Feb 15, 2025
423a6df
feedback
akhera99 Feb 15, 2025
7683098
feedback
akhera99 Feb 18, 2025
ec34831
feedback
akhera99 Feb 18, 2025
b6b8e8c
revert
akhera99 Feb 18, 2025
dbff122
remove null check
akhera99 Feb 18, 2025
41be07f
clean up
akhera99 Feb 18, 2025
a63b731
fix
akhera99 Feb 19, 2025
835c7ec
Merge remote-tracking branch 'origin/main' into dev/maryamariyan/dev1…
maryamariyan Feb 19, 2025
faea3a8
fix tests
akhera99 Feb 19, 2025
3851626
Merge remote-tracking branch 'origin/main' into dev/ankitakhera/aai_d…
maryamariyan Feb 19, 2025
b98a886
local ad ons
maryamariyan Feb 20, 2025
7b6d468
local ad ons
maryamariyan Feb 20, 2025
6d46c43
Merge branch 'dev/maryamariyan/dev17-implement-method-fixer' into dev…
maryamariyan Feb 20, 2025
2c62d7b
Add main bits for generating method implementation
maryamariyan Feb 20, 2025
c49fdcc
todo next
maryamariyan Feb 20, 2025
ee3b104
update APIs
maryamariyan Feb 20, 2025
bdcfbf4
trial 1
maryamariyan Feb 21, 2025
9db6634
Merge remote-tracking branch 'origin/main' into dev/maryamariyan/repl…
maryamariyan Feb 21, 2025
7431087
Fix compile after merge
maryamariyan Feb 21, 2025
e6153f0
temp1
maryamariyan Feb 22, 2025
b2c0584
temp2
maryamariyan Feb 22, 2025
e1e6fd3
Implement method, end-to-end for one-off code action
maryamariyan Feb 22, 2025
ba32b2b
corrections
maryamariyan Feb 22, 2025
e6c9ef2
cleanup
maryamariyan Feb 24, 2025
d595c6a
cleanup preliminary check
maryamariyan Feb 24, 2025
86e8bf9
Fix bug
maryamariyan Feb 24, 2025
d993617
cleanup and fixes
maryamariyan Feb 25, 2025
3360777
remove local changes for pr
maryamariyan Feb 25, 2025
de14ec1
correct spacing
maryamariyan Feb 25, 2025
56b16f9
cleanup
maryamariyan Feb 25, 2025
8c89fee
Add unit test - takes code block suggestion to replace with method body
maryamariyan Feb 25, 2025
5150992
Add test, support expression body clause later
maryamariyan Feb 25, 2025
47c913c
Change the FAR API call
maryamariyan Feb 25, 2025
b8f70c6
using `.Parent.FirstAncestorOrSelf`
maryamariyan Feb 25, 2025
b02349f
Improve wrapper implementation
maryamariyan Feb 25, 2025
ba4b470
Apply first round code review
maryamariyan Feb 26, 2025
688b3ea
Merge DualChangeAction into DocumentChangeAction
sharwell Feb 28, 2025
42b8763
Make IDE3000 not configurable
sharwell Feb 28, 2025
998a3d8
Simplify analyzer code and improve robustness
sharwell Feb 28, 2025
0aa9356
Simplifies fixer and applies most remaining feedback
maryamariyan Mar 1, 2025
f5116f2
Merge remote-tracking branch 'maryam/dev/maryamariyan/replicate-for-f…
maryamariyan Mar 1, 2025
1c9ba44
Fix compile related to DocumentChangeAction
maryamariyan Mar 1, 2025
2ed4649
Cleanup messaging
maryamariyan Mar 1, 2025
24f76b2
Add resources for messaging
maryamariyan Mar 1, 2025
744eb42
Adds a few basic tests
maryamariyan Mar 1, 2025
b077c3f
Merge remote-tracking branch 'origin/main' into dev/maryamariyan/repl…
maryamariyan Mar 2, 2025
70209d7
Undo most recent analyzer changes,
maryamariyan Mar 2, 2025
ffd9bce
Apply PR feedback
maryamariyan Mar 2, 2025
e8596bc
Tests renamed
maryamariyan Mar 2, 2025
1923930
Correct test setup
maryamariyan Mar 2, 2025
0cc13f3
Improves readability and removes unreachable code
maryamariyan Mar 3, 2025
fbcd111
Correct mistakes in tests
maryamariyan Mar 3, 2025
41a421f
Adds more unit tests
maryamariyan Mar 3, 2025
9222c16
Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-…
maryamariyan Mar 3, 2025
1452aa0
Fixes Analyzer tests
maryamariyan Mar 3, 2025
6fb4938
Makes sure original and replacement text are properly aligned
maryamariyan Mar 3, 2025
c270a76
Apply partial PR feedback
maryamariyan Mar 3, 2025
061d448
cleanup
maryamariyan Mar 3, 2025
faa4722
Applies feedback to change API surface
maryamariyan Mar 4, 2025
f48bf92
All tests pass
maryamariyan Mar 4, 2025
af8ca36
tests are actually failing
maryamariyan Mar 4, 2025
770fc86
Fix Quota bug and show failing tests
maryamariyan Mar 4, 2025
6d20484
Update tests for error conditions where diagnostics are not corrected
sharwell Mar 4, 2025
2b7487a
undo IsImplementNotImplementedExceptionEnabledAsync change
maryamariyan Mar 5, 2025
8b53fe0
Fixes remaining tests
maryamariyan Mar 5, 2025
dbc3919
cleanup
maryamariyan Mar 5, 2025
3e3bd88
Add back referencedSymbols to API call to help with perf
maryamariyan Mar 5, 2025
16d2481
Gracefully comment when result is unexpected
maryamariyan Mar 5, 2025
3b0ba9a
Remove unused resource
maryamariyan Mar 5, 2025
b20b2cb
Simplify error messages
maryamariyan Mar 5, 2025
384ce72
Cleanup tests
maryamariyan Mar 5, 2025
79bebb1
Add missing entry for IDE3000
maryamariyan Mar 5, 2025
517d977
Add Missing Help Link
maryamariyan Mar 5, 2025
8aaa595
mid stage
maryamariyan Mar 6, 2025
9eb2e7c
Removes QuotaExceeds property, received as message
maryamariyan Mar 6, 2025
d088c36
Update signature
maryamariyan Mar 6, 2025
7127ff7
Merge remote-tracking branch 'origin/main' into dev/maryamariyan/repl…
maryamariyan Mar 6, 2025
2f934a6
Fix missed out warning
maryamariyan Mar 6, 2025
4eecdc6
Fix test correctness issue picked up by CI
maryamariyan Mar 6, 2025
44a65e1
Add logging
maryamariyan Mar 6, 2025
960a9cd
Apply PR feedback
maryamariyan Mar 7, 2025
f86f371
Fix run code analysis on solution not reporting results
sharwell Mar 10, 2025
fb0debe
Use HangMitigatingTimeout for cases where operations do not complete …
sharwell Mar 11, 2025
e809937
some PR feedback
maryamariyan Mar 11, 2025
03c8917
spacing
maryamariyan Mar 11, 2025
cab1e65
Move test
maryamariyan Mar 11, 2025
3af16d7
Apply most remaining feedback
maryamariyan Mar 11, 2025
141c83d
Applies feedback
maryamariyan Mar 11, 2025
6f0dc5e
Add runtime async to official build (#77537)
333fred Mar 11, 2025
8012d9c
Signature now strictly uses MemberDeclarationSyntax
maryamariyan Mar 11, 2025
6a6e924
Update message for analyzer referencing newer compiler than host (#77…
RikkiGibson Mar 12, 2025
27405d2
Updates tests
maryamariyan Mar 12, 2025
37efb07
field implementation is not supported as method or property
maryamariyan Mar 12, 2025
336b591
Fix NFW due to invoking Workspace.RaiseEventForHandlers in the CA pro…
ToddGrun Mar 12, 2025
0c41f80
Implement field null resilience analysis (#77127)
RikkiGibson Mar 12, 2025
6acccaf
Fix incremental generator in deterministic key file (#77553)
jaredpar Mar 12, 2025
4e68dca
Apply PR feedback
maryamariyan Mar 12, 2025
1a2fa42
Disable downloading the runtime packages during restore and instead e…
ToddGrun Mar 12, 2025
e65c6c8
Fix run code analysis on solution not reporting results (#77501)
sharwell Mar 12, 2025
276ad7f
Simplifies assumptions - Only trigger fixer when service available
maryamariyan Mar 12, 2025
b59cffa
nit spacing
maryamariyan Mar 12, 2025
9d3c56e
Fix preview window for 'implement NotImplementedException'
CyrusNajmabadi Mar 13, 2025
6dd05a7
Simmplify
CyrusNajmabadi Mar 13, 2025
15d1c1c
Remove uneeded helper
CyrusNajmabadi Mar 13, 2025
5b20ad7
Fix Stack Trace Explorer for additional documents (#77517)
ryzngard Mar 13, 2025
2c39ea7
Adds :bulb: `Implement Using Copilot` for `NotImplementedException` (…
CyrusNajmabadi Mar 13, 2025
557fa80
Merge branch 'main' into implementPreview
CyrusNajmabadi Mar 13, 2025
adc21be
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Mar 13, 2025
9ad37db
Update PublishData.json (#77589)
jjonescz Mar 13, 2025
d0ecb50
Fix preview window for 'implement NotImplementedException' (#77579)
CyrusNajmabadi Mar 13, 2025
07d5af7
Update main-merge.yml to not run on forks
arunchndr Mar 13, 2025
debe306
Fix typo (#77595)
kauwai Mar 13, 2025
bc377e0
Update main-merge.yml to not run on forks (#77594)
arunchndr Mar 13, 2025
c02ed62
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Mar 14, 2025
3ed7fbf
Filter down the list of files we need to examing when looking for a :…
CyrusNajmabadi Mar 14, 2025
a0ff8bd
Move feature-oriented helpers to appropriate location
CyrusNajmabadi Mar 14, 2025
9a120ba
Filter down the list of files we need to examing when looking for a `…
CyrusNajmabadi Mar 14, 2025
3e2d972
Move feature-oriented helpers to appropriate location (#77611)
CyrusNajmabadi Mar 14, 2025
be7fcea
Ensure we don't touch Solution.Workspace if we don't have to
jasonmalinowski Mar 13, 2025
64137a0
Ensure we don't touch Solution.Workspace if we don't have to (#77581)
jasonmalinowski Mar 15, 2025
2e44cf2
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Mar 17, 2025
878db64
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Mar 17, 2025
3e4345f
Correct how we pick up options for `ICopilotOptionsService` (#77620)
maryamariyan Mar 17, 2025
4fb855f
Update BuildActionTelemetryTable tool
maryamariyan Mar 17, 2025
85d110d
Add feature flag controlling Copilot prompt in Semantic Search (#77562)
tmat Mar 17, 2025
806cb27
Fix BuildActionTelemetryTable project
JoeRobich Mar 17, 2025
3eceae1
Update CodeActionDescriptionsMap.
JoeRobich Mar 17, 2025
ee84187
Fix typo
JoeRobich Mar 17, 2025
1529f23
Remove dead code, use generated regex, use filescoped namespace.
JoeRobich Mar 17, 2025
f296737
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Mar 18, 2025
8d9e041
On-the-fly-docs Pass along additional context (#77510)
akhera99 Mar 18, 2025
a969b14
Change vs deps flow (#77651)
jjonescz Mar 18, 2025
d5fe6f0
Fix generation of attribute with array constant
dibarbet Jan 22, 2025
6f384ca
Make ISemanticSearchCopilotUIProvider import lazy to avoid loading VS…
tmat Mar 18, 2025
2de5624
Fix watch window completion window upon manual completion invocation …
ToddGrun Mar 18, 2025
423e3da
Fix generation of attribute with array constant (#77661)
dibarbet Mar 18, 2025
76de433
Generate Documentation - Bug Fixes (#77641)
akhera99 Mar 18, 2025
06a1104
Ensure we get telemetry signal for `Implement with Copilot` Code Fix …
JoeRobich Mar 18, 2025
29d0a35
Fix reflection
davidwengier Mar 19, 2025
121ba61
Fix reflection use in integration tests (#77669)
davidwengier Mar 19, 2025
8f92e67
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Mar 19, 2025
447d6d1
Fix typo (#77678)
BillWagner Mar 19, 2025
b19eb22
Fix SkipApplyOptimizationData parameter (#77677)
jjonescz Mar 19, 2025
b07f304
Support textDocument/semanticTokens/full
PaddiM8 Mar 18, 2025
259b4d0
Support textDocument/semanticTokens/full (#77665)
dibarbet Mar 19, 2025
b1c7ddd
Cleanup and make semantic token processing and testing code more cons…
CyrusNajmabadi Mar 19, 2025
0d48864
Fix test
CyrusNajmabadi Mar 19, 2025
a4179e0
Add CI validation of Semantic Search API lists (#77535)
tmat Mar 19, 2025
77a9c20
raw strings
CyrusNajmabadi Mar 19, 2025
17368bc
Cleanup and make semantic token processing and testing code more cons…
CyrusNajmabadi Mar 19, 2025
38cced1
Fix bug where exact path match would throw for additional files (#77583)
ryzngard Mar 19, 2025
6a92c2e
Update CSharpCopilotCodeAnalysisService.cs (#77691)
akhera99 Mar 20, 2025
57b748d
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Mar 20, 2025
84a299c
Merge remote-tracking branch 'upstream/main' into merge-main
333fred Mar 20, 2025
f35162b
Semantic search info
333fred Mar 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions .github/workflows/main-merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ on:
schedule:
# Create a merge every 3 hours (works only for merges from `main`, others would need a `push` trigger).
- cron: '0 */3 * * *'
push:
branches:
- main-vs-deps
workflow_dispatch:
inputs:
configuration_file_branch:
Expand All @@ -17,15 +20,9 @@ permissions:
pull-requests: write

jobs:
# The config does not support multiple flows from the same source branch,
# so we need to run separately for each duplicate source branch (https://github.com/dotnet/arcade/issues/15586).
merge:
if: github.repository == 'dotnet/roslyn'
uses: dotnet/arcade/.github/workflows/inter-branch-merge-base.yml@main
with:
configuration_file_path: 'eng/config/branch-merge.jsonc'
configuration_file_branch: ${{ inputs.configuration_file_branch || 'main' }}
merge-2:
uses: dotnet/arcade/.github/workflows/inter-branch-merge-base.yml@main
with:
configuration_file_path: 'eng/config/branch-merge-2.jsonc'
configuration_file_branch: ${{ inputs.configuration_file_branch || 'main' }}
5 changes: 3 additions & 2 deletions azure-pipelines-official.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ trigger:
- release/dev17.*
- release/dev18.*
- features/lsp_tools_host
- features/runtime-async
exclude:
- release/dev17.0
pr: none
Expand Down Expand Up @@ -163,7 +164,7 @@ extends:

- output: pipelineArtifact
displayName: 'Publish Ngen Logs'
condition: succeeded()
condition: and(succeeded(), ${{ not(parameters.SkipApplyOptimizationData) }})
targetPath: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)\ngen'
artifactName: 'NGen Logs'
publishLocation: Container
Expand Down Expand Up @@ -304,7 +305,7 @@ extends:
-configuration $(BuildConfiguration)
-officialBuildId $(Build.BuildNumber)
-officialSkipTests $(SkipTests)
-officialSkipApplyOptimizationData $(SkipApplyOptimizationData)
-officialSkipApplyOptimizationData ${{ parameters.SkipApplyOptimizationData }}
-officialSourceBranchName $(SourceBranchName)
-officialIbcDrop $(IbcDrop)
-officialVisualStudioDropAccessToken $(_DevDivDropAccessToken)
Expand Down
4 changes: 2 additions & 2 deletions azure-pipelines-pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ extends:

- output: pipelineArtifact
displayName: 'Publish Ngen Logs'
condition: succeeded()
condition: and(succeeded(), ${{ not(parameters.SkipApplyOptimizationData) }})
targetPath: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)\ngen'
artifactName: 'NGen Logs'
publishLocation: Container
Expand Down Expand Up @@ -242,7 +242,7 @@ extends:
-configuration $(BuildConfiguration)
-officialBuildId $(OriginalBuildNumber)
-officialSkipTests $(SkipTests)
-officialSkipApplyOptimizationData $(SkipApplyOptimizationData)
-officialSkipApplyOptimizationData ${{ parameters.SkipApplyOptimizationData }}
-officialSourceBranchName $(SourceBranchName)
-officialIbcDrop $(IbcDrop)
-officialVisualStudioDropAccessToken $(_DevDivDropAccessToken)
Expand Down
2 changes: 1 addition & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,7 @@ stages:
- powershell: eng/build.ps1 -configuration Release -prepareMachine -ci -restore -binaryLogName Restore.binlog
displayName: Restore

- powershell: eng/build.ps1 -configuration Release -prepareMachine -ci -build -pack -publish -sign -binaryLogName Build.binlog /p:DotnetPublishUsingPipelines=true
- powershell: eng/build.ps1 -configuration Release -prepareMachine -ci -build -pack -publish -sign -binaryLogName Build.binlog /p:DotnetPublishUsingPipelines=true /p:ContinuousIntegrationBuildCorrectness=true
displayName: Build

# While this task is not executed in the official build, this serves as a PR check for whether symbol exclusions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,4 +183,4 @@ of the value is as follows:
5. `omit_if_default`. Redundant modifiers are disallowed. For example a private class member will be disallowed from
using `private`, and a public interface member will be disallowed from using `public`. This is the option to use
if you feel that restating the accessibility when it matches what the language chooses by default is redundant and
should be disalloed.
should be disallowed.
23 changes: 23 additions & 0 deletions docs/features/field-nullability.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# `field` keyword nullable analysis implementation

See also [specification](https://github.com/dotnet/csharplang/blob/94205582d0f5c73e5765cb5888311c2f14890b95/proposals/field-keyword.md#nullability).

## Symbol API behavior

In order to decide the NullableAnnotation of a SynthesizedBackingFieldSymbol we need to:
1. Decide if the getter associated with this field requires a null-resilience analysis.
2. If it *doesn't* require such an analysis, then the nullable annotation of the property is used.
3. If it *does*, then a binding+nullable analysis of the getter must be performed to decide the nullability of the backing field.

There are some significant problems with directly exposing the nullable annotation on this field symbol.
1. Cost. It's not clear if it's OK for reading the NullableAnnotation off a field to cause us to bind and nullable analyze something. If some tooling is traversing member symbols for indexing or some such, it may be a problem if that causes unexpected method binding to occur where it didn't before.
2. Stack cycles. In the process of binding+flow analyzing, we may want to access the nullable annotation of the field. If we are *already* in the process of determining that field's nullable annotation, then we would need to "short-circuit" and return some "placeholder" value. We would need to take care to isolate the "internal" implementation from any public implementation, in order to ensure that a consistent answer is given to users of the public API.
...

It's tempting to avoid exposing the inferred nullable annotation in the public symbol model. This might be problematic for automated tooling which is trying to reason about nullable initialization. For example, if a diagnostic suppressor wants to suppress `CS8618` nullable initialization warnings under certain conditions. How should it decide whether/why a property like `string Prop => field ??= GetValue();` requires initialization in constructors? It's unclear to me whether this matters.

In the interests of *simplicity* (first make it correct, then make it fast), I'd like to move forward by *not* exposing the inferred annotation in the symbol model. Rather, we introduce a new internal API `SynthesizedBackingFieldSymbol.GetInferredNullableAnnotation()`, which `NullableWalker` will use to decide initial nullable state, report warnings, and so on. The implementation simply does an on-demand binding of the get accessor, then nullable analyzes and decides the nullable annotation. Care needs to be taken to avoid using this API in a re-entrant manner--so, the `NullableWalker` passes which are used to infer the nullability annotation must avoid calling it.

This means that the ordinary `FieldSymbol.TypeWithAnnotations` API would not expose the inferred nullability, and neither would `IFieldSymbol.Type` or `IFieldSymbol.NullableAnnotation`. Instead the field's nullability would always match the property's. This is something I would actually like to fix, maybe before merging to main. It feels like Quick Info, etc., should expose the inferred nullability through the ordinary APIs.

Once we get a handle on the behaviors of the getter null resilience, we can start talking about how to reduce cost associated with it. For example, we could try to reduce redundant binding, by forcing nullable annotations to be inferred prior to analyzing certain methods. Before processing a constructor in `MethodCompiler`, for example, maybe we would identify the getters that need to be compiled for purposes of inference, and force those to compile first.
20 changes: 10 additions & 10 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="10.0.616001">
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="10.0.616902">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<Sha>8f9f6fa14523b2f2475ea0a86be1cf60b5de5336</Sha>
<Sha>b99d40df247e865fb0a9de15bdcfdfa7f550a55e</Sha>
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
</Dependency>
<Dependency Name="System.CommandLine" Version="2.0.0-beta4.24528.1">
Expand Down Expand Up @@ -122,19 +122,19 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.25111.5">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.25164.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>5da211e1c42254cb35e7ef3d5a8428fb24853169</Sha>
<Sha>5ba9ca776c1d0bb72b2791591e54cf51fc52dfee</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.25111.5">
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.25164.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>5da211e1c42254cb35e7ef3d5a8428fb24853169</Sha>
<Sha>5ba9ca776c1d0bb72b2791591e54cf51fc52dfee</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.25111.5">
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.25164.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>5da211e1c42254cb35e7ef3d5a8428fb24853169</Sha>
<Sha>5ba9ca776c1d0bb72b2791591e54cf51fc52dfee</Sha>
</Dependency>
<Dependency Name="Microsoft.DiaSymReader" Version="2.0.0">
<Uri>https://github.com/dotnet/symreader</Uri>
Expand All @@ -150,9 +150,9 @@
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>5d10d428050c0d6afef30a072c4ae68776621877</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="9.0.0-beta.25111.5">
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="9.0.0-beta.25164.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>5da211e1c42254cb35e7ef3d5a8428fb24853169</Sha>
<Sha>5ba9ca776c1d0bb72b2791591e54cf51fc52dfee</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0-preview.23468.1">
<Uri>https://github.com/dotnet/roslyn-analyzers</Uri>
Expand Down
2 changes: 1 addition & 1 deletion eng/common/core-templates/steps/generate-sbom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ steps:
PackageName: ${{ parameters.packageName }}
BuildDropPath: ${{ parameters.buildDropPath }}
PackageVersion: ${{ parameters.packageVersion }}
ManifestDirPath: ${{ parameters.manifestDirPath }}
ManifestDirPath: ${{ parameters.manifestDirPath }}/$(ARTIFACT_NAME)
${{ if ne(parameters.IgnoreDirectories, '') }}:
AdditionalComponentDetectorArgs: '--IgnoreDirectories ${{ parameters.IgnoreDirectories }}'

Expand Down
20 changes: 14 additions & 6 deletions eng/common/generate-sbom-prep.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,26 @@ Param(

. $PSScriptRoot\pipeline-logging-functions.ps1

# Normally - we'd listen to the manifest path given, but 1ES templates will overwrite if this level gets uploaded directly
# with their own overwriting ours. So we create it as a sub directory of the requested manifest path.
$ArtifactName = "${env:SYSTEM_STAGENAME}_${env:AGENT_JOBNAME}_SBOM"
$SafeArtifactName = $ArtifactName -replace '["/:<>\\|?@*"() ]', '_'
$SbomGenerationDir = Join-Path $ManifestDirPath $SafeArtifactName

Write-Host "Artifact name before : $ArtifactName"
Write-Host "Artifact name after : $SafeArtifactName"

Write-Host "Creating dir $ManifestDirPath"

# create directory for sbom manifest to be placed
if (!(Test-Path -path $ManifestDirPath))
if (!(Test-Path -path $SbomGenerationDir))
{
New-Item -ItemType Directory -path $ManifestDirPath
Write-Host "Successfully created directory $ManifestDirPath"
New-Item -ItemType Directory -path $SbomGenerationDir
Write-Host "Successfully created directory $SbomGenerationDir"
}
else{
Write-PipelineTelemetryError -category 'Build' "Unable to create sbom folder."
}

Write-Host "Updating artifact name"
$artifact_name = "${env:SYSTEM_STAGENAME}_${env:AGENT_JOBNAME}_SBOM" -replace '["/:<>\\|?@*"() ]', '_'
Write-Host "Artifact name $artifact_name"
Write-Host "##vso[task.setvariable variable=ARTIFACT_NAME]$artifact_name"
Write-Host "##vso[task.setvariable variable=ARTIFACT_NAME]$SafeArtifactName"
17 changes: 11 additions & 6 deletions eng/common/generate-sbom-prep.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,24 @@ done
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
. $scriptroot/pipeline-logging-functions.sh


# replace all special characters with _, some builds use special characters like : in Agent.Jobname, that is not a permissible name while uploading artifacts.
artifact_name=$SYSTEM_STAGENAME"_"$AGENT_JOBNAME"_SBOM"
safe_artifact_name="${artifact_name//["/:<>\\|?@*$" ]/_}"
manifest_dir=$1

if [ ! -d "$manifest_dir" ] ; then
mkdir -p "$manifest_dir"
echo "Sbom directory created." $manifest_dir
# Normally - we'd listen to the manifest path given, but 1ES templates will overwrite if this level gets uploaded directly
# with their own overwriting ours. So we create it as a sub directory of the requested manifest path.
sbom_generation_dir="$manifest_dir/$safe_artifact_name"

if [ ! -d "$sbom_generation_dir" ] ; then
mkdir -p "$sbom_generation_dir"
echo "Sbom directory created." $sbom_generation_dir
else
Write-PipelineTelemetryError -category 'Build' "Unable to create sbom folder."
fi

artifact_name=$SYSTEM_STAGENAME"_"$AGENT_JOBNAME"_SBOM"
echo "Artifact name before : "$artifact_name
# replace all special characters with _, some builds use special characters like : in Agent.Jobname, that is not a permissible name while uploading artifacts.
safe_artifact_name="${artifact_name//["/:<>\\|?@*$" ]/_}"
echo "Artifact name after : "$safe_artifact_name
export ARTIFACT_NAME=$safe_artifact_name
echo "##vso[task.setvariable variable=ARTIFACT_NAME]$safe_artifact_name"
Expand Down
1 change: 1 addition & 0 deletions eng/common/templates-official/job/job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
parameters:
PackageVersion: ${{ parameters.packageVersion }}
BuildDropPath: ${{ parameters.buildDropPath }}
ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom
publishArtifacts: false

# publish artifacts
Expand Down
4 changes: 2 additions & 2 deletions eng/common/tools.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
[bool]$useInstalledDotNetCli = if (Test-Path variable:useInstalledDotNetCli) { $useInstalledDotNetCli } else { $true }

# Enable repos to use a particular version of the on-line dotnet-install scripts.
# default URL: https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.ps1
# default URL: https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.ps1
[string]$dotnetInstallScriptVersion = if (Test-Path variable:dotnetInstallScriptVersion) { $dotnetInstallScriptVersion } else { 'v1' }

# True to use global NuGet cache instead of restoring packages to repository-local directory.
Expand Down Expand Up @@ -262,7 +262,7 @@ function GetDotNetInstallScript([string] $dotnetRoot) {
if (!(Test-Path $installScript)) {
Create-Directory $dotnetRoot
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
$uri = "https://dotnet.microsoft.com/download/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1"
$uri = "https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1"

Retry({
Write-Host "GET $uri"
Expand Down
4 changes: 2 additions & 2 deletions eng/common/tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ warn_as_error=${warn_as_error:-true}
use_installed_dotnet_cli=${use_installed_dotnet_cli:-true}

# Enable repos to use a particular version of the on-line dotnet-install scripts.
# default URL: https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh
# default URL: https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.sh
dotnetInstallScriptVersion=${dotnetInstallScriptVersion:-'v1'}

# True to use global NuGet cache instead of restoring packages to repository-local directory.
Expand Down Expand Up @@ -295,7 +295,7 @@ function with_retries {
function GetDotNetInstallScript {
local root=$1
local install_script="$root/dotnet-install.sh"
local install_script_url="https://dotnet.microsoft.com/download/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh"
local install_script_url="https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh"

if [[ ! -a "$install_script" ]]; then
mkdir -p "$root"
Expand Down
2 changes: 1 addition & 1 deletion eng/config/PublishData.json
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@
"vsBranch": "feature/d18initial",
"vsMajorVersion": 18,
"insertionTitlePrefix": "[d18.0 P1]",
"insertionCreateDraftPR": true
"insertionCreateDraftPR": false
},
"main": {
"nugetKind": [
Expand Down
10 changes: 0 additions & 10 deletions eng/config/branch-merge-2.jsonc

This file was deleted.

7 changes: 6 additions & 1 deletion eng/config/branch-merge.jsonc
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
// Used by .github/workflows/main-merge.yml
{
"merge-flow-configurations": {
// Merge any main changes to release/dev18.0.
// Merge any main changes to main-vs-deps.
"main": {
"MergeToBranch": "main-vs-deps",
"ExtraSwitches": "-QuietComments"
},
// Merge any main-vs-deps changes to release/dev18.0.
"main-vs-deps": {
"MergeToBranch": "release/dev18.0",
"ExtraSwitches": "-QuietComments"
}
Expand Down
8 changes: 4 additions & 4 deletions global.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
{
"sdk": {
"version": "9.0.103",
"version": "9.0.104",
"allowPrerelease": false,
"rollForward": "patch"
},
"tools": {
"dotnet": "9.0.103",
"dotnet": "9.0.104",
"vs": {
"version": "17.8.0"
}
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25111.5",
"Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.25111.5",
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25164.2",
"Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.25164.2",
"Microsoft.Build.Traversal": "3.4.0"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -431,4 +431,7 @@
<data name="Use_unbound_generic_type" xml:space="preserve">
<value>Use unbound generic type</value>
</data>
<data name="Implement_with_Copilot" xml:space="preserve">
<value>Implement with Copilot</value>
</data>
</root>

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading