diff --git a/src/spec-configuration/containerFeaturesOCI.ts b/src/spec-configuration/containerFeaturesOCI.ts index 8fe25416..de30b9ef 100644 --- a/src/spec-configuration/containerFeaturesOCI.ts +++ b/src/spec-configuration/containerFeaturesOCI.ts @@ -15,7 +15,7 @@ export function tryGetOCIFeatureSet(output: Log, identifier: string, options: bo value: options }; - const userFeatureIdWithoutVersion = originalUserFeatureId.split(':')[0]; + const userFeatureIdWithoutVersion = featureRef.resource; let featureSet: FeatureSet = { sourceInformation: { type: 'oci', diff --git a/src/spec-configuration/containerFeaturesOrder.ts b/src/spec-configuration/containerFeaturesOrder.ts index 096cd0c5..f1f59976 100644 --- a/src/spec-configuration/containerFeaturesOrder.ts +++ b/src/spec-configuration/containerFeaturesOrder.ts @@ -49,7 +49,7 @@ export function computeInstallationOrder(features: FeatureSet[]) { feature, before: new Set(), after: new Set(), - })).reduce((map, feature) => map.set(feature.feature.sourceInformation.userFeatureId.split(':')[0], feature), new Map()); + })).reduce((map, feature) => map.set(feature.feature.sourceInformation.userFeatureIdWithoutVersion || feature.feature.sourceInformation.userFeatureId, feature), new Map()); let nodes = [...nodesById.values()]; @@ -124,7 +124,7 @@ export function computeInstallationOrder(features: FeatureSet[]) { const missing = new Set(nodesById.keys()); for (const feature of orderedFeatures) { - missing.delete(feature.sourceInformation.userFeatureId.split(':')[0]); + missing.delete(feature.sourceInformation.userFeatureIdWithoutVersion || feature.sourceInformation.userFeatureId); } if (missing.size !== 0) { diff --git a/src/spec-node/collectionCommonUtils/packageCommandImpl.ts b/src/spec-node/collectionCommonUtils/packageCommandImpl.ts index 2be6ace0..b51963ff 100644 --- a/src/spec-node/collectionCommonUtils/packageCommandImpl.ts +++ b/src/spec-node/collectionCommonUtils/packageCommandImpl.ts @@ -135,7 +135,7 @@ async function addsAdditionalTemplateProps(srcFolder: string, devcontainerTempla templateData.type = type; templateData.fileCount = (await recursiveDirReader.default(srcFolder)).length; - templateData.featureIds = config.features ? Object.keys(config.features).map((k) => k.split(':')[0]) : []; + templateData.featureIds = config.features ? Object.keys(config.features).map((k) => k.split(':').slice(0, -1).join(':')) : []; await writeLocalFile(devcontainerTemplateJsonPath, JSON.stringify(templateData, null, 4));