Skip to content

Merge 'feature/podman' into 'main'#1589

Merged
WardenGnaw merged 2 commits into
mainfrom
feature/podman
Jun 19, 2026
Merged

Merge 'feature/podman' into 'main'#1589
WardenGnaw merged 2 commits into
mainfrom
feature/podman

Conversation

@WardenGnaw

Copy link
Copy Markdown
Member

This PR adds the support for attaching to a podman container with Visual Studio.

WardenGnaw and others added 2 commits June 19, 2026 10:05
…rn (#1579)

* Refactor Docker transport into shared base classes and strategy pattern

Extract shared container transport infrastructure to enable additional
container runtimes without duplicating Docker code.

Key changes:
- `ContainerTransportSettingsBase` shared abstract base eliminates
  duplication in transport settings (exe name, host flag, command format)
- `IContainerDiscoveryStrategy` interface with Docker implementation
  keeps runtime-specific logic out of the ViewModel
- `ContainerRuntimeType` enum threaded through port picker ->
  ConnectionManager -> dialog for future extensibility
- XAML bindings changed from static resources to ViewModel properties
  so labels can vary per runtime

No behavioral changes - Docker works exactly as before.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review feedback: remove unused field, add type check

- Remove unused _runtimeType field from ContainerPickerViewModel
- Add explicit type check in DockerExecutionManager.CreateExecSettings
  instead of unsafe cast

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review: seal classes, use OrdinalIgnoreCase, remove defaults

- Seal DockerDiscoveryStrategy, DockerCommandSettings,
  DockerContainerTransportSettings, DockerExecSettings, DockerCopySettings
- Use StringComparison.OrdinalIgnoreCase for Windows check in
  AssignPlatforms instead of ToTitleCase + Contains
- Remove default parameter values for ContainerRuntimeType to force
  explicit runtime selection by callers

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Hoist CultureInfo allocation outside loop

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add Podman container support for Attach to Process

Adds Podman as a container runtime option in the Attach to Process dialog,
enabling developers to discover and debug processes inside Podman containers.

- New PodmanConnection, PodmanContainerInstance, PodmanDiscoveryStrategy,
  PodmanExecutionManager, PodmanHelper, PodmanPortPicker, PodmanPortSupplier,
  and PodmanTransportSettings classes
- Renamed DockerContainerInstance to ContainerInstance (shared by both runtimes)
- Renamed DockerHostPrefixRegex/DockerHostPrefix to HostPrefixRegex/HostPrefix
- Registered Podman port supplier and CLSID in pkgdef files
- Added ContainerRuntimeType.Podman enum value
- Added Podman case in ContainerPickerViewModel and ConnectionManager

NOTE: The Podman port supplier also needs to be registered in vsdbg's
VsIntegration.pkgdef for full VS integration.

* Address PR comments
@WardenGnaw WardenGnaw merged commit 97dd653 into main Jun 19, 2026
6 checks passed
@WardenGnaw WardenGnaw deleted the feature/podman branch June 19, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants