Skip to content

Commit 8468561

Browse files
committed
Add local LCM source mode workflow
1 parent de383e0 commit 8468561

77 files changed

Lines changed: 17664 additions & 757 deletions

File tree

Some content is hidden

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

.github/workflows/patch-installer-cd.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ jobs:
151151
- name: Setup dotnet
152152
uses: actions/setup-dotnet@v4
153153
with:
154-
dotnet-version: |
154+
dotnet-version: |
155155
3.1.x
156156
5.0.x
157157
@@ -166,7 +166,7 @@ jobs:
166166
choco install wixtoolset --version 3.11.2 --allow-downgrade --force
167167
echo "C:\Program Files (x86)\WiX Toolset v3.11\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
168168
if: github.event_name != 'pull_request'
169-
169+
170170
- name: Import Base Build Artifacts
171171
shell: pwsh
172172
run: |
@@ -211,7 +211,7 @@ jobs:
211211
)
212212
$valueName = "Switch.System.DisableTempFileCollectionDirectoryFeature"
213213
$expectedValue = "true"
214-
214+
215215
foreach ($path in $regPaths) {
216216
Write-Host "Adding or updating registry value in $path..."
217217
if (-not (Test-Path $path)) {
@@ -233,11 +233,11 @@ jobs:
233233
$results = Select-String -Path "build.log" -Pattern "^\s*[1-9][0-9]* Error\(s\)"
234234
if ($results) {
235235
foreach ($result in $results) {
236-
Write-Host "Found errors in build.log $($result.LineNumber): $($result.Line)" -ForegroundColor red
236+
Write-Host "Found errors in build.log $($result.LineNumber): $($result.Line)" -ForegroundColor red
237237
}
238238
exit 1
239239
} else {
240-
Write-Host "No errors found" -ForegroundColor green
240+
Write-Host "No errors found" -ForegroundColor green
241241
exit 0
242242
}
243243

.serena/project.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ initial_prompt: |
9393
Key build facts:
9494
- Uses MSBuild Traversal SDK via FieldWorks.proj (21 ordered phases, 110+ projects)
9595
- Native C++ (Phase 2) must build before managed code (Phases 3+)
96-
- Build command: .\build.ps1 or msbuild FieldWorks.proj /p:Configuration=Debug /p:Platform=x64 /m
96+
- Build command: .\build.ps1 or msbuild FieldWorks.proj /p:Configuration=Debug /m
9797
- Check .github/instructions/*.instructions.md for coding guidelines (managed, native, testing, etc.)
9898
- Per-folder AGENTS.md files describe component contracts and dependencies
9999
# project_name: Intentionally left out so that the folder name will be used and worktrees will not conflict
@@ -136,3 +136,12 @@ symbol_info_budget:
136136
# Note: the backend is fixed at startup. If a project with a different backend
137137
# is activated post-init, an error will be returned.
138138
language_backend:
139+
140+
# line ending convention to use when writing source files.
141+
# Possible values: unset (use global setting), "lf", "crlf", or "native" (platform default)
142+
# This does not affect Serena's own files (e.g. memories and configuration files), which always use native line endings.
143+
line_ending:
144+
145+
# list of regex patterns which, when matched, mark a memory entry as read‑only.
146+
# Extends the list from the global configuration, merging the two lists.
147+
read_only_memory_patterns: []

.vscode/extensions.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
// C# language + test explorer in VS Code (ReSharper-first)
66
"jetbrains.resharper-code",
77

8+
// Use the official C# extension for debugging language support, but disable its test runner to avoid conflicts with ReSharper's test runner.
9+
"ms-dotnettools.csharp",
10+
811
// PowerShell scripts are part of the standard workflow (build.ps1/test.ps1/etc.)
912
"ms-vscode.powershell",
1013

@@ -17,6 +20,5 @@
1720
"unwantedRecommendations": [
1821
// This workspace is ReSharper-first; dotnet test providers are discouraged.
1922
"ms-dotnettools.csdevkit",
20-
"ms-dotnettools.csharp"
2123
]
2224
}

.vscode/launch.json

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,43 @@
22
"version": "0.2.0",
33
"configurations": [
44
{
5-
"name": "FieldWorks",
5+
"name": "FieldWorks (.NET Framework, Package)",
66
"type": "clr",
77
"request": "launch",
8+
"preLaunchTask": "Prepare Debug (Package)",
89
"program": "${workspaceFolder}\\Output\\Debug\\FieldWorks.exe",
910
"cwd": "${workspaceFolder}\\Output\\Debug",
1011
"console": "externalTerminal",
1112
"justMyCode": false,
13+
"requireExactSource": false,
14+
"symbolOptions": {
15+
"searchPaths": [
16+
"${workspaceFolder}\\Output\\Debug"
17+
]
18+
}
19+
},
20+
{
21+
"name": "FieldWorks (.NET Framework, Local LCM)",
22+
"type": "clr",
23+
"request": "launch",
24+
"preLaunchTask": "Prepare Debug (Local LCM)",
25+
"program": "${workspaceFolder}\\Output\\Debug\\FieldWorks.exe",
26+
"cwd": "${workspaceFolder}\\Output\\Debug",
27+
"console": "externalTerminal",
28+
"justMyCode": false,
29+
"requireExactSource": false,
30+
"symbolOptions": {
31+
"searchPaths": [
32+
"${workspaceFolder}\\Output\\Debug",
33+
"${workspaceFolder}\\Localizations\\LCM\\artifacts\\Debug\\net462"
34+
]
35+
}
1236
},
1337
{
1438
"name": "Debug NUnit Tests",
1539
"type": "clr",
1640
"request": "launch",
17-
"preLaunchTask": "Build Debug",
41+
"preLaunchTask": "Build",
1842
"program": "dotnet",
1943
"args": [
2044
"test",

.vscode/tasks.json

Lines changed: 89 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,12 +211,96 @@
211211
{
212212
"label": "Build",
213213
"type": "shell",
214-
"command": "./build.ps1",
214+
"command": "./build.ps1 -LcmMode Auto",
215215
"group": {
216216
"kind": "build",
217217
"isDefault": true
218218
},
219-
"detail": "Build FieldWorks (auto-detects worktree)",
219+
"detail": "Build FieldWorks (package-backed by default; use explicit local LCM tasks for source mode)",
220+
"options": {
221+
"shell": {
222+
"executable": "powershell.exe",
223+
"args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-Command"]
224+
}
225+
},
226+
"problemMatcher": "$msCompile"
227+
},
228+
{
229+
"label": "Build (Package)",
230+
"type": "shell",
231+
"command": "./build.ps1 -LcmMode Package",
232+
"group": "build",
233+
"detail": "Build FieldWorks against the pinned liblcm packages",
234+
"options": {
235+
"shell": {
236+
"executable": "powershell.exe",
237+
"args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-Command"]
238+
}
239+
},
240+
"problemMatcher": "$msCompile"
241+
},
242+
{
243+
"label": "Build (Package, VS Code Debug)",
244+
"type": "shell",
245+
"command": "./build.ps1 -LcmMode Package -ManagedDebugType portable",
246+
"group": "build",
247+
"detail": "Build FieldWorks against pinned liblcm packages with portable managed PDBs for the VS Code debugger",
248+
"options": {
249+
"shell": {
250+
"executable": "powershell.exe",
251+
"args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-Command"]
252+
}
253+
},
254+
"problemMatcher": "$msCompile"
255+
},
256+
{
257+
"label": "Prepare Debug (Package)",
258+
"type": "shell",
259+
"command": "./Build/Agent/Invoke-VsCodeDebugBuild.ps1 -LcmMode Package -ManagedDebugType portable",
260+
"group": "build",
261+
"detail": "Build for VS Code debugging only when relevant files changed since the last successful package-mode portable-PDB debug build",
262+
"options": {
263+
"shell": {
264+
"executable": "powershell.exe",
265+
"args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-Command"]
266+
}
267+
},
268+
"problemMatcher": "$msCompile"
269+
},
270+
{
271+
"label": "Build (Local LCM)",
272+
"type": "shell",
273+
"command": "./build.ps1 -LcmMode Local",
274+
"group": "build",
275+
"detail": "Build FieldWorks against the nested Localizations/LCM checkout",
276+
"options": {
277+
"shell": {
278+
"executable": "powershell.exe",
279+
"args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-Command"]
280+
}
281+
},
282+
"problemMatcher": "$msCompile"
283+
},
284+
{
285+
"label": "Build (Local LCM, VS Code Debug)",
286+
"type": "shell",
287+
"command": "./build.ps1 -LcmMode Local -ManagedDebugType portable",
288+
"group": "build",
289+
"detail": "Build FieldWorks against the nested local LCM checkout with portable managed PDBs for the VS Code debugger",
290+
"options": {
291+
"shell": {
292+
"executable": "powershell.exe",
293+
"args": ["-NoProfile", "-ExecutionPolicy", "Bypass", "-Command"]
294+
}
295+
},
296+
"problemMatcher": "$msCompile"
297+
},
298+
{
299+
"label": "Prepare Debug (Local LCM)",
300+
"type": "shell",
301+
"command": "./Build/Agent/Invoke-VsCodeDebugBuild.ps1 -LcmMode Local -ManagedDebugType portable",
302+
"group": "build",
303+
"detail": "Build for VS Code debugging only when relevant files changed since the last successful local-LCM portable-PDB debug build",
220304
"options": {
221305
"shell": {
222306
"executable": "powershell.exe",
@@ -239,7 +323,6 @@
239323
},
240324
"problemMatcher": "$msCompile"
241325
},
242-
243326
// ==================== Test Tasks ====================
244327
{
245328
"label": "Test",
@@ -249,7 +332,7 @@
249332
"kind": "test",
250333
"isDefault": true
251334
},
252-
"detail": "Run all tests (auto-detects worktree). See specs/007-test-modernization-vstest/IGNORED_TESTS.md for the tracked skip/ignore inventory.",
335+
"detail": "Run all tests. See specs/007-test-modernization-vstest/IGNORED_TESTS.md for the tracked skip/ignore inventory.",
253336
"options": {
254337
"shell": {
255338
"executable": "powershell.exe",
@@ -484,9 +567,9 @@
484567
"problemMatcher": []
485568
},
486569
{
487-
"label": "Installer Check: Bundle (Debug, x64)",
570+
"label": "Installer Check: Bundle (Debug)",
488571
"type": "shell",
489-
"command": "./scripts/Agent/Invoke-InstallerCheck.ps1 -InstallerType Bundle -Configuration Debug -Platform x64",
572+
"command": "./scripts/Agent/Invoke-InstallerCheck.ps1 -InstallerType Bundle -Configuration Debug",
490573
"detail": "Run snapshot -> install bundle -> snapshot -> diff (writes evidence under Output/InstallerEvidence/<RunId>)",
491574
"options": {
492575
"shell": {

0 commit comments

Comments
 (0)