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
There was a problem hiding this comment.
I'm just going to rename the existing team after I merge this.
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. |
f181132 to
b1d3022
Compare
b1d3022 to
99419b0
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 123 out of 125 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
src/windows/wslc/services/ContainerService.cpp:140
- CreateInternal takes an
IProgressCallback* callbackparameter but it’s never used; it’s also shadowed by a localPullImageCallback callbackvariable below. This makes it impossible for callers to receive progress events and is confusing. Consider renaming the local variable and wiring the passed-in callback through toImageService::Pull(or remove the unused parameter if it’s not needed).
7c140db to
77a9bd6
Compare
No description provided.