One of the things we discussed at this year’s Akademy conference is making AppStream work on Kubuntu.
On Debian-based systems, we use a YAML-based implementation of AppStream, called “DEP-11”. DEP-11 exists for historical reasons (the DEP-11 YAML format was a superset of AppStream once) and because YAML, unlike XML, is one accepted file format by the Debian FTPMasters team, who we want to have on board when adding support for AppStream.
So I’ve spent the last few days on setting up the DEP-11 generator for Kubuntu, as well as improving it greatly to produce more meaningful error messages and to generate better output. It became a bit slower in the process, but the greatly improved diagnostics data is worth it.
For example, maintainers of Debian packages will now get a more verbose explanation of issues found with metadata in their packages, making them easier to fix for people who didn’t get in contact with AppStream yet.
At time, we generate AppStream metadata for Tanglu, Kubuntu and Debian, but so far only Tanglu makes real use of it by shipping it in a .deb package. Shipping the data as package is only a workaround though, for a proper implementation, the data will be downloaded by Apt. To achieve that, the data needs to reach the archive first, which is something that I can hopefully discuss and implement with the FTPMasters team of Debian at this year’s Debconf.
When this is done, the new metadata will automatically become available in tools like GNOME-Software or Muon Discover.
How can I see if there are issues with my package?
The dep11-generator tool will return HTML pages to show both the extracted metadata, as well as issues with it.
You can find the information for the respective distribution here:
Each issue tag will contain a detailed explanation of what went wrong. Errors generally lead to ignoring the metadata, so it will not be processed. Warnings usually concern things which might reduce the amount of metadata or make it less useful, while Info-type hints contain information on how to improve the metadata or make it more useful.
Can I use the data already?
Yes, you can. You just need to place the compressed YAML files in /var/cache/app-info/yaml and the icons in /var/cache/app-info/icons/<suite>-<component>/<size>, for example: /var/cache/app-info/icons/jessie-amd64/64×64
I think I found a bug in the generator…
In that case, please report the issue against the appstream-dep11 package at Debian, or file an issue at Github..
The only reason why I announce this feature now is to find remaining generator bugs, before officially announcing the feature on debian-devel-announce.
When will this be officially announced?
I want to give this feature a little bit more testing, and ideally have the integration into the archive ready, so people can see how the metadata looks like when rendered in GNOME-Software/Discover. I also want to write a bit more documentation to help Debian developers and upstreams to improve their metadata.
Ideally, I also want to incorporate some feedback at Debconf when announcing full AppStream support in Debian. So take all the stuff you’ve read above as a little sneak peek 😉
I will also give a talk at Debconf, titled “AppStream, Limba, XdgApp – Where we are going.” The aim of this talk is to give an insight i tnto the new developments happening in the software distribution area, and what the goal of these different projects is (the talk should give an overview of what’s in the oven and how it will impact Debian). So if you are interested, please drop by 🙂 Maybe setting up a BOF would also be a good idea.
5 thoughts on “AppStream/DEP-11 for everyone! (beta!)”
When do you plan to present / discuss this at DebConf ?
I added a link to my talk to the article. Since the aim of the talk is to give an overview and highlight the connections between the projects, maybe having a BOF (or multiple, separating AppStream from the other stuff) to go into detail makes sense.
Too bad I’m arriving only the 18th, but maybe we’ll have the chance to talk to each-other later.
On Debian-based systems, we use a YAML-based implementation of AppStream, called “DEP-11?