Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple Architectures in one manifest #132

Closed
denelon opened this issue May 12, 2020 · 8 comments
Closed

Multiple Architectures in one manifest #132

denelon opened this issue May 12, 2020 · 8 comments
Labels
Issue-Feature This is a feature request for the Windows Package Manager client.

Comments

@denelon
Copy link
Contributor

denelon commented May 12, 2020

Description of the new feature/enhancement

The client should support manifests with multiple architectures.

Proposed technical implementation details (optional)

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.

@denelon denelon added the Issue-Feature This is a feature request for the Windows Package Manager client. label May 12, 2020
@richlander
Copy link
Member

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"
         }
      }
   ]
}

@denelon
Copy link
Contributor Author

denelon commented May 15, 2020

The client should also be able to determine packages that are not supported with the current architecture and not display them to the user.

@soapdog
Copy link

soapdog commented May 19, 2020

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).

@denelon denelon added this to Spec Needed ❓ in Client-Specifications via automation May 23, 2020
@denelon denelon added this to the Package Manager Backlog milestone May 23, 2020
@denelon denelon modified the milestones: Package Manager Backlog, Package Manager v0.8.x Aug 19, 2020
sangam added a commit to sangam/winget-pkgs that referenced this issue Dec 31, 2020
Current Manifest Spec do not support multiple architectures in a single manifest

Please refer to microsoft/winget-cli#132
@jedieaston
Copy link
Contributor

I know this is mostly done now, but one request: can there be a flag for specifying what architecture you want to install in winget install? It would be really handy for testing x86 builds of software on x64.

@denelon
Copy link
Contributor Author

denelon commented Apr 27, 2021

I know this is mostly done now, but one request: can there be a flag for specifying what architecture you want to install in winget install? It would be really handy for testing x86 builds of software on x64.

#906

@jedieaston
Copy link
Contributor

Thanks!

@denelon
Copy link
Contributor Author

denelon commented May 3, 2021

The 1.0 manifest schema and 0.3-Preview client supports multiple architectures in one manifest.

@denelon denelon closed this as completed May 3, 2021
@denelon denelon modified the milestones: Package Manager v0.8.x, v1.0 - Windows Package Manager May 4, 2021
@denelon denelon added this to Done in Client-Current May 6, 2021
@denelon denelon moved this from Spec Needed ❓ to Spec Accepted! 🎉 in Client-Specifications Oct 1, 2021
@denelon denelon removed this from Done in Client-Current Jul 11, 2022
@gerardog
Copy link
Contributor

gerardog commented Sep 6, 2022

People googling how to do this. Use WingetCreate, and architecture: neutral

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Feature This is a feature request for the Windows Package Manager client.
Projects
None yet
Development

No branches or pull requests

5 participants