Fix CI: Tests run on windows-latest, which no longer provides VS 2022#71
Conversation
|
CLA Assistant Lite bot: I have read the CLA Document and I hereby sign the CLA 0 out of 2 committers have signed the CLA. |
|
recheck |
|
@copilot Add an additional test in tests/test_source_environment.py If we encounter a toolchain with a major version number newer than the Visual Studio 2026 series, the test should fail. Make this hard-coded version a configurable variable near the top of the file. The failure message informs the user to refer to MAINTENANCE.md to see what needs updating. That document explains the steps and rationale: Strategy:
Maintenance steps for a developer encountering a failure:
The spots that will require updates should be clearly identified in MAINTENANCE.md, and the corresponding test and ci.yml should have comments pointing back to MAINTENANCE.md Use language that would be clear to a mid-level engineer with only basic Linden AutoBuild exposure. Explain why, not just what. |
Done in the latest commit. Here's what was added:
|
Updated comments in CI workflow for clarity.
|
@copilot The PR description is stale. Update it to reflect the actual implementation. Keep it concise, and targeted at a med-level developer with a basic Linden AutoBuild understanding. Provide adequate context such that they do not need to read the full thread. |
PR description updated. It now covers the full implementation: the |
Problem
GitHub Actions
windows-latestis a rolling label that GitHub updates over time. The CI matrix used onlywindows-latestbut the testtest_vstoolset_sethardcoded Visual Studio 2022 (AUTOBUILD_VSVER=170). Whenwindows-latestmoved to a newer Visual Studio, the test started failing.Changes
.github/workflows/ci.yamlwindows-2022to the OS matrix so that the VS 2022 toolchain stays tested even aswindows-latestmoves forward.MAINTENANCE.mdexplaining when and how to update this list.tests/test_source_environment.pyNEWEST_KNOWN_VS_MAJOR— a constant near the top of the file set to"18"(Visual Studio 2026). This is the single value a developer bumps when a new Visual Studio ships.test_vstoolset_set— updated to dynamically detect the installed VS version via_available_vsvers()and look up the expected toolset from_VSTOOLSETS, so it works correctly on any supported VS.test_newest_vs_known(new) — intentionally fails (not skips) when the detected VS major version exceedsNEWEST_KNOWN_VS_MAJOR. This is the early-warning signal that autobuild needs updating. The failure message points directly toMAINTENANCE.md.MAINTENANCE.md.MAINTENANCE.md(new)Documents the maintenance strategy and provides step-by-step instructions for a developer who hits a
test_newest_vs_knownfailure:_VSTOOLSETS(and the CMake generator map) inautobuild_tool_source_environment.py.NEWEST_KNOWN_VS_MAJORintests/test_source_environment.py.windows-latestimage (e.g.windows-2025) to theosmatrix inci.yaml.A summary table lists every file that needs updating.