The client should support manifests with multiple architectures.
I should be able to have x86, x64, 32bit, 64bit, and ARM installers available from the same manifest (assuming the version of the package is the same). The client should chose the appropriate installer based on the machine's architecture.
Here is the Docker model for that:
PS C:\Users\rich> docker manifest inspect mcr.microsoft.com/dotnet/core/sdk:3.1
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1800,
"digest": "sha256:d706e0545b75615ecd864c6af237cc1fc2ca9001ed25cdd84b83fdb3923e9e54",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1800,
"digest": "sha256:7f99df3b62730033e2fa9fb1a4e0f560c5156892e073c90a2ddec61545a823af",
"platform": {
"architecture": "arm",
"os": "linux",
"variant": "v7"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1800,
"digest": "sha256:18cd6836407c8274a9abdacdfce69fcb7ef0cfda8690b674fe54447da4c4f1ab",
"platform": {
"architecture": "arm64",
"os": "linux",
"variant": "v8"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 2173,
"digest": "sha256:37ef3691ed2fe12dc94869bfc93e5935aee994d1b5c0c8904dc875bc25481a32",
"platform": {
"architecture": "amd64",
"os": "windows",
"os.version": "10.0.17763.1158"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 1963,
"digest": "sha256:0d9b44c67fc39d07061ee9cdbc44e5297be445d10a224bf25ed8c5b13d8ec897",
"platform": {
"architecture": "arm",
"os": "windows",
"os.version": "10.0.17763.1158"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 2174,
"digest": "sha256:72a6096638543d3306ab42ab0344fd255775d169b5c2b3beb0f0c8e7b2430c54",
"platform": {
"architecture": "amd64",
"os": "windows",
"os.version": "10.0.18362.778"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 2174,
"digest": "sha256:1ac90924b883e3c639f9e001a02618d2adda9711f1896736c1b64cc8bdc5743e",
"platform": {
"architecture": "amd64",
"os": "windows",
"os.version": "10.0.18363.778"
}
}
]
}
The client should also be able to determine packages that are not supported with the current architecture and not display them to the user.
The client should also be able to determine packages that are not supported with the current architecture and not display them to the user.
In case of Windows on ARM, it would be great if x86 apps were also listed (maybe with some warning label).
Most helpful comment
The client should also be able to determine packages that are not supported with the current architecture and not display them to the user.