From 5146d68f2ca09d6cf888f805ab2e66d541c2b2c4 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 18 Aug 2026 09:48:47 -0500 Subject: [PATCH 1/9] Clean up Setup-Developer-Machine.ps1 and set $env:LcmRootDir * Remove the junction to LCMRepo--it is located by an environment var * Check for LibLCM existence in more places before cloning * Set $env:LcmRootDir after finding or cloning LibLCM --- Setup-Developer-Machine.ps1 | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/Setup-Developer-Machine.ps1 b/Setup-Developer-Machine.ps1 index 48f4c50694..8d32f7e592 100644 --- a/Setup-Developer-Machine.ps1 +++ b/Setup-Developer-Machine.ps1 @@ -203,21 +203,24 @@ if ($InstallerDeps) { } # Special case: liblcm goes inside Localizations - $lcmTarget = Join-Path $scriptDir "Localizations/LCMRepo" $localizationsPath = Join-Path $scriptDir "Localizations" - if ((Test-Path $localizationsPath) -and -not (Test-Path $lcmTarget)) { + $lcmTarget = Join-Path $localizationsPath "LCMRepo" + if ($env:LcmRootDir -and (Test-Path $env:LcmRootDir)) { + Write-Host "[OK] LCMRepo already exists at $env:LcmRootDir" -ForegroundColor Green + } elseif (Test-Path $lcmTarget) { + $env:LcmRootDir = $lcmTarget + Write-Host "[OK] Localizations/LCMRepo already exists" -ForegroundColor Green + } elseif ((Test-Path $localizationsPath)) { if ($isWorktree) { $sharedLcm = Join-Path $repoRoot "liblcm" if (-not (Test-Path $sharedLcm)) { - if ($PSCmdlet.ShouldProcess("liblcm", "Clone to $sharedLcm")) { + if ($PSCmdlet.ShouldProcess($sharedLcm, "Clone to $sharedLcm")) { Write-Host "Cloning liblcm to shared location..." -ForegroundColor Cyan git clone https://github.com/sillsdev/liblcm.git $sharedLcm 2>&1 | Out-Null - } - } - if (Test-Path $sharedLcm) { - if ($PSCmdlet.ShouldProcess("Localizations/LCMRepo", "Create junction to $sharedLcm")) { - New-Item -ItemType Junction -Path $lcmTarget -Target $sharedLcm -Force | Out-Null - Write-Host "[OK] Created junction: Localizations/LCMRepo -> $sharedLcm" -ForegroundColor Green + if ($LASTEXITCODE -eq 0) { + $env:LcmRootDir = $sharedLcm + Write-Host "[OK] Cloned liblcm to $sharedLcm" -ForegroundColor Green + } } } } else { @@ -225,12 +228,11 @@ if ($InstallerDeps) { Write-Host "Cloning liblcm..." -ForegroundColor Cyan git clone https://github.com/sillsdev/liblcm.git $lcmTarget 2>&1 | Out-Null if ($LASTEXITCODE -eq 0) { + $env:LcmRootDir = $lcmTarget Write-Host "[OK] Cloned liblcm to $lcmTarget" -ForegroundColor Green } } } - } elseif (Test-Path $lcmTarget) { - Write-Host "[OK] Localizations/LCMRepo already exists" -ForegroundColor Green } } @@ -274,14 +276,6 @@ if ($PSCmdlet.ShouldProcess("$pathScope PATH", "Save changes")) { #endregion -#region Environment Variables - -Write-Host "`n--- Configuring Environment Variables ---" -ForegroundColor Yellow - -Write-Host "[INFO] WIX env var is not required for WiX v6 SDK builds" -ForegroundColor Gray - -#endregion - #region Verification Write-Host "`n--- Verification ---" -ForegroundColor Yellow From 41670d1c90fc8018fae2734e49245e68e70bb8c1 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 18 Aug 2026 11:00:47 -0500 Subject: [PATCH 2/9] Clean up completion message --- Setup-Developer-Machine.ps1 | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/Setup-Developer-Machine.ps1 b/Setup-Developer-Machine.ps1 index 8d32f7e592..d3bba62ddb 100644 --- a/Setup-Developer-Machine.ps1 +++ b/Setup-Developer-Machine.ps1 @@ -202,7 +202,7 @@ if ($InstallerDeps) { } } - # Special case: liblcm goes inside Localizations + # Special case: liblcm is found via the LcmRootDir environment variable $localizationsPath = Join-Path $scriptDir "Localizations" $lcmTarget = Join-Path $localizationsPath "LCMRepo" if ($env:LcmRootDir -and (Test-Path $env:LcmRootDir)) { @@ -283,24 +283,17 @@ Write-Host "`n--- Verification ---" -ForegroundColor Yellow # Refresh PATH for this session $env:PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') + ';' + [Environment]::GetEnvironmentVariable('PATH', 'User') -$allGood = $true - -# WiX (v6) is acquired via NuGet restore; no PATH verification needed. -Write-Host "[OK] WiX v6: acquired via NuGet restore during build" -ForegroundColor Green - #endregion Write-Host "`n========================================" -ForegroundColor Cyan -if ($allGood) { - Write-Host " Setup Complete!" -ForegroundColor Green -} else { - Write-Host " Setup Complete (restart terminal for PATH changes)" -ForegroundColor Yellow -} +Write-Host " Setup Complete!" -ForegroundColor Green Write-Host "========================================" -ForegroundColor Cyan Write-Host "" Write-Host "Next steps:" -ForegroundColor White -Write-Host " 1. Restart VS Code (or your terminal) for PATH changes to take effect" +Write-Host " 1. Restart your IDE and your terminal (not necessary for this terminal) for PATH and environment changes to take effect" Write-Host " 2. Build: .\build.ps1" Write-Host "" -Write-Host "Before building installers, run: .\Setup-Developer-Machine.ps1 -InstallerDeps" -ForegroundColor Gray +if (-not $InstallerDeps) { + Write-Host "Before building installers, run: .\Setup-Developer-Machine.ps1 -InstallerDeps" -ForegroundColor Gray +} Write-Host "For Serena MCP support, see Docs/mcp.md" -ForegroundColor Gray From 5ae26be7e7e10409a4a259830980eda321c518b9 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 18 Aug 2026 11:34:16 -0500 Subject: [PATCH 3/9] Address Devin comments * Persist LcmRootDir * Set FEEDBACK=off to prevent developers from sending prod analytics --- Setup-Developer-Machine.ps1 | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Setup-Developer-Machine.ps1 b/Setup-Developer-Machine.ps1 index d3bba62ddb..fd558ce797 100644 --- a/Setup-Developer-Machine.ps1 +++ b/Setup-Developer-Machine.ps1 @@ -206,14 +206,17 @@ if ($InstallerDeps) { $localizationsPath = Join-Path $scriptDir "Localizations" $lcmTarget = Join-Path $localizationsPath "LCMRepo" if ($env:LcmRootDir -and (Test-Path $env:LcmRootDir)) { - Write-Host "[OK] LCMRepo already exists at $env:LcmRootDir" -ForegroundColor Green + Write-Host "[OK] liblcm already exists at $env:LcmRootDir" -ForegroundColor Green } elseif (Test-Path $lcmTarget) { $env:LcmRootDir = $lcmTarget Write-Host "[OK] Localizations/LCMRepo already exists" -ForegroundColor Green } elseif ((Test-Path $localizationsPath)) { if ($isWorktree) { $sharedLcm = Join-Path $repoRoot "liblcm" - if (-not (Test-Path $sharedLcm)) { + if ((Test-Path $sharedLcm)) { + $env:LcmRootDir = $sharedLcm + Write-Host "[OK] liblcm already exists at $sharedLcm" -ForegroundColor Green + } else { if ($PSCmdlet.ShouldProcess($sharedLcm, "Clone to $sharedLcm")) { Write-Host "Cloning liblcm to shared location..." -ForegroundColor Cyan git clone https://github.com/sillsdev/liblcm.git $sharedLcm 2>&1 | Out-Null @@ -276,6 +279,19 @@ if ($PSCmdlet.ShouldProcess("$pathScope PATH", "Save changes")) { #endregion +#region Environment Variables + +Write-Host "`n--- Configuring Environment Variables ---" -ForegroundColor Yellow + +if ($PSCmdlet.ShouldProcess('LcmRootDir', 'Set LcmRootDir')) { + [Environment]::SetEnvironmentVariable('LcmRootDir', $env:LcmRootDir, 'User') +} +if ($PSCmdlet.ShouldProcess('FEEDBACK', 'Turn off production analytics for SIL software')) { + [Environment]::SetEnvironmentVariable('FEEDBACK', 'off', $pathScope) +} + +#endregion + #region Verification Write-Host "`n--- Verification ---" -ForegroundColor Yellow From aa763018770ac78388803d53898b9db3c6d15488 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 18 Aug 2026 11:51:53 -0500 Subject: [PATCH 4/9] Address Devin comments * Move PATH refresh to the PATH region * Remove empty Verification region --- Setup-Developer-Machine.ps1 | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/Setup-Developer-Machine.ps1 b/Setup-Developer-Machine.ps1 index fd558ce797..f46dfc3aae 100644 --- a/Setup-Developer-Machine.ps1 +++ b/Setup-Developer-Machine.ps1 @@ -277,6 +277,9 @@ if ($PSCmdlet.ShouldProcess("$pathScope PATH", "Save changes")) { $env:PATH = "$env:PATH;$($pathsToAdd -join ';')" } +# Refresh PATH for this session +$env:PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') + ';' + [Environment]::GetEnvironmentVariable('PATH', 'User') + #endregion #region Environment Variables @@ -286,21 +289,13 @@ Write-Host "`n--- Configuring Environment Variables ---" -ForegroundColor Yellow if ($PSCmdlet.ShouldProcess('LcmRootDir', 'Set LcmRootDir')) { [Environment]::SetEnvironmentVariable('LcmRootDir', $env:LcmRootDir, 'User') } + if ($PSCmdlet.ShouldProcess('FEEDBACK', 'Turn off production analytics for SIL software')) { [Environment]::SetEnvironmentVariable('FEEDBACK', 'off', $pathScope) } #endregion -#region Verification - -Write-Host "`n--- Verification ---" -ForegroundColor Yellow - -# Refresh PATH for this session -$env:PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') + ';' + [Environment]::GetEnvironmentVariable('PATH', 'User') - -#endregion - Write-Host "`n========================================" -ForegroundColor Cyan Write-Host " Setup Complete!" -ForegroundColor Green Write-Host "========================================" -ForegroundColor Cyan From 435eb8b16e0c08ca8eb555e09db523aabfd877c9 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 18 Aug 2026 15:18:36 -0500 Subject: [PATCH 5/9] Address Devin comments * Set global env var only if it exists and points to a folder * Test $localizationsPath only if not $isWorktree * Update Setup-InstallerBuild and MD to recognize $env:LcmRootDir --- Build/Agent/Setup-InstallerBuild.ps1 | 29 ++++++++++++---- Setup-Developer-Machine.ps1 | 49 +++++++++++++++------------- 2 files changed, 49 insertions(+), 29 deletions(-) diff --git a/Build/Agent/Setup-InstallerBuild.ps1 b/Build/Agent/Setup-InstallerBuild.ps1 index fa0cd7f51d..8941597e87 100644 --- a/Build/Agent/Setup-InstallerBuild.ps1 +++ b/Build/Agent/Setup-InstallerBuild.ps1 @@ -174,24 +174,39 @@ if ($toolchain) { Write-Host "`n--- Checking Helper Repositories ---" -ForegroundColor Yellow $helperRepos = @( - @{ Name = "FwHelps"; Path = "DistFiles/Helps"; Required = $true }, - @{ Name = "FwLocalizations"; Path = "Localizations"; Required = $true }, - @{ Name = "liblcm"; Path = "Localizations/LCMRepo"; Required = $true } + @{ Name = "FwHelps"; Path = "DistFiles/Helps" }, + @{ Name = "FwLocalizations"; Path = "Localizations" }, + @{ Name = "liblcm"; Path = "Localizations/LCMRepo" } ) $missingRepos = @() foreach ($repo in $helperRepos) { - $fullPath = Join-Path $repoRoot $repo.Path + if ($repo.Name -eq 'liblcm') { + if (-not $env:LcmRootDir) { + Write-Host '[MISSING] environment variable $LcmRootDir' -ForegroundColor Red + $missingRepos += $repo + $issues += "Missing helper repository: $($repo.Name) (expected at LcmRootDir, which is not set)" + continue + } + $fullPath = $env:LcmRootDir + $displayPath = $fullPath + } else { + $fullPath = Join-Path $repoRoot $repo.Path + $displayPath = $repo.Path + } + $gitPath = Join-Path $fullPath ".git" $isJunction = (Test-Path $fullPath) -and ((Get-Item $fullPath -Force -ErrorAction SilentlyContinue).Attributes -band [IO.FileAttributes]::ReparsePoint) if ((Test-Path $gitPath) -or $isJunction) { $status = if ($isJunction) { "junction" } else { "git repo" } - Write-Host "[OK] $($repo.Name): $($repo.Path) ($status)" -ForegroundColor Green + Write-Host "[OK] $($repo.Name): $displayPath ($status)" -ForegroundColor Green } else { - Write-Host "[MISSING] $($repo.Name): $($repo.Path)" -ForegroundColor Red + Write-Host "[MISSING] $($repo.Name): $displayPath" -ForegroundColor Red $missingRepos += $repo - if ($repo.Required) { + if ($repo.Name -eq 'liblcm') { + $issues += "Missing helper repository: $($repo.Name) (expected at LcmRootDir=$env:LcmRootDir)" + } else { $issues += "Missing helper repository: $($repo.Name)" } } diff --git a/Setup-Developer-Machine.ps1 b/Setup-Developer-Machine.ps1 index f46dfc3aae..b5b6a53eef 100644 --- a/Setup-Developer-Machine.ps1 +++ b/Setup-Developer-Machine.ps1 @@ -210,32 +210,36 @@ if ($InstallerDeps) { } elseif (Test-Path $lcmTarget) { $env:LcmRootDir = $lcmTarget Write-Host "[OK] Localizations/LCMRepo already exists" -ForegroundColor Green - } elseif ((Test-Path $localizationsPath)) { - if ($isWorktree) { - $sharedLcm = Join-Path $repoRoot "liblcm" - if ((Test-Path $sharedLcm)) { - $env:LcmRootDir = $sharedLcm - Write-Host "[OK] liblcm already exists at $sharedLcm" -ForegroundColor Green - } else { - if ($PSCmdlet.ShouldProcess($sharedLcm, "Clone to $sharedLcm")) { - Write-Host "Cloning liblcm to shared location..." -ForegroundColor Cyan - git clone https://github.com/sillsdev/liblcm.git $sharedLcm 2>&1 | Out-Null - if ($LASTEXITCODE -eq 0) { - $env:LcmRootDir = $sharedLcm - Write-Host "[OK] Cloned liblcm to $sharedLcm" -ForegroundColor Green - } - } - } + } elseif ($isWorktree) { + $sharedLcm = Join-Path $repoRoot "liblcm" + if ((Test-Path $sharedLcm)) { + $env:LcmRootDir = $sharedLcm + Write-Host "[OK] liblcm already exists at $sharedLcm" -ForegroundColor Green } else { - if ($PSCmdlet.ShouldProcess("liblcm", "Clone to $lcmTarget")) { - Write-Host "Cloning liblcm..." -ForegroundColor Cyan - git clone https://github.com/sillsdev/liblcm.git $lcmTarget 2>&1 | Out-Null + if ($PSCmdlet.ShouldProcess("liblcm", "Clone to $sharedLcm")) { + Write-Host "Cloning liblcm to shared location..." -ForegroundColor Cyan + git clone https://github.com/sillsdev/liblcm.git $sharedLcm 2>&1 | Out-Null if ($LASTEXITCODE -eq 0) { - $env:LcmRootDir = $lcmTarget - Write-Host "[OK] Cloned liblcm to $lcmTarget" -ForegroundColor Green + $env:LcmRootDir = $sharedLcm + Write-Host "[OK] Cloned liblcm to $sharedLcm" -ForegroundColor Green + } else { + Write-Host "[ERROR] Failed to clone liblcm" -ForegroundColor Red } } } + } elseif ((Test-Path $localizationsPath)) { + if ($PSCmdlet.ShouldProcess("LCMRepo", "Clone to $lcmTarget")) { + Write-Host "Cloning liblcm..." -ForegroundColor Cyan + git clone https://github.com/sillsdev/liblcm.git $lcmTarget 2>&1 | Out-Null + if ($LASTEXITCODE -eq 0) { + $env:LcmRootDir = $lcmTarget + Write-Host "[OK] Cloned liblcm to $lcmTarget" -ForegroundColor Green + } else { + Write-Host "[ERROR] Failed to clone liblcm" -ForegroundColor Red + } + } + } else { + Write-Host "[ERROR] Failed to clone liblcm because Localizations does not exist" -ForegroundColor Red } } @@ -286,7 +290,8 @@ $env:PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') + ';' + [En Write-Host "`n--- Configuring Environment Variables ---" -ForegroundColor Yellow -if ($PSCmdlet.ShouldProcess('LcmRootDir', 'Set LcmRootDir')) { +if ($env:LcmRootDir -and (Test-Path $env:LcmRootDir) -and + $PSCmdlet.ShouldProcess('LcmRootDir', 'Set LcmRootDir for the current user')) { [Environment]::SetEnvironmentVariable('LcmRootDir', $env:LcmRootDir, 'User') } From fd34a2e5289968135726fa17a84cae3ebb1f8807 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 18 Aug 2026 16:12:36 -0500 Subject: [PATCH 6/9] Add fallback LcmRootDir in Localize.targets --- Build/Agent/Setup-InstallerBuild.ps1 | 8 +------- Build/Localize.targets | 1 + Setup-Developer-Machine.ps1 | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Build/Agent/Setup-InstallerBuild.ps1 b/Build/Agent/Setup-InstallerBuild.ps1 index 8941597e87..8c4593ef15 100644 --- a/Build/Agent/Setup-InstallerBuild.ps1 +++ b/Build/Agent/Setup-InstallerBuild.ps1 @@ -181,13 +181,7 @@ $helperRepos = @( $missingRepos = @() foreach ($repo in $helperRepos) { - if ($repo.Name -eq 'liblcm') { - if (-not $env:LcmRootDir) { - Write-Host '[MISSING] environment variable $LcmRootDir' -ForegroundColor Red - $missingRepos += $repo - $issues += "Missing helper repository: $($repo.Name) (expected at LcmRootDir, which is not set)" - continue - } + if ($repo.Name -eq 'liblcm' -and $env:LcmRootDir) { $fullPath = $env:LcmRootDir $displayPath = $fullPath } else { diff --git a/Build/Localize.targets b/Build/Localize.targets index 37d895f52d..d4e29dab4d 100644 --- a/Build/Localize.targets +++ b/Build/Localize.targets @@ -35,6 +35,7 @@ $(L10nsBaseDir)/lists $(ListsDirectory)/GramCats $(L10nsBaseDir)/messages.pot + $(L10nsBaseDir)/LCMRepo $(LcmRootDir)/src true $(fwrt)/Downloads diff --git a/Setup-Developer-Machine.ps1 b/Setup-Developer-Machine.ps1 index b5b6a53eef..615b2d18dd 100644 --- a/Setup-Developer-Machine.ps1 +++ b/Setup-Developer-Machine.ps1 @@ -205,7 +205,7 @@ if ($InstallerDeps) { # Special case: liblcm is found via the LcmRootDir environment variable $localizationsPath = Join-Path $scriptDir "Localizations" $lcmTarget = Join-Path $localizationsPath "LCMRepo" - if ($env:LcmRootDir -and (Test-Path $env:LcmRootDir)) { + if ($env:LcmRootDir -and (Test-Path Join-Path $env:LcmRootDir ".git")) { Write-Host "[OK] liblcm already exists at $env:LcmRootDir" -ForegroundColor Green } elseif (Test-Path $lcmTarget) { $env:LcmRootDir = $lcmTarget From c112d487ef879f2d4c209ab9ab05100747db7ca9 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 18 Aug 2026 16:24:41 -0500 Subject: [PATCH 7/9] Persist $env:LcmRootDir only if it is a git repo --- Setup-Developer-Machine.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Setup-Developer-Machine.ps1 b/Setup-Developer-Machine.ps1 index 615b2d18dd..50c8122e8f 100644 --- a/Setup-Developer-Machine.ps1 +++ b/Setup-Developer-Machine.ps1 @@ -290,7 +290,7 @@ $env:PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') + ';' + [En Write-Host "`n--- Configuring Environment Variables ---" -ForegroundColor Yellow -if ($env:LcmRootDir -and (Test-Path $env:LcmRootDir) -and +if ($env:LcmRootDir -and (Test-Path Join-Path $env:LcmRootDir ".git") -and $PSCmdlet.ShouldProcess('LcmRootDir', 'Set LcmRootDir for the current user')) { [Environment]::SetEnvironmentVariable('LcmRootDir', $env:LcmRootDir, 'User') } From 6108ab6296e7021280911ede4c9d42104cd5c4fc Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 18 Aug 2026 16:49:01 -0500 Subject: [PATCH 8/9] Address Devin comments --- Build/Agent/Setup-InstallerBuild.ps1 | 3 ++- Setup-Developer-Machine.ps1 | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Build/Agent/Setup-InstallerBuild.ps1 b/Build/Agent/Setup-InstallerBuild.ps1 index 8c4593ef15..00cc2d8786 100644 --- a/Build/Agent/Setup-InstallerBuild.ps1 +++ b/Build/Agent/Setup-InstallerBuild.ps1 @@ -176,6 +176,7 @@ Write-Host "`n--- Checking Helper Repositories ---" -ForegroundColor Yellow $helperRepos = @( @{ Name = "FwHelps"; Path = "DistFiles/Helps" }, @{ Name = "FwLocalizations"; Path = "Localizations" }, + @{ Name = "genericinstaller"; Path = "PatchableInstaller" }, @{ Name = "liblcm"; Path = "Localizations/LCMRepo" } ) @@ -198,7 +199,7 @@ foreach ($repo in $helperRepos) { } else { Write-Host "[MISSING] $($repo.Name): $displayPath" -ForegroundColor Red $missingRepos += $repo - if ($repo.Name -eq 'liblcm') { + if ($repo.Name -eq 'liblcm' -and $env:LcmRootDir) { $issues += "Missing helper repository: $($repo.Name) (expected at LcmRootDir=$env:LcmRootDir)" } else { $issues += "Missing helper repository: $($repo.Name)" diff --git a/Setup-Developer-Machine.ps1 b/Setup-Developer-Machine.ps1 index 50c8122e8f..b624319d17 100644 --- a/Setup-Developer-Machine.ps1 +++ b/Setup-Developer-Machine.ps1 @@ -205,7 +205,7 @@ if ($InstallerDeps) { # Special case: liblcm is found via the LcmRootDir environment variable $localizationsPath = Join-Path $scriptDir "Localizations" $lcmTarget = Join-Path $localizationsPath "LCMRepo" - if ($env:LcmRootDir -and (Test-Path Join-Path $env:LcmRootDir ".git")) { + if ($env:LcmRootDir -and (Test-Path (Join-Path $env:LcmRootDir ".git"))) { Write-Host "[OK] liblcm already exists at $env:LcmRootDir" -ForegroundColor Green } elseif (Test-Path $lcmTarget) { $env:LcmRootDir = $lcmTarget @@ -290,7 +290,7 @@ $env:PATH = [Environment]::GetEnvironmentVariable('PATH', 'Machine') + ';' + [En Write-Host "`n--- Configuring Environment Variables ---" -ForegroundColor Yellow -if ($env:LcmRootDir -and (Test-Path Join-Path $env:LcmRootDir ".git") -and +if ($env:LcmRootDir -and (Test-Path (Join-Path $env:LcmRootDir ".git")) -and $PSCmdlet.ShouldProcess('LcmRootDir', 'Set LcmRootDir for the current user')) { [Environment]::SetEnvironmentVariable('LcmRootDir', $env:LcmRootDir, 'User') } From 98791f66c0dbb2ec568b8b79fda549c98b42dfb5 Mon Sep 17 00:00:00 2001 From: Hasso Date: Tue, 18 Aug 2026 17:31:37 -0500 Subject: [PATCH 9/9] Undo a Devin suggestion that Devin didn't like --- Build/Agent/Setup-InstallerBuild.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Build/Agent/Setup-InstallerBuild.ps1 b/Build/Agent/Setup-InstallerBuild.ps1 index 00cc2d8786..30ba1cae41 100644 --- a/Build/Agent/Setup-InstallerBuild.ps1 +++ b/Build/Agent/Setup-InstallerBuild.ps1 @@ -199,10 +199,10 @@ foreach ($repo in $helperRepos) { } else { Write-Host "[MISSING] $($repo.Name): $displayPath" -ForegroundColor Red $missingRepos += $repo - if ($repo.Name -eq 'liblcm' -and $env:LcmRootDir) { - $issues += "Missing helper repository: $($repo.Name) (expected at LcmRootDir=$env:LcmRootDir)" + if ($repo.Name -eq 'liblcm') { + $issues += "Missing helper repository: $($repo.Name) (expected at LcmRootDir='$env:LcmRootDir' or $($repo.Path))" } else { - $issues += "Missing helper repository: $($repo.Name)" + $issues += "Missing helper repository: $($repo.Name) (expected at $($repo.Path))" } } }