Proposal: Add localFeaturesRoot for flexible local feature paths #674
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This proposal addresses Issue #671 - making it easier to reuse local Features in dev containers.
Problem
Users who want to manage a collection of their own dev container configurations and Features in a single repository face significant friction. The current specification requires local Features to be stored within the
.devcontainer/folder at the project workspace folder root, which makes reusing Features across different dev container configurations difficult.Solution
This PR introduces a new
localFeaturesRootproperty fordevcontainer.jsonthat allows users to specify a custom base directory for resolving local Feature paths.Property Definition
localFeaturesRootdevcontainer.json) that serves as the base for resolving local Feature paths. Defaults to.(current behavior).Example Usage
{ "name": "My Project", "image": "mcr.microsoft.com/devcontainers/base:ubuntu", "localFeaturesRoot": "../../shared-features", "features": { "./my-feature": {} // Resolves to shared-features/my-feature } }Changes Made
localFeaturesRootproperty to the referencelocalFeaturesRootproperty to the JSON schemaBackward Compatibility
This change is fully backward compatible:
localFeaturesRootproperty is optionalImplementation Notes
This is a specification-only proposal. The actual implementation would need to be done in the devcontainers/cli repository.
Fixes #671