Proposal: Add localFeaturesRoot for flexible local feature paths#674
Open
tennisleng wants to merge 1 commit intodevcontainers:mainfrom
Open
Proposal: Add localFeaturesRoot for flexible local feature paths#674tennisleng wants to merge 1 commit intodevcontainers:mainfrom
tennisleng wants to merge 1 commit intodevcontainers:mainfrom
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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