I've seen several approaches in metadata.json
, some only specifying whole versions, such as "3.22" while some with more specific such as "3.22.1". I had an issue opened where I had "3.24", "3.24.1" and "3.24.2" but the extension failed to work in "3.24.3" until I specified it.
Is necessary to list all specific "point" versions of gnome-shell supported, or only if at least one "point" version is specified does gnome-shell care?
Starting with GNOME 40, each stable release is simple increment of 1
and odd-numbers are no longer unstable (eg. 40
, 41
, 42
) and minor point releases are ignored.
Up to version 3.38
, the version check was a little more complex:
/**
* versionCheck:
* @required: an array of versions we're compatible with
* @current: the version we have
*
* Check if a component is compatible for an extension.
* @required is an array, and at least one version must match.
* @current must be in the format <major>.<minor>.<point>.<micro>
* <micro> is always ignored
* <point> is ignored if <minor> is even (so you can target the
* whole stable release)
* <minor> and <major> must match
* Each target version must be at least <major> and <minor>
*/