Azure / Azure/azure-dev

Support side-by-side (SxS) dependencies for extensions

Open
#6,238 1 comment 0 reactions 1 assignee Claimed by @tg-msft View on GitHub
area/extensions dependencies feature
Dominant language
Go
Stars
569
Forks
364
Avg merge
2d 19h
Merged PRs (30d)
136

Description

## Description

Investigate and implement support for side-by-side (SxS) dependencies to handle scenarios where multiple extensions depend on shared dependencies or require different versions of the same extension.

## Problem Statement

Diamond dependency scenario: Extension A and Extension B both depend on Extension C, but require different versions. Currently, this creates conflicts.

## Acceptance Criteria

### Investigation

- [ ] Research scenarios where SxS dependencies are needed
- [ ] Document diamond dependency patterns in extension ecosystem
- [ ] Analyze impact on extension loading and runtime
- [ ] Review how other package managers handle SxS dependencies

### Proposed Solution

- [ ] Design resolution strategy for dependency conflicts
- [ ] Determine if SxS is supported for APIs, commands, or both
- [ ] Consider: Support SxS for APIs but only latest for commands
- [ ] Document limitations and tradeoffs

### Implementation

- [ ] Implement dependency resolution algorithm
- [ ] Update extension loading to support SxS where appropriate
- [ ] Handle namespace conflicts for commands
- [ ] Add validation to detect unsupported SxS scenarios
- [ ] Update extension manifest schema if needed

### Documentation

- [ ] Document SxS support and limitations
- [ ] Provide guidance for extension authors on dependencies
- [ ] Include troubleshooting for dependency conflicts

## Benefits

- Enables richer extension ecosystem with shared libraries
- Prevents dependency conflicts from blocking extension installation
- Provides flexibility for extension versioning
- Supports gradual migration scenarios

## Parent Issue

- #5767 (Extension enhancements EPIC)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.