Skip to content

Commit 66d78cc

Browse files
[automated] Merge branch 'main' => 'prerelease' (#8750)
2 parents 6542196 + dfc4dcd commit 66d78cc

Some content is hidden

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

47 files changed

+514
-138
lines changed

.github/workflows/branch-snap.yml

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
name: Branch snap
22
on:
3-
workflow_dispatch
3+
workflow_dispatch:
4+
inputs:
5+
releaseCandidate:
6+
description: 'Is this a release candidate snap from main? (Will increment main version to be higher than next stable release)'
7+
required: false
8+
default: 'false'
9+
type: boolean
410

511
permissions:
612
contents: write
@@ -13,23 +19,55 @@ jobs:
1319
configuration_file_path: '.config/snap-flow.json'
1420

1521
bump-main-version:
22+
needs: check-script
1623
if: github.ref == 'refs/heads/main'
1724
runs-on: ubuntu-latest
1825
steps:
1926
- name: Check out
20-
uses: actions/checkout@v2
27+
uses: actions/checkout@v4
2128
- name: Install NodeJS
2229
uses: actions/setup-node@v4
2330
with:
2431
node-version: '18.x'
2532
- name: Install dependencies
2633
run: npm ci
2734
- name: Update version.json
28-
run: npx gulp incrementVersion
35+
run: |
36+
if [ "${{ github.event.inputs.releaseCandidate }}" = "true" ]; then
37+
npx gulp incrementVersion --releaseCandidate=true
38+
else
39+
npx gulp incrementVersion
40+
fi
2941
- name: Create version update PR
3042
uses: peter-evans/create-pull-request@v4
3143
with:
3244
token: ${{ secrets.GITHUB_TOKEN }}
3345
commit-message: Update main version
3446
title: '[automated] Update main version'
3547
branch: merge/update-main-version
48+
49+
update-release-version:
50+
needs: check-script
51+
if: github.ref == 'refs/heads/prerelease'
52+
runs-on: ubuntu-latest
53+
steps:
54+
- name: Check out merge branch
55+
uses: actions/checkout@v4
56+
with:
57+
ref: merge/prerelease-to-release
58+
fetch-depth: 0
59+
- name: Install NodeJS
60+
uses: actions/setup-node@v4
61+
with:
62+
node-version: '18.x'
63+
- name: Install dependencies
64+
run: npm ci
65+
- name: Update version.json for release
66+
run: npx gulp updateVersionForStableRelease
67+
- name: Create PR with version update
68+
uses: peter-evans/create-pull-request@v4
69+
with:
70+
token: ${{ secrets.GITHUB_TOKEN }}
71+
commit-message: Update version for stable release
72+
branch: merge/prerelease-to-release
73+
base: release

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,39 @@
33
- Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951)
44
- Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876)
55

