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

Allow metadata for different app stores #467

Closed
ingokloecker opened this issue Feb 28, 2023 · 1 comment
Closed

Allow metadata for different app stores #467

ingokloecker opened this issue Feb 28, 2023 · 1 comment

Comments

@ingokloecker
Copy link
Contributor

I would like the AppStream spec to support (or maybe just allow) any metadata that is needed for the different app stores including the proprietary ones. Some of those app stores, e.g. Microsoft Store, require very specific information which makes little sense for other stores, e.g. the store ID of the application and logos with special dimensions. Moreover, we may want to use different metadata for the Microsoft Store or F-Droid or Google Play than in general (Linux) app stores, e.g. Windows-specific or Android-specific screenshots.

To solve this I propose to support/allow something like this (in <component>):

  <stores>
    <store>
      <id>com.microsoft</id>
      <applicationId>9NWMW7BB59HW</applicationId>
      <screenshots>
        <screenshot>
          <caption>Kate with some Git based project</caption>
          <image>https://cdn.kde.org/screenshots/kate/kate-windows1.png</image>
        </screenshot>
      </screenshots>
      <images>
        <image>
          <imageType>StoreLogo9x16</imageType>
          <url>apps/kate/icons/windows/storelogo9x16.png</url>
        </image>
        <image>
          <imageType>StoreLogoSquare</imageType>
          <url>apps/kate/icons/windows/storelogosquare.png</url>
        </image>
        <image>
          <imageType>Icon</imageType>
          <url>apps/kate/icons/windows/300-apps-kate.png</url>
        </image>
      </images>
    </store>
  </stores>

Each <store> can contain store-specific metadata and overwrite metadata specified in <component>. In the example, <applicationId> and <images> are store-specific entries while the <screenshots> in <store> overwrite the <screenshots> in <component>. This is a more general solution than #390 because it allows any component-metadata to be overwritten for specific platforms (provided there's a relation between platforms and stores).

Additionally, I'd a discrete list of features as proposed in #388. Alternatively, we could add this to the <store> entry, so that the features can be added natively to the Microsoft Store for our apps.

The rationale for adding this to AppStream is that we could then generate the metadata needed for a specific store from the app's AppStream metadata (as we already do, but some metadata is missing in AppStream). Consumers of AppStream (except those explicitly using the store-data) should ignore anything in <stores>. Linters may support <stores>. In particular, they could lint tags that overwrite common component tags. But they should ignore any tags unknown to them.

@ximion
Copy link
Owner

ximion commented Oct 3, 2023

Sorry, but metadata for different app stores is out of scope for AppStream. We don't control them and can't play catch-up with their features, You can use the custom tag though to add some information that you may need, and if there is something that is generally useful, we could add that to AppStream proper, as a generic feature.

@ximion ximion closed this as not planned Won't fix, can't repro, duplicate, stale Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants