1851 Commits
Author SHA1 Message Date
Oliver Hamlet 31c478a2fc Update version and changelog for v0.17.1 release 2021-11-13 16:47:23 +00:00
Oliver Hamlet b74da11fc6 Don't try to get the address of the zeroth element in an empty array
It happens to behave nicely with MSVC's RelWithDebInfo, but it's undefined behaviour, and GCC (I don't know what parameters were used) errors due to a bounds-check assertion failure.
2021-10-12 21:11:25 +01:00
Oliver Hamlet e8414a12cf Update version and changelog for v0.17.0 release 2021-09-24 22:04:22 +01:00
Oliver Hamlet 3cee54de04 Add a Message constructor that takes a SimpleMessage 2021-09-23 13:31:35 +01:00
Oliver Hamlet e5a229e09f Move file versioning functions out of DatabaseInterface
They don't need to be member functions, and needing a pointer to an
instance of that interface is awkward.

The function names have also changed to reflect that they're not
specific to the masterlists.
2021-09-23 13:31:34 +01:00
Oliver Hamlet 5ce0df0f03 Add support for masterlist prelude files
This allows common metadata to be shared across masterlists in a
'prelude' YAML file that is then injected into a masterlist when it is
loaded. Masterlist metadata can then reference anchors within the
prelude to make use of those common metadata.

The prelude file will be version controlled in a separate Git
repository, so the masterlist update functions also apply to managing
its versioning.
2021-09-23 13:31:34 +01:00
Oliver Hamlet f1d219ac6e Refactor Git-related functions
There's not much point having a Masterlist class with only three static
member functions. This refactoring also helps break the association
between the Git-related functions and masterlists, which will help when
implementing support for prelude files.
2021-09-23 13:31:32 +01:00
Oliver Hamlet 08acdb9c65 Rename MasterlistInfo to FileRevision
To reflect that it will soon be used to provide info for other
version-controlled files. Also rename its revision_id and
revision_date fields to remove the revision_ prefixes.
2021-09-23 13:30:39 +01:00
Oliver Hamlet be30bc500f Remove masterlist update loading and rollback
LOOT's ability to roll back to a working masterlist version hasn't been
exercised in years, as our CI testing has gotten better at catching
issues before they reach users.

Coupling updating a masterlist with loading it also complicates the
introduction of a common prelude, so given the very low usefulness of
the functionality it's best to drop it entirely .
2021-08-05 19:13:37 +01:00
Oliver Hamlet 065cf0252b Update Google Test to v1.11.0
v1.10.0 deprecated *TEST_CASE* in favour of *TEST_SUITE*.
2021-07-19 19:56:54 +01:00
Oliver Hamlet a09c9f73ac Add early check for plugin graph cycles
Check after adding group edges, as after that LOOT only adds edges if
they don't cause a cycle. Adding tie-break edges is the step that takes
longest and scales the worst (by far), so failing before that would
provide a much better user experience.
2021-07-19 19:21:30 +01:00
Oliver Hamlet 4faab46069 Make MessageContent::Choose() return an optional
And propagate this through the File, Message and PluginCleaningData APIs
that call it.
2021-05-22 22:15:32 +01:00
Oliver Hamlet e4841ba791 Add missing PluginCleaningData tests 2021-05-22 19:26:29 +01:00
Oliver Hamlet a9a71998f1 Rename the 'info' property in cleaning data objects to 'detail'
To be consistent with the new property in File objects, as they share
the same type and sematics.
2021-05-22 19:26:29 +01:00
Oliver Hamlet fc22d3d7a4 Add a "detail" property to File objects
This property can be used to provide detail about a requirement or
incompatibility that can be displayed in the error message displayed
for the file (if one is displayed).
2021-05-22 19:26:29 +01:00
Oliver Hamlet 4f75be3d81 Make PluginInterface::GetHeaderVersion() return an optional
While the value could actually be NaN, that's also what esplugin uses to
signal that the version could not be found, and either way a NaN value
is useless.
2021-05-08 21:46:25 +01:00
Oliver Hamlet 48d5c87d96 Remove deprecated API functions 2021-05-08 21:14:10 +01:00
Oliver Hamlet 2ffdac5b5f Set version and changelog for v0.16.3 2021-05-06 21:41:49 +01:00
Oliver Hamlet 897a303ec7 Deprecate PluginInterface::IsLightMaster() and PluginInterface::IsValidAsLightMaster()
In favour of IsLightPlugin() and IsValidAsLightPlugin() respectively.
The new functions are identical to the old besides their names, which
now more clearly indicate that plugins can be light without being
masters.
2021-05-06 21:03:02 +01:00
Oliver Hamlet cd978bb215 Compare language codes in MessageContent::Choose()
If there is no exact match, compare language codes so that a more
generic match is preferred over just returning the English content.

This means that if a locale code is given, Choose() will also look for
the locale's language code (but will not match another locale with the
same language code), and if a language code is given, Choose() will also
look for a locale with that language code.
2021-03-28 22:31:14 +01:00
Oliver Hamlet 12ed2de739 Remove std::codecvt_utf8_utf16 tests
It's deprecated in C++17, and causes compilation errors by default in
MSVC 2019.
2021-03-28 20:51:36 +01:00
Oliver Hamlet 505106d602 Replace std::filesystem::canonical usage
Unlike on Windows, it doesn't return the "true" case of a path on Linux
when case folding is enabled. Using NormalizeFilename() is more
consistent but theoretically less accurate, though all currently
hardcoded plugins are known to use ASCII filenames so there is no
practical downside.
2021-03-25 15:10:35 +00:00
Oliver Hamlet 639e067079 Set version number and changelog for v0.16.2 2021-02-13 21:19:03 +00:00
Oliver Hamlet d8c9b9839a Set version number and changelogs for v0.16.1 2020-08-22 12:46:19 +01:00
Oliver Hamlet 5c2dd2167d Migrate Windows CI to GitHub Actions
AppVeyor is breaking my builds because I can't create any more artifacts
because I've hit the limit, but there's no way to have it not store
artifacts or to manually delete artifacts...

This also updates Boost from 1.67.0 to 1.69.0 due to differences between
the AppVeyor and GitHub Actions build environments.
2020-08-14 23:39:59 +01:00