Support side-by-side (SxS) dependencies for extensions
- 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
Assessment
This issue has not been assessed yet.