From 632b85ce780b6be20325e60de0e742f2fbae8098 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sun, 27 Feb 2022 10:07:01 +0000 Subject: [PATCH] Update version and changelogs for v0.18.0 release --- docs/api/changelog.rst | 92 +++++++++++++++++++++++++++++++++++++ docs/metadata/changelog.rst | 24 ++++++++++ include/loot/loot_version.h | 4 +- src/api/resource.rc | 8 ++-- 4 files changed, 122 insertions(+), 6 deletions(-) diff --git a/docs/api/changelog.rst b/docs/api/changelog.rst index fca741e0..46958c32 100644 --- a/docs/api/changelog.rst +++ b/docs/api/changelog.rst @@ -2,6 +2,98 @@ Version History *************** +0.18.0 - 2022-02-27 +=================== + +Added +----- + +- :cpp:any:`loot::Group::DEFAULT_NAME` gives the default group name as a + compile-time constant. +- :cpp:any:`loot::ToSimpleMessages()` turns a ``std::vector`` into a + ``std::vector`` for a given language. +- :cpp:any:`loot::GameInterface::IsLoadOrderAmbiguous()` exposes libloadorder's + ``lo_is_ambiguous()`` function. + +Fixed +----- + +- :cpp:any:`loot::SimpleMessage` now uses an in-class initialiser to ensure that + its ``type`` member variable is always initialised. +- Added missing virtual destructors to :cpp:any:`loot::GameInterface`, + :cpp:any:`loot::DatabaseInterface` and :cpp:any:`loot::PluginInterface`. +- Two versions that only differ by the presence and absence of pre-release + identifiers were not correctly compared according to Semantic Versioning, + which states that 1.0.0-alpha is less than 1.0.0. Via + loot-condition-interpreter. +- Some missing API documentation and formatting issues. + +Changed +------- + +- :cpp:any:`loot::CreateGameHandle()` now returns a + ``std::unique_ptr`` instead of a + ``std::shared_ptr``. +- :cpp:any:`loot::GameInterface::GetDatabase()` now returns a + ``DatabaseInterface&`` instead of a ``std::shared_ptr``. +- :cpp:any:`loot::GameInterface::GetPlugin()` now returns a + ``const PluginInterface*`` instead of a + ``std::shared_ptr``. +- :cpp:any:`loot::GameInterface::GetLoadedPlugins()` now returns a + ``std::vector`` instead of a + ``std::vector>``. +- ``MessageContent::defaultLanguage`` has been replaced with + :cpp:any:`loot::MessageContent::DEFAULT_LANGUAGE`, which is a compile-time + constant. +- ``File::ChooseDetail()``, + ``Message::GetContent(const std::string& language)``, + ``MessageContent::Choose()`` and ``PluginCleaningData::ChooseDetail()`` have + been replaced with :cpp:any:`loot::SelectMessageContent`. +- ``Message::ToSimpleMessage()`` has been replaced with + :cpp:any:`loot::ToSimpleMessage()`. +- ``LootVersion`` has been replaced with :cpp:any:`loot::LIBLOOT_VERSION_MAJOR`, + :cpp:any:`loot::LIBLOOT_VERSION_MINOR`, + :cpp:any:`loot::LIBLOOT_VERSION_PATCH`, :cpp:any:`loot::GetLiblootVersion()` + and :cpp:any:`loot::GetLiblootRevision()`. +- :cpp:any:`loot::File::GetDisplayName()` is now a trivial accessor that only + ever returns the value of the display name member variable and performs no + character escaping. +- :cpp:any:`loot::CyclicInteractionError` and + :cpp:any:`loot::UndefinedGroupError` have had their ``const`` member variables + made non-``const``. +- :cpp:any:`loot::ConditionalMetadata`, :cpp:any:`loot::File`, + :cpp:any:`loot::Filename`, :cpp:any:`loot::Group`, :cpp:any:`loot::Location`, + :cpp:any:`loot::Message`, :cpp:any:`loot::MessageContent`, + :cpp:any:`loot::PluginCleaningData`, :cpp:any:`loot::PluginMetadata` and + :cpp:any:`loot::Tag` have had their user-defined default constructors replaced + by use of in-class initialisers and defaulted default constructors. +- The ``<`` and ``==`` operator overloads for :cpp:any:`loot::File`, + :cpp:any:`loot::Group`, :cpp:any:`loot::Location`, :cpp:any:`loot::Message`, + :cpp:any:`loot::MessageContent`, :cpp:any:`loot::PluginCleaningData` and + :cpp:any:`loot::Tag` have become non-member functions. +- The performance of :cpp:any:`loot::PluginMetadata::NameMatches()` has been + greatly improved by not constructing a new regex object every time the + function is called. +- Mentions of GitHub Flavored Markdown have been replaced with CommonMark, as + LOOT now uses the latter instead of the former. +- Updated loot-condition-interpreter to v2.3.0. + +Removed +------- + +- ``ConditionalMetadata::ParseCondition()`` +- ``PluginMetadata::NewMetadata()`` +- All Git-related functionality has been removed, including the libgit2 + dependency and the following API items: + + - ``loot::UpdateFile()`` + - ``loot::GetFileRevision()`` + - ``loot::IsLatestFile()`` + - ``loot::libgit2_category()`` + - ``loot::GitStateError`` + - ``loot::FileRevision`` + + 0.17.3 - 2022-01-02 =================== diff --git a/docs/metadata/changelog.rst b/docs/metadata/changelog.rst index 1f580d6e..f713c967 100644 --- a/docs/metadata/changelog.rst +++ b/docs/metadata/changelog.rst @@ -4,6 +4,30 @@ 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 ()`` 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 ================= diff --git a/include/loot/loot_version.h b/include/loot/loot_version.h index d7878f81..b09a3774 100644 --- a/include/loot/loot_version.h +++ b/include/loot/loot_version.h @@ -34,10 +34,10 @@ namespace loot { inline constexpr unsigned int LIBLOOT_VERSION_MAJOR = 0; /** @brief libloot's minor version number. */ -inline constexpr unsigned int LIBLOOT_VERSION_MINOR = 17; +inline constexpr unsigned int LIBLOOT_VERSION_MINOR = 18; /** @brief libloot's patch version number. */ -inline constexpr unsigned int LIBLOOT_VERSION_PATCH = 3; +inline constexpr unsigned int LIBLOOT_VERSION_PATCH = 0; /** * @brief Get the library version. diff --git a/src/api/resource.rc b/src/api/resource.rc index f92e330d..d8c8bd45 100644 --- a/src/api/resource.rc +++ b/src/api/resource.rc @@ -2,8 +2,8 @@ #include 1 VERSIONINFO -FILEVERSION 0, 17, 3, 0 -PRODUCTVERSION 0, 17, 3, 0 +FILEVERSION 0, 18, 0, 0 +PRODUCTVERSION 0, 18, 0, 0 FILEOS VOS__WINDOWS32 FILETYPE VFT_APP BEGIN @@ -11,9 +11,9 @@ BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN -VALUE "FileVersion", "0.17.3" +VALUE "FileVersion", "0.18.0" VALUE "LegalCopyright", "Copyright (C) 2013-2016 WrinklyNinja" -VALUE "ProductVersion", "0.17.3" +VALUE "ProductVersion", "0.18.0" END END BLOCK "VarFileInfo"