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.
When display_ is an empty string, GetDisplayName() returns name_, but
name_'s value might contain Markdown special characters, and
GetDisplayName() is supposed to return a Markdown string, though this
was poorly documented.
Unlike the other metadata classes, they were only comparing plugin names
not full object equality. Checking full object equality isn't very
useful, so instead the operators have been replaced by a new
NameMatches() method that takes a non-regex plugin name string.
- Group equality now compares all fields
- All other comparison operators are now overridden for Group
- Group "after" metadata is now stored as a vector of strings instead of
an unordered set, to preserve source metadata ordering and simplify
implementing the comparison operator overloads
- std::hash is no longer specialised for Group
- DatabaseInterface::GetGroups() and DatabaseInterface::GetUserGroups()
now return vectors of Groups instead of unordered sets.
- DatabaseInterface::SetUserGroups() now takes a vector of Groups
instead of an unordered set.