Guidelines and HOWTOs/AppStream: Difference between revisions
m use value tags |
m use value tags |
||
Line 85: | Line 85: | ||
=== Communication platforms === | === Communication platforms === | ||
* <code><KDE::matrix/></code> Matrix channel identifier (optional). | * <code><value key="KDE::matrix"/></code> Matrix channel identifier (optional). |
Revision as of 13:38, 10 June 2019
Quick guide on how to AppStream your app. For a more in-depth overview hop on over to Techbase.
Checklist
Assuming your software is named "foo"...
- Make sure your desktop file is reverse-domain-notation i.e. org.kde.foo
- Your desktop file should be org.kde.foo.desktop. This is also your desktop-id, so whenever you may need that. It's basically your file name.
- If you have a D-Bus service ... make sure that your D-Bus service name matches this or change your desktop file to match the service address (whichever seems more appropriate)
- The name part 'foo' MUST be the name of your binary. If it should be different you need to either use KAboutData::setDesktopFileName() or, if not using KAboutData, QGuiApplication::setDesktopFileName() to set the desktop file name you are using for the app's runtime metadata
- Create a file org.kde.foo.appdata.xml in your source tree
- Paste the template you can find below (see section Template) into that file
- Make sure you replaced all place holders from the template
- Take some screenshots and put them in the git repo kde:websites/product-screenshots (note the README.md)
- Add the CDN links to your screenshots to the appdata.xml file.
- Install the file via CMake (KDE_INSTALL_METAINFODIR is defined by KDEInstallDirs from extra-cmake-modules)
install(FILES org.kde.foo.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
- Validate your appdata using the appstreamcli helper
appstreamcli validate org.kde.foo.appdata.xml
- Validate your installed tree using the helper in your build directory
make make install DESTDIR=root appstreamcli validate-tree root rm -r root
- If all looks good commit and push
- If you have any questions submit a review and make sure to subscribe sitter and mak
Template
Carefully review all fields and replace all $VARIABLES ($NAME with your application name as seen in the reverse domain notation). Where appropriate the fields have URLs of respective AppStream documentation to help you find out what to put there.
<?xml version="1.0" encoding="utf-8"?> <component type="desktop-application"> <id>org.kde.$NAME</id> <metadata_license>FSFAP</metadata_license> <project_license> see https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-metadata_license </project_license> <name>$NAME</name> <summary> see https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-summary </summary> <description> <p> see https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description </p> <p>And see.</p> <p>And see:</p> <ul> <li>this</li> <li>that</li> </ul> </description> <url type="homepage">https://www.kde.org</url> <url type="bugtracker">https://bugs.kde.org/enter_bug.cgi?format=guided&product=$YOURPRODUCTNAME</url> <url type="donation">https://www.kde.org/community/donations/?app=$YOURBINARYNAME</url> <launchable type="desktop-id">org.kde.$NAME.desktop recommended, see https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-launchable </launchable> <screenshots> <screenshot type="default"> <image> see https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-screenshots Central hosting for uploading at https://phabricator.kde.org/source/websites-product-screenshots/ Central URL to use here https://cdn.kde.org/screenshots/... </image> </screenshot> </screenshots> <provides> <binary>$YOURBINARYNAME</binary> </provides> <project_group>KDE</project_group> </component>
KDE customs tags
AppStream allow customs tags (see https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-custom).
Here is a temporary proposal (don't use it yet) for some custom tags that are then displayed in kde.org/applications.
Other operating systems
Use this than your KDE applications is distributed in a third-party store. Please only link to stable release. All these tags are optional.
<value key="KDE::store_steam"/>
Link to the Steam Store page.<value key="KDE::store_windows"/>
Link to the Windows Store page.<value key="KDE::store_fdroid"/>
'F-Droid' store identifier (for example for KDE Connect, the url is: https://f-droid.org/en/packages/org.kde.kdeconnect_tp/, then the identifier is org.kde.kdeconnect_tp)<value key="KDE::store_play"/>
'Play Store' store identifier (for example for KDE Connect, the url is: https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp, then the identifier is org.kde.kdeconnect_tp)<value key="KDE::macos_download"/>
Link to a MacOS installer.
Communication platforms
<value key="KDE::matrix"/>
Matrix channel identifier (optional).