cleanup: rename wsla -> wslc#14502
Conversation
There was a problem hiding this comment.
Pull request overview
This PR performs a repo-wide cleanup to rename the “WSLA” (Apps) surface area to “WSLC” (Containers), updating tests, COM interfaces, schemas, build/packaging, telemetry, and supporting infrastructure so the new naming is consistent across Windows and Linux components.
Changes:
- Renames WSLA-prefixed COM/session/process/container types, macros, headers, and test categories to WSLC throughout the codebase.
- Updates build/packaging artifacts (CMake, MSI/WiX, NuGet metadata, pipelines, CloudTest) to reference the renamed binaries/IDL outputs.
- Adjusts related docs/resources/telemetry identifiers and applies some formatting-only refactors in touched code.
Reviewed changes
Copilot reviewed 141 out of 143 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| test/windows/wslc/e2e/WSLCE2EImageInspectTests.cpp | Switches schema include/namespace and test class macro to WSLC. |
| test/windows/wslc/e2e/WSLCE2EImageDeleteTests.cpp | Updates WSLC test macro and WSLC error code constant in expected output. |
| test/windows/wslc/e2e/WSLCE2EImageBuildTests.cpp | Updates WSLC test macro; minor formatting refactor. |
| test/windows/wslc/e2e/WSLCE2EHelpers.h | Switches schema include and helper return types to wslc_schema. |
| test/windows/wslc/e2e/WSLCE2EHelpers.cpp | Switches helper implementations to wslc_schema types. |
| test/windows/wslc/e2e/WSLCE2EGlobalTests.cpp | Updates test macro to WSLC. |
| test/windows/wslc/e2e/WSLCE2EContainerTests.cpp | Updates test macro to WSLC. |
| test/windows/wslc/e2e/WSLCE2EContainerCreateTests.cpp | Updates WSLC error codes and applies formatting-only refactors. |
| test/windows/wslc/WSLCCLIParserUnitTests.cpp | Updates test macro to WSLC. |
| test/windows/wslc/WSLCCLIExecutionUnitTests.cpp | Updates test macro and COM interface type to IWSLCSession. |
| test/windows/wslc/WSLCCLICommandUnitTests.cpp | Updates test macro to WSLC. |
| test/windows/wslc/WSLCCLIArgumentUnitTests.cpp | Updates includes and signal-validation APIs/enums from WSLA to WSLC. |
| test/windows/WslcSdkTests.cpp | Updates test macro and expected WSLC error codes; formatting refactors. |
| test/windows/UnitTests.cpp | Formatting-only refactors (indent/wrapping). |
| test/windows/Plan9Tests.cpp | Formatting-only refactors (wrapping). |
| test/windows/NetworkTests.cpp | Formatting-only refactors (wrapping). |
| test/windows/InstallerTests.cpp | Updates WSLC naming in TODO/test names and formatting refactors. |
| test/windows/Common.h | Renames WSLA_TEST_CLASS -> WSLC_TEST_CLASS, updates category and binary property name. |
| test/windows/Common.cpp | Updates WER reports list to wslcsession.exe. |
| test/windows/CMakeLists.txt | Switches test source file from WSLATests.cpp to WSLCTests.cpp. |
| src/windows/wslrelay/main.cpp | Renames relay mode branch to WSLCPortRelay and updates callsite. |
| src/windows/wslrelay/localhost.h | Renames RunWSLAPortRelay -> RunWSLCPortRelay. |
| src/windows/wslrelay/localhost.cpp | Updates message types/structs and exported function name to WSLC. |
| src/windows/wslhost/main.cpp | Formatting-only refactors (wrapping). |
| src/windows/wslcsession/resource.h | Updates resource header comment to wslcsession.exe. |
| src/windows/wslcsession/main.rc | Updates version strings/description for wslcsession.exe. |
| src/windows/wslcsession/main.cpp | Renames factory class/types and telemetry provider usage to WSLC. |
| src/windows/wslcsession/application.manifest | Adds manifest enabling long path awareness. |
| src/windows/wslcsession/WSLCVirtualMachine.h | Renames VM/session/process/container references from WSLA to WSLC. |
| src/windows/wslcsession/WSLCSessionReference.h | Renames session reference implementation types/interfaces to WSLC. |
| src/windows/wslcsession/WSLCSessionReference.cpp | Updates implementation to WSLC interfaces/enums. |
| src/windows/wslcsession/WSLCSessionFactory.h | Renames factory types/interfaces to WSLC. |
| src/windows/wslcsession/WSLCSessionFactory.cpp | Updates implementation and log event name to WSLC. |
| src/windows/wslcsession/WSLCSession.h | Renames session COM class and all API types to WSLC. |
| src/windows/wslcsession/WSLCProcessIO.h | Renames process IO base type to WSLC and updates namespace/includes. |
| src/windows/wslcsession/WSLCProcessIO.cpp | Updates includes/namespaces and WSLC fd constant usage. |
| src/windows/wslcsession/WSLCProcessControl.h | Renames process control types and dependencies to WSLC. |
| src/windows/wslcsession/WSLCProcessControl.cpp | Updates enums/messages/signals to WSLC. |
| src/windows/wslcsession/WSLCProcess.h | Adds WSLC process COM wrapper type (renamed from WSLA). |
| src/windows/wslcsession/WSLCProcess.cpp | Updates implementation naming and COM method signatures to WSLC. |
| src/windows/wslcsession/WSLCContainerMetadata.h | Adds WSLC container metadata schema (renamed from WSLA). |
| src/windows/wslcsession/ServiceProcessLauncher.h | Adds WSLC service process launcher wrapper (renamed from WSLA). |
| src/windows/wslcsession/ServiceProcessLauncher.cpp | Updates launcher implementation to WSLC types/namespaces. |
| src/windows/wslcsession/PortRelayHandle.h | Switches namespace from wsla -> wslc. |
| src/windows/wslcsession/PortRelayHandle.cpp | Switches namespace usage to wslc. |
| src/windows/wslcsession/IORelay.h | Switches namespace from wsla -> wslc. |
| src/windows/wslcsession/IORelay.cpp | Switches namespace usage to wslc. |
| src/windows/wslcsession/DockerHTTPClient.h | Switches namespace and updates WSLC signal/log flag types; formatting refactor. |
| src/windows/wslcsession/DockerHTTPClient.cpp | Updates message types/macros to WSLC and debug macro name. |
| src/windows/wslcsession/ContainerEventTracker.h | Switches namespace/types to WSLC. |
| src/windows/wslcsession/ContainerEventTracker.cpp | Switches includes/usings to WSLC. |
| src/windows/wslcsession/CMakeLists.txt | Renames target/files from wslasession to wslcsession and IDL dep to wslcidl. |
| src/windows/wslc/tasks/SessionTasks.cpp | Updates localization header keys from Wsla -> Wslc. |
| src/windows/wslc/tasks/ImageTasks.cpp | Switches schema namespace from wsla_schema to wslc_schema. |
| src/windows/wslc/tasks/ContainerTasks.cpp | Switches schema include/types and signal/container state handling to WSLC. |
| src/windows/wslc/services/SessionService.h | Updates include from wslaservice.h to wslc.h. |
| src/windows/wslc/services/SessionService.cpp | Switches COM interfaces, process launcher, flags, and localization keys to WSLC. |
| src/windows/wslc/services/SessionModel.h | Renames default session name and COM pointer types to WSLC. |
| src/windows/wslc/services/SessionModel.cpp | Updates default storage path and networking mode enum to WSLC. |
| src/windows/wslc/services/ImageService.h | Switches schema include/return type to wslc_schema. |
| src/windows/wslc/services/ImageService.cpp | Updates runtime option/result struct types from WSLA to WSLC. |
| src/windows/wslc/services/ContainerService.h | Updates state/signal types and inspect return type to WSLC. |
| src/windows/wslc/services/ContainerService.cpp | Renames container/process launcher usage and all flags/types to WSLC. |
| src/windows/wslc/services/ContainerModel.h | Switches include and state/signal fields to WSLC. |
| src/windows/wslc/services/ConsoleService.h | Switches includes and process wrapper types to WSLC. |
| src/windows/wslc/services/ConsoleService.cpp | Switches WSLC process launcher, flags, and fd constants. |
| src/windows/wslc/core/Main.cpp | Switches telemetry provider initialization to WSLC provider. |
| src/windows/wslc/arguments/ArgumentValidation.h | Renames signal validation functions to WSLC and includes wslc.h. |
| src/windows/wslc/arguments/ArgumentValidation.cpp | Updates signal map and validation to WSLC types; formatting refactors. |
| src/windows/wslasession/WSLAProcess.h | Removes WSLA process header (renamed to WSLC equivalent). |
| src/windows/wslasession/WSLAContainerMetadata.h | Removes WSLA metadata header (renamed to WSLC equivalent). |
| src/windows/wslasession/ServiceProcessLauncher.h | Removes WSLA launcher header (renamed to WSLC equivalent). |
| src/windows/service/stub/CMakeLists.txt | Switches proxy/stub sources and deps from wslaservice_* to wslc_*. |
| src/windows/service/inc/CMakeLists.txt | Renames IDL target from wslaserviceidl to wslcidl. |
| src/windows/service/exe/WslMirroredNetworking.cpp | Formatting-only refactor. |
| src/windows/service/exe/WslCoreVm.cpp | Formatting-only refactors. |
| src/windows/service/exe/WSLCSessionManagerFactory.h | Adds WSLC session manager factory declarations. |
| src/windows/service/exe/WSLCSessionManagerFactory.cpp | Renames session manager factory implementation to WSLC. |
| src/windows/service/exe/WSLCSessionManager.h | Renames session manager COM interfaces/types and internal fields to WSLC. |
| src/windows/service/exe/WSLASessionManagerFactory.h | Removes WSLA factory header (renamed to WSLC). |
| src/windows/service/exe/ServiceMain.cpp | Switches includes/class registration and teardown call to WSLC. |
| src/windows/service/exe/LxssUserSession.cpp | Formatting-only refactors. |
| src/windows/service/exe/LxssInstance.cpp | Formatting-only refactor. |
| src/windows/service/exe/HcsVirtualMachine.h | Renames VM COM interface and settings/flags types to WSLC. |
| src/windows/service/exe/HcsVirtualMachine.cpp | Updates env var, flags, logs, crash folder, and enums to WSLC. |
| src/windows/service/exe/CMakeLists.txt | Switches sources/headers/deps/link flags from WSLA session manager to WSLC. |
| src/windows/libwsl/WslCoreConfigInterface.cpp | Formatting-only refactor. |
| src/windows/inc/wslrelay.h | Renames relay mode enum value to WSLCPortRelay. |
| src/windows/inc/wslc_schema.h | Renames schema header/namespace/comments from WSLA to WSLC. |
| src/windows/common/wslutil.h | Switches include to wslc.h and updates prune result type. |
| src/windows/common/wslutil.cpp | Updates common error mappings from WSLA_* to WSLC_* and include to wslc.h. |
| src/windows/common/relay.cpp | Renames debug macro gate from WSLA_HTTP_DEBUG to WSLC_HTTP_DEBUG. |
| src/windows/common/notifications.cpp | Formatting-only refactors. |
| src/windows/common/filesystem.cpp | Formatting-only refactors. |
| src/windows/common/WslTelemetry.h | Renames declared provider from WslaTelemetryProvider to WslcTelemetryProvider. |
| src/windows/common/WslTelemetry.cpp | Renames provider symbol/name to WSLC. |
| src/windows/common/WslSecurity.cpp | Formatting-only refactors. |
| src/windows/common/WslCoreConfig.cpp | Formatting-only refactor. |
| src/windows/common/WslClient.cpp | Renames includes/types/entrypoint for --wslc debugging tool and WSLC COM usage. |
| src/windows/common/WSLCProcessLauncher.h | Renames process launcher wrapper types from WSLA to WSLC. |
| src/windows/common/WSLCProcessLauncher.cpp | Updates implementation to WSLC types/enums and fd constants. |
| src/windows/common/WSLCContainerLauncher.h | Renames container launcher/wrapper types and schema to WSLC. |
| src/windows/common/SubProcess.cpp | Formatting-only refactor. |
| src/windows/common/NatNetworking.cpp | Formatting-only refactors. |
| src/windows/common/Dmesg.cpp | Formatting-only refactor. |
| src/windows/common/COMImplClass.h | Switches namespace from wsla -> wslc. |
| src/windows/common/CMakeLists.txt | Switches common sources/headers/deps from WSLA* to WSLC* equivalents. |
| src/windows/WslcSDK/wslcsdk.h | Adjusts container ID signature size expression (but currently breaks self-contained build). |
| src/windows/WslcSDK/WslcsdkPrivate.h | Switches runtime includes/types from WSLA to WSLC. |
| src/windows/WslcSDK/TerminationCallback.h | Switches termination reason enum type to WSLC. |
| src/windows/WslcSDK/TerminationCallback.cpp | Switches termination reason handling to WSLC. |
| src/windows/WslcSDK/ProgressCallback.h | Switches include to wslc.h. |
| src/windows/WslcSDK/ProgressCallback.cpp | Comment rename WSLA -> WSLC. |
| src/windows/WslcSDK/CMakeLists.txt | Updates IDL dependency to wslcidl. |
| src/linux/netlinkutil/Address.cpp | Formatting-only refactor. |
| src/linux/init/main.cpp | Renames WSLA entrypoint/env var usage to WSLC. |
| src/linux/init/GnsEngine.cpp | Formatting-only refactors. |
| src/linux/init/CMakeLists.txt | Renames init source from WSLAInit.cpp to WSLCInit.cpp. |
| nuget/Microsoft.WSL.Containers/docs/README.MD | Updates header name reference (currently inconsistent). |
| msipackage/package.wix.in | Renames WSLA COM registration and per-user server exe to WSLC equivalents. |
| msipackage/CMakeLists.txt | Updates MSI binary list and dependencies to include wslcsession.exe. |
| localization/strings/en-US/Resources.resw | Renames WSLA localization keys/strings to WSLC variants. |
| doc/docs/technical-documentation/index.md | Updates architecture diagram references for renamed components. |
| diagnostics/wsl.wprp | Renames provider IDs from wsla/wslapi to wslc/wslcpi. |
| cloudtest/TestGroup.xml.in | Updates CloudTest filter to exclude WSLC category by default. |
| cloudtest/TestGroup-wslc.xml.in | Updates CloudTest selection filter to run WSLC tests. |
| cloudtest/CMakeLists.txt | Renames helper function and output folder from wsla -> wslc. |
| CMakeLists.txt | Switches subdirectory from wslasession to wslcsession. |
| .pipelines/test-stage.yml | Updates pipeline parameter default from wsla -> wslc. |
| .pipelines/build-stage.yml | Updates build targets/patterns from wslasession to wslcsession. |
| .github/CODEOWNERS | Updates team ownership entry from wsla-team to wslc-team. |
eb74eed to
5c52dcd
Compare
| # Reviewers for all files in the repository | ||
| * @microsoft/wsl-maintainers | ||
| * @microsoft/wsla-team No newline at end of file | ||
| * @microsoft/wslc-team No newline at end of file |
There was a problem hiding this comment.
Need to rename the team
There was a problem hiding this comment.
Going to approve it assuming wslc-team will be provisioned in microsoft org soon, otherwise the review enforcement will be broken
5c52dcd to
a0110c7
Compare
| <data name="MessageWslcSessionNotFound" xml:space="preserve"> | ||
| <value>Session not found: '{}'</value> | ||
| <comment>{FixedPlaceholder="{}"}Command line arguments, file names and string inserts should not be translated</comment> | ||
| </data> |
There was a problem hiding this comment.
The renamed resource keys (e.g., MessageWslcSessionNotFound) currently exist only in en-US; other locales still have the old MessageWsla* keys. This will cause non-en-US languages to fall back to en-US for these strings, effectively regressing localization for the renamed messages. Consider adding the new MessageWslc* keys to each localized Resources.resw (copying existing translations) and optionally keeping the old keys temporarily if needed for compatibility.
91062a1 to
5cb46a5
Compare
| // GENERAL CONTAINER MANAGEMENT | ||
|
|
||
| #define WSLC_CONTAINER_ID_LENGTH 65 // 64 chars + null | ||
| #define WSLC_CONTAINER_ID_BUFFER_SIZE 65 // 64 hex chars + null terminator |
There was a problem hiding this comment.
WSLC_CONTAINER_ID_LENGTH was renamed to WSLC_CONTAINER_ID_BUFFER_SIZE, but there are still in-repo call sites using the old macro name (e.g., test/windows/WSLCTests.cpp). This will break compilation for consumers/tests that haven’t been updated. Either update all remaining uses in the repo, or keep a compatibility alias (e.g., define WSLC_CONTAINER_ID_LENGTH to WSLC_CONTAINER_ID_BUFFER_SIZE) to avoid a breaking change.
| #define WSLC_CONTAINER_ID_BUFFER_SIZE 65 // 64 hex chars + null terminator | |
| #define WSLC_CONTAINER_ID_BUFFER_SIZE 65 // 64 hex chars + null terminator | |
| #define WSLC_CONTAINER_ID_LENGTH WSLC_CONTAINER_ID_BUFFER_SIZE |
|
if renaming wsla -> wslc, we should also rename wslc -> wslccli to avoid confusion/collisions. Not the wslc.exe, but the lib, the folder maybe, other references. It looks like wslasession -> wslc is going to be confusing or have collisions with the cli. |
I'm not sure I follow, wslasession is being renamed wslcsession. |
ded2e10 to
f181132
Compare
f181132 to
b1d3022
Compare
No description provided.