Version History
The version history of the metadata syntax is given below.
0.18 - 2022-02-27
Added
The condition function
readable(filesystem_path path), which checks if the given path is a readable directory or file.
Changed
The documentation for the version comparison condition functions has been updated to detail the supported version syntax and semantics.
Mentions of GitHub Flavored Markdown have been replaced with CommonMark, as LOOT now uses the latter instead of the former.
Fixed
Support for
not (<expression>)syntax was not properly documented.The documentation for the version comparison functions stated that missing versions would be treated as if they were
0, which was not accurate.
0.17 - 2021-09-24
Added
The
Filedata structure now has adetailkey that takes a string or localised content list.The top-level
preludekey can be used to supply common data structure definitions, and in masterlists its value is replaced by the contents of the masterlist prelude file, if present.Support for parsing inverted metadata conditions (
not (<expression>)).
Changed
The cleaning data structure’s
infokey has been renamed todetailfor consistency.
0.16 - 2020-07-12
Changed
Equality for all metadata data structures is now determined by comparison of all their fields. String comparison is case-sensitive, with the exception of
File’snamefield.
Removed
The
enabledfield has been removed from plugin metadata objects.
0.15 - 2019-11-05
Added
The condition function
is_master(file_path path), which checks if the given file is an installed master plugin.
0.14 - 2018-12-09
Added
The
Groupdata structure now has adescriptionkey that takes a string value.The condition function
product_version(file_path path, version given_version, comparison_operator comparator), which checks against the Product Version field of an executable.
Changed
cleananddirtymetadata are now allowed in regex plugin entries.Location,Message,MessageContentandTagequality comparisons are now case-sensitive.Regular expressions in condition strings now use a modified Perl grammar instead of a modified ECMAScript grammar.
Pluginobjectnamefields still use the modified ECMAScript grammar for regex values. To improve portability and avoid mistakes, it’s best to stick to using the subset of regular expression features that are common to both grammars.
Removed
The change in regular expression grammar means that the following regular expression features are no longer supported in condition strings:
\c<letter>control code escape sequences, use\x<hex>insteadThe
\0null escape sequence, - use\x00insteadThe
[:d:],[:w:]and[:s:]character classes, use[:digit:],[:alnum:]and[:space:]instead respectively.\<number>backreferences(?=<subpattern>)and(?!<subpattern>)positive and negative lookahead
0.13 - 2018-04-02
Added
The
Groupdata structure.The
groupslist to the root of the metadata file format.The
groupkey to the plugin data structure.
Removed
The
priorityfield from the plugin data structure.The
global_priorityfield from the plugin data structure.
0.10 - 2016-11-06
Added
The
cleankey to the plugin data structure.The
global_priorityfield to the plugin data structure.The
many_active()condition function.The
infokey to the cleaning data structure.
Changed
Renamed the
strkey in the localised content data structure totext.The
priorityfield of the plugin data structure now stores values between -127 and 127 inclusive.Regular expressions no longer accept
\as a directory separator:/must now be used.The
file()condition function now also accepts a regular expression.The
active()condition function to also accept a regular expression.Renamed the dirty info data structure to the cleaning data structure.
Removed
The
regex()condition function, as it has been obsoleted by thefile()function’s new regex support.
0.8 - 2015-07-22
Added
The
namekey to the location data structure.The
many("regex")condition function.The documentation now defines the equality criteria for all of the metadata syntax’s non-standard data structures.
Changed
Detection of regular expression plugin entries. Previously, a plugin entry was treated as having a regular expression filename if the filename ended with
\.espor\.esp. Now, a plugin entry is treated as having a regular expression filename if the filename contains one or more of:\*?|.
Removed
Removed the
verkey in the location data structure.
Fixed
The documentation gave the values of the
after,req,inc,tag,urlanddirtykeys as lists, when they have always been sets.
0.7 - 2015-05-20
Added
The message string substitution key, i.e.
sub, in the message data structure.Support for YAML merge keys, i.e.
<<.
Changed
Messages may now be formatted using most of GitHub Flavored Markdown, minus the GitHub-specific features (like @mentions, issue/repo linking and emoji).
0.6 - 2014-07-05
No changes.
0.5 - 2014-03-31
Initial release.