Skip to content

Commit 53ee019

Browse files
authored
Force deterministic order for 'outdated' command (#681)
1 parent 7d0d406 commit 53ee019

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/spec-configuration/containerFeaturesConfiguration.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,7 @@ export async function loadVersionInfo(params: ContainerFeatureInternalParams, co
584584

585585
const { lockfile } = await readLockfile(config);
586586

587-
const features: Record<string, any> = {};
587+
const resolved: Record<string, any> = {};
588588

589589
await Promise.all(userFeatures.map(async userFeature => {
590590
const userFeatureId = userFeature.userFeatureId;
@@ -610,7 +610,7 @@ export async function loadVersionInfo(params: ContainerFeatureInternalParams, co
610610
wanted = wantedFeature?.version;
611611
}
612612
}
613-
features[userFeatureId] = {
613+
resolved[userFeatureId] = {
614614
current: lockfileVersion || wanted,
615615
wanted,
616616
wantedMajor: wanted && semver.major(wanted)?.toString(),
@@ -621,7 +621,13 @@ export async function loadVersionInfo(params: ContainerFeatureInternalParams, co
621621
}
622622
}));
623623

624-
return { features };
624+
// Reorder Features to match the order in which they were specified in config
625+
return {
626+
features: userFeatures.reduce((acc, userFeature) => {
627+
acc[userFeature.userFeatureId] = resolved[userFeature.userFeatureId];
628+
return acc;
629+
}, {} as Record<string, any>)
630+
};
625631
}
626632

627633
async function findOCIFeatureMetadata(params: ContainerFeatureInternalParams, manifest: ManifestContainer) {

0 commit comments

Comments
 (0)