Skip to content

Implement feature installation order and enhance test suite#500

Open
prulloac wants to merge 9 commits intocoder:mainfrom
prulloac:main
Open

Implement feature installation order and enhance test suite#500
prulloac wants to merge 9 commits intocoder:mainfrom
prulloac:main

Conversation

@prulloac
Copy link

@prulloac prulloac commented Mar 9, 2026

This pull request adds support for the installsAfter (soft dependency) and dependsOn (hard dependency) fields to the devcontainer features specification, and introduces comprehensive internal tests to validate feature installation order logic, including handling of dependency resolution, override semantics, and cycle detection. Documentation has also been updated to reflect the new support status for these fields.

Feature dependency enhancements:

  • Added installsAfter (soft ordering hint) and dependsOn (hard dependency) fields to the Spec struct in features.go, enabling features to declare installation order preferences and requirements.

Testing and validation:

  • Introduced a new internal test suite in install_order_internal_test.go to thoroughly test the dependency and installation order resolution logic, covering cases such as ambiguous references, override precedence, cycle detection, and complex dependency trees.

Documentation updates:

  • Updated docs/devcontainer-spec-support.md to indicate support for the overrideFeatureInstallOrder, dependsOn, and installsAfter fields, replacing the previous "unsupported" status. [1] [2]

Loading
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