[AppStream] AppStream 0.12.7 released!

Matthias Klumpp matthias at tenstral.net
Sun Jun 16 21:11:41 UTC 2019


Hi!
A new feature-packed AppStream release is available. Please test it thoroughly!
This release deprecates some API, but everything should still work as
before, so you should not experience issues.

This release contains a complete rework of the AppStream metadata pool
(AsPool) which will now offload its contents to a mmap'ed on-disk
cache by default, only loading pieces into memory when they are
actually used.
This reduces memory usage of libappstream even more than before, and
makes it suitable to use libappstream in background daemons, which is
already the case in e.g. KDE Plasma.
The GVariant representation of AsComponent has been dropped, since it
was not public API anyway. Instead, XML is now parsed in more places,
which fortunately is a really efficient process.

Search has also been improved, with AppStream returning no results on
invalid search queries, and all results on overly broad search queries
(instead of rturning everything on invalid queries as well).

Additionally, there were lots of tweaks to the specification and a few
bugfixes in the metadata validator.

As always, tarballs are available here:
https://www.freedesktop.org/software/appstream/releases/

Cheers,
    Matthias

Version 0.12.7
~~~~~~~~~~~~~~
Released: 2019-06-16

Notes:
 * This release changes the way AsPool caches components and will also
   permanently keep components in an LMDB-based cache.
   Additionally, the GVariant AsComponent serialization was removed.

Features:
 * Depend on LMDB (Matthias Klumpp)
 * tests: Test pool cache and XML read performance separately (Matthias Klumpp)
 * Improvements to data caching and fulltext search (Matthias Klumpp)
 * Add new LMDB based component cache (Matthias Klumpp)
 * cache: Implicitly hash keys if they are too long for the database
(Matthias Klumpp)
 * cache: Implement all supported search modes (Matthias Klumpp)
 * cache: Implement various performance optimizations and helpers
(Matthias Klumpp)
 * cache: Allow switch to nosync mode, make insertions threadsafe
(Matthias Klumpp)
 * Refactor component pool to make use of the mmap'ed caches by
default (Matthias Klumpp)
 * Don't limit term length in user search queries (Matthias Klumpp)
 * Ignore one-letter search terms (Matthias Klumpp)
 * pool: Mask removed components in readonly caches so they can not be
queried (Matthias Klumpp)
 * Remove component GVariant serialization (Matthias Klumpp)
 * cache: Use binary representations for cache values (Matthias Klumpp)
 * cache: Always refine launchable entries, to make them searchable
(Matthias Klumpp)
 * Make component scope API public (Matthias Klumpp)
 * Handle LicenseRef URLs explicitly when extracing a license URL
(Matthias Klumpp)
 * Update static data (Matthias Klumpp)
 * tests: Update perf test with test for the new cache implementation
(Matthias Klumpp)
 * its: Add "translatable" option in metainfo.its (fujiwarat)

Specification:
 * Add a note about not dropping .desktop suffix from existing IDs
(Kalev Lember)
 * spec: clarify <translation/> purpose (Kamil Páral)
 * docs: Explicitly rule out nested lists (Marius Vollmer)
 * docs: Add link to project page to specification abstract (Matthias Klumpp)
 * spec: Clarify format of the appstream: URI (Matthias Klumpp)
 * spec: Clarify how to denote proprietary licenses (Matthias Klumpp)

Bugfixes:
 * tests: Fix potential wrong output when two tests fail in parallel
(Matthias Klumpp)
 * validator: Allow some top-level tags to be empty (Matthias Klumpp)
 * Only match all things for broad queries, for invalid ones return
nothing (Matthias Klumpp)
 * Determine system cache age correctly and don't needlessly refresh
it (Matthias Klumpp)
 * Never attempt to load the system cache when it is not needed
(Matthias Klumpp)
 * Assume "unknown" distribution ID by default (if /etc/os-release is
missing) (Matthias Klumpp)
 * cache: Ensure previous cache is closed before opening a new one
(Matthias Klumpp)
 * Put test data in alphabetical order (Robert Ancell)
 * Generate XML and YAML in alphabetical order (Robert Ancell)

-- 
I welcome VSRE emails. See http://vsre.info/


More information about the AppStream mailing list