6+
# 2.97.x
7+
* Add integration test for restore of file-based programs (PR: [#8470](https://github.com/dotnet/vscode-csharp/pull/8470))
8+
* Update setting documentation for on auto insert (PR: [#8742](https://github.com/dotnet/vscode-csharp/pull/8742))
9+
* Bump xamlTools to fix "Color" auto-completion and code navigation (PR: [#8740](https://github.com/dotnet/vscode-csharp/pull/8740))
10+
* Update VM image to macOS-15 in pipeline (PR: [#8741](https://github.com/dotnet/vscode-csharp/pull/8741))
11+
* Add instructions for creating private feedback (PR: [#8732](https://github.com/dotnet/vscode-csharp/pull/8732))
12+
* Implement tiered versioning scheme for branch snapping workflow (PR: [#8728](https://github.com/dotnet/vscode-csharp/pull/8728))
13+
* Bump xamlTools to 18.3.11128.18 (PR: [#8669](https://github.com/dotnet/vscode-csharp/pull/8740))
14+
* Update target framework in Razor integration test (PR: [#8729](https://github.com/dotnet/vscode-csharp/pull/8729))
15+
* Use global.json with rollforward instead of pipeline versions (PR: [#8722](https://github.com/dotnet/vscode-csharp/pull/8722))
16+
* Update RoslynCopilot url to 18.3.72-alpha (PR: [#8726](https://github.com/dotnet/vscode-csharp/pull/8726))
17+
* Add group ids to configuration groups (PR: [#8720](https://github.com/dotnet/vscode-csharp/pull/8720))
18+
* [WIP] Update job execution order for bump-main-version (PR: [#8717](https://github.com/dotnet/vscode-csharp/pull/8717))
19+
* Update CHANGELOG for version 2.97.x (PR: [#8716](https://github.com/dotnet/vscode-csharp/pull/8716))
20+
* Bump Roslyn to 5.3.0-2.25553.6 (PR: [#8743](https://github.com/dotnet/vscode-csharp/pull/8743))
21+
* Support LSP includeDeclaration field in find all references (PR: [#80965](https://github.com/dotnet/roslyn/pull/80965))
22+
* Add support for lineFoldingOnly folding ranges (PR: [#80955](https://github.com/dotnet/roslyn/pull/80955))
23+
* Expand `#error version` output to include compiler assembly path and use full commit SHA everywhere (PR: [#80894](https://github.com/dotnet/roslyn/pull/80894))
24+
* Fix culture-sensitive StringBuilder.Append and ToString calls across codebase and add banned symbols (PR: [#80800](https://github.com/dotnet/roslyn/pull/80800))
25+
* Add support for autocompleting raw string quotes (PR: [#80871](https://github.com/dotnet/roslyn/pull/80871))
26+
* Don't add parenthesis when committing type with accessible nested type using dot (PR: [#80846](https://github.com/dotnet/roslyn/pull/80846))
27+
* Completion for `#:project` paths in file based programs (PR: [#80844](https://github.com/dotnet/roslyn/pull/80844))
28+
* Allow semantic tokens in Razor to be better behaved (PR: [#80815](https://github.com/dotnet/roslyn/pull/80815))
29+
* When searching for the original file from a PDB, only allow absolute paths (PR: [#80804](https://github.com/dotnet/roslyn/pull/80804))
30+
* Bump Razor to 10.0.0-preview.25552.2 (PR: [#8734](https://github.com/dotnet/vscode-csharp/pull/8734))
31+
* Add CodeAction to simplify fully-qualified component tags (PR: [#12379](https://github.com/dotnet/razor/pull/12379))
32+
* Fix component and component attribute rename in cohosting (PR: [#12374](https://github.com/dotnet/razor/pull/12374))
33+
* Fix formatting of mixed indentation in VS Code (PR: [#12418](https://github.com/dotnet/razor/pull/12418))
34+
* Allow cohosting quick info to show html tag information even when on a taghelper or component tag. (PR: [#12415](https://github.com/dotnet/razor/pull/12415))
35+
* Fix(ish) formatting of RenderFragments (C# templates) (PR: [#12397](https://github.com/dotnet/razor/pull/12397))
36+
* Drop Html edits that would split a C# literal across multiple lines (PR: [#12396](https://github.com/dotnet/razor/pull/12396))
37+
* Fix completion resolve for provisional completion (PR: [#12403](https://github.com/dotnet/razor/pull/12403))
38+
639
# 2.96.x
740
* Update Debugger to v2.95.0 (PR: [#8710](https://github.com/dotnet/vscode-csharp/pull/8710))
841
* Remove default editor.formatOnType configuration for C# (PR: [#8709](https://github.com/dotnet/vscode-csharp/pull/8709))

CONTRIBUTING.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ To debug unit tests locally, press <kbd>F5</kbd> in VS Code with the "Launch Tes
6464
To debug integration tests
6565
1. Import the `csharp-test-profile.code-profile` in VSCode to setup a clean profile in which to run integration tests. This must be imported at least once to use the launch configurations (ensure the extensions are updated in the profile).
6666
2. Open any integration test file and <kbd>F5</kbd> launch with the correct launch configuration selected.
67-
- For integration tests inside `test/lsptoolshost`, use either `Launch Current File slnWithCsproj Integration Tests` or `[DevKit] Launch Current File slnWithCsproj Integration Tests` (to run tests using C# + C# Dev Kit)
67+
- For integration tests inside `test/lsptoolshost`, use either `[Roslyn] Run Current File Integration Test` or `[DevKit] Launch Current File Integration Tests` (to run tests using C# + C# Dev Kit)
6868
- For integration tests inside `test/razor`, use `[Razor] Run Current File Integration Test`
69-
- For integration tests inside `test/omnisharp`, use one of the `Omnisharp:` current file profiles
69+
- For integration tests inside `test/omnisharp`, use one of the `[O#] Run Current File Integration Test` current file profiles
7070

7171
These will allow you to actually debug the test, but the 'Razor integration tests' configuration does not.
7272

@@ -196,15 +196,25 @@ More details for this are [here] (https://devdiv.visualstudio.com/DevDiv/_git/Vi
196196
## Snapping for releases
197197
Extension releases on the marketplace are done from the prerelease and release branches (corresponding to the prerelease or release version of the extension). Code flows from main -> prerelease -> release. Every week we snap main -> prerelease. Monthly, we snap prerelease -> release.
198198

199+
### Versioning Scheme
200+
The extension follows a specific versioning scheme for releases:
201+
- **Prerelease versions**: Use standard minor version increments (e.g., 2.74, 2.75, 2.76...)
202+
- **Stable release versions**: Use the next tens version (e.g., 2.74 prerelease becomes 2.80 stable)
203+
- **Main branch after RC snap**: Jumps to one above the next stable version (e.g., if snapping 2.74 as RC, main becomes 2.81)
204+
199205
### Snap main -> prerelease
200206
The snap is done via the "Branch snap" github action. To run the snap from main -> prerelease, run the action via "Run workflow" and choose main as the base branch.
201207
![branch snap action](./docs/images/main_snap.png)
202208

209+
When running the snap action, you can optionally check the "Is this a release candidate snap" checkbox. If checked:
210+
- The prerelease branch will receive the snapped code with the current version (e.g., 2.74)
211+
- The main branch version will be updated to be higher than the next stable release (e.g., 2.81, since the next stable would be 2.80)
212+
203213
This will generate two PRs that must be merged. One merging the main branch into prerelease, and the other bumps the version in main.
204214
![generated prs](./docs/images/generated_prs.png)
205215

206216
### Snap prerelease -> release
207-
To snap from prerelease to release, run the same action but use **prerelease** as the workflow branch. This will generate a single PR merging from prerelease to release.
217+
To snap from prerelease to release, run the same action but use **prerelease** as the workflow branch. This will generate a PR merging from prerelease to release, and automatically update the version to the next stable release version (e.g., 2.74 -> 2.80) on the merge branch before the PR is merged.
208218

209219
### Marketplace release
210220
The marketplace release is managed by an internal AzDo pipeline. On the pipeline page, hit run pipeline. This will bring up the pipeline parameters to fill out:

SUPPORT.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ If you encounter issues with document classification (e.g., incorrect syntax hig
107107
For issues with diagnostics, please provide values of the background analysis scope options, `dotnet.backgroundAnalysis.analyzerDiagnosticsScope` and `dotnet.backgroundAnalysis.compilerDiagnosticsScope`
108108
![background analysis settings](./docs/images/background_analysis.png)
109109

110-
#### Language server crashing
110+
### Language server crashing
111111

112112
If the language server crashes, general logs are often helpful for diagnosing the issue. However, in some cases, logs alone may not provide enough information and we may need a crash dump. Follow these steps to collect a crash dump:
113113
- Set the `dotnet.server.crashDumpPath` setting in VSCode to a user-writable folder where crash dumps can be saved.
@@ -117,7 +117,7 @@ If the language server crashes, general logs are often helpful for diagnosing th
117117
> [!WARNING]
118118
> The dump can contain detailed information on the project - generally we will provide an email so that it can be shared privately
119119
120-
#### Recording a language server trace
120+
### Recording a language server trace
121121

122122
When investigating performance issues, we may request a performance trace of the language server to diagnose what is causing the problem. These are typically taken via [dotnet-trace](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-trace) (a cross platform tool to collect performance traces of .NET processes)
123123

@@ -132,6 +132,16 @@ The C# extension has a built in command, `csharp.recordLanguageServerTrace` to h
132132
![alt text](docs/images/recordTraceTerminal.png)
133133
5. Share the trace. Note that the trace may contain PII, so generally we will provide an email or other confidential way to share the trace with us.
134134

135+
### Sharing information privately
136+
Detailed logs, dumps, traces, and other information can sometimes contain private information that you do not wish to share publicly. Instead, you can utilize the Developer Community page to share these privately to Microsoft.
137+
138+
1. Go to https://developercommunity.visualstudio.com/dotnet/report
139+
2. Fill in the issue title, reference the GitHub issue in the description, and upload the attachments
140+
![developer community feedback page](docs/images/developer_community_feedback.png)
141+
3. Once created, a comment on the GitHub issue a link to the new Developer Community ticket.
142+
143+
144+
135145
## Microsoft Support Policy
136146

137147
Support for this project is limited to the resources listed above.

azure-pipelines-official.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@ parameters:
2727
- auto
2828
default: auto
2929

30-
variables:
31-
- template: /azure-pipelines/dotnet-variables.yml@self
32-
3330
resources:
3431
repositories:
3532
- repository: 1ESPipelineTemplates
@@ -66,4 +63,3 @@ extends:
6663
isOfficial: true
6764
channel: ${{ parameters.channel }}
6865
signType: ${{ parameters.signType }}
69-
dotnetVersion: $(defaultDotnetVersion)

azure-pipelines.yml

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ schedules:
5555
- main
5656

5757
variables:
58-
- template: /azure-pipelines/dotnet-variables.yml@self
5958
- name: testVSCodeVersion
6059
${{ if eq( variables['Build.Reason'], 'Schedule' ) }}:
6160
value: insiders
@@ -67,52 +66,71 @@ stages:
6766
parameters:
6867
isOfficial: false
6968
signType: test
70-
dotnetVersion: $(defaultDotnetVersion)
7169

7270
- template: azure-pipelines/validate-build.yml
73-
parameters:
74-
dotnetVersion: $(defaultDotnetVersion)
7571

7672
- stage:
7773
displayName: Test Linux (.NET 8)
7874
dependsOn: []
75+
variables:
76+
ROSLYN_SKIP_TEST_FILE_BASED_PROGRAMS: 'true'
7977
jobs:
8078
- template: azure-pipelines/test-matrix.yml
8179
parameters:
8280
os: linux
8381
# Prefer the dotnet from the container.
84-
dotnetVersion: ''
82+
installDotNet: false
8583
testVSCodeVersion: $(testVSCodeVersion)
8684
installAdditionalLinuxDependencies: true
8785
pool:
8886
name: NetCore-Public
8987
demands: ImageOverride -equals 1es-ubuntu-2004-open
90-
containerName: mcr.microsoft.com/dotnet/sdk:8.0
88+
containerName: mcr.microsoft.com/dotnet/sdk:8.0-noble
9189

9290
- stage:
9391
displayName: Test Linux (.NET 9)
9492
dependsOn: []
93+
variables:
94+
ROSLYN_SKIP_TEST_FILE_BASED_PROGRAMS: 'true'
95+
jobs:
96+
- template: azure-pipelines/test-matrix.yml
97+
parameters:
98+
os: linux
99+
# Prefer the dotnet from the container.
100+
installDotNet: false
101+
testVSCodeVersion: $(testVSCodeVersion)
102+
installAdditionalLinuxDependencies: true
103+
pool:
104+
name: NetCore-Public
105+
demands: ImageOverride -equals 1es-ubuntu-2004-open
106+
containerName: mcr.microsoft.com/dotnet/sdk:9.0-noble
107+
108+
- stage:
109+
displayName: Test Linux (.NET 10)
110+
dependsOn: []
95111
jobs:
96112
- template: azure-pipelines/test-matrix.yml
97113
parameters:
98114
os: linux
99115
# Prefer the dotnet from the container.
100-
dotnetVersion: ''
116+
installDotNet: false
101117
testVSCodeVersion: $(testVSCodeVersion)
102118
installAdditionalLinuxDependencies: true
103119
pool:
104120
name: NetCore-Public
105121
demands: ImageOverride -equals 1es-ubuntu-2004-open
106-
containerName: mcr.microsoft.com/dotnet/sdk:9.0
122+
containerName: mcr.microsoft.com/dotnet/sdk:10.0.100-rc.2-noble
107123

108124
- stage: Test_Windows_Stage
109125
displayName: Test Windows
110126
dependsOn: []
127+
variables:
128+
ROSLYN_SKIP_TEST_FILE_BASED_PROGRAMS: 'true'
111129
jobs:
112130
- template: azure-pipelines/test-matrix.yml
113131
parameters:
114132
os: windows
115-
dotnetVersion: $(defaultDotnetVersion)
133+
installDotNet: true
116134
testVSCodeVersion: $(testVSCodeVersion)
117135
pool:
118136
name: NetCore-Public
@@ -121,15 +139,17 @@ stages:
121139
- stage: Test_MacOS_Stage
122140
displayName: Test MacOS
123141
dependsOn: []
142+
variables:
143+
ROSLYN_SKIP_TEST_FILE_BASED_PROGRAMS: 'true'
124144
jobs:
125145
- template: azure-pipelines/test-matrix.yml
126146
parameters:
127147
os: macos
128-
dotnetVersion: $(defaultDotnetVersion)
148+
installDotNet: true
129149
testVSCodeVersion: $(testVSCodeVersion)
130150
pool:
131151
name: Azure Pipelines
132-
vmImage: macOS-13
152+
vmImage: macOS-15
133153

134154
- stage: Test_OmniSharp
135155
displayName: Test OmniSharp
@@ -148,5 +168,5 @@ stages:
148168
steps:
149169
- template: azure-pipelines/test-omnisharp.yml
150170
parameters:
151-
dotnetVersion: $(defaultDotnetVersion)
171+
installDotNet: true
152172
testVSCodeVersion: $(testVSCodeVersion)

azure-pipelines/build-vsix.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ parameters:
44
default: 'default'
55
- name: isOfficial
66
type: boolean
7-
- name: dotnetVersion
8-
type: string
97
- name: channel
108
values:
119
- release
@@ -128,7 +126,7 @@ stages:
128126
- template: /azure-pipelines/prereqs.yml@self
129127
parameters:
130128
versionNumberOverride: ${{ parameters.versionNumberOverride }}
131-
dotnetVersion: ${{ parameters.dotnetVersion}}
129+
installDotNet: true
132130

133131
- task: UsePythonVersion@0
134132
displayName: 'Use Python 3.11'

azure-pipelines/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
parameters:
2-
- name: dotnetVersion
3-
type: string
2+
- name: installDotNet
3+
type: boolean
44

55
steps:
66
- checkout: self
@@ -10,7 +10,7 @@ steps:
1010
fetchDepth: 0
1111
- template: /azure-pipelines/prereqs.yml@self
1212
parameters:
13-
dotnetVersion: ${{ parameters.dotnetVersion}}
13+
installDotNet: ${{ parameters.installDotNet }}
1414

1515
- pwsh: npm run package
1616
displayName: 'Build'

azure-pipelines/dotnet-variables.yml

Lines changed: 0 additions & 3 deletions
This file was deleted.

azure-pipelines/prereqs.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ parameters:
22
- name: versionNumberOverride
33
type: string
44
default: 'default'
5-
- name: dotnetVersion
6-
type: string
5+
- name: installDotNet
6+
type: boolean
77

88
steps:
99

@@ -14,11 +14,13 @@ steps:
1414

1515
# Some tests use predefined docker images with a specific version of .NET installed.
1616
# So we avoid installing .NET in those cases.
17-
- ${{ if parameters.dotnetVersion }}:
17+
- ${{ if parameters.installDotNet }}:
1818
- task: UseDotNet@2
1919
displayName: 'Install .NET SDK'
2020
inputs:
21-
version: ${{ parameters.dotnetVersion }}
21+
useGlobalJson: true
22+
workingDirectory: $(Build.SourcesDirectory)/msbuild
23+
2224

2325
- script: dotnet --info
2426
displayName: Display dotnet info

0 commit comments

Comments
 (0)