-
Notifications
You must be signed in to change notification settings - Fork 49
Description
Currently, the order that features are executed as part of the container build is alphabetically sorted in the following code, where there is a TODO to implement support for the "installation order" that is part of the devcontainer spec: https://containers.dev/implementors/features/#installation-order
envbuilder/devcontainer/devcontainer.go
Lines 236 to 244 in c727288
// TODO: Respect the installation order outlined by the spec: | |
// https://containers.dev/implementors/features/#installation-order | |
featureOrder := []string{} | |
for featureRef := range s.Features { | |
featureOrder = append(featureOrder, featureRef) | |
} | |
// It's critical we sort features prior to compilation so the Dockerfile | |
// is deterministic which allows for caching. | |
sort.Strings(featureOrder) |
The ask in this issue is to implement support for:
- The
dependsOn
property defined as a part of a Feature’s devcontainer-feature.json.- The
installsAfter
property defined as part of a Feature’s devcontainer-feature.json.- The
overrideFeatureInstallOrder
property in user’s devcontainer.json. Allows users to control the order of execution of their Features.
I wasn't able to find an existing issue tracking this, but let me know if there is! Happy to also provide more context on why this is a useful feature if that helps in prioritizing this. Features with any sort of dependencies are unusable in most cases unless the alphabetical ordering happens to line up.
In the meantime, it would be helpful to have this documented in the way that this PR did for other unsupported features: #219