diff --git a/Cargo.lock b/Cargo.lock index 1bf34244..851305ad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -502,7 +502,7 @@ dependencies = [ [[package]] name = "libloot" -version = "0.28.3" +version = "0.28.4" dependencies = [ "array-parameterized-test", "crc32fast", @@ -522,7 +522,7 @@ dependencies = [ [[package]] name = "libloot-cpp" -version = "0.28.3" +version = "0.28.4" dependencies = [ "cxx", "cxx-build", @@ -533,11 +533,11 @@ dependencies = [ [[package]] name = "libloot-ffi-errors" -version = "0.28.3" +version = "0.28.4" [[package]] name = "libloot-nodejs" -version = "0.28.3" +version = "0.28.4" dependencies = [ "libloot", "libloot-ffi-errors", @@ -548,7 +548,7 @@ dependencies = [ [[package]] name = "libloot-python" -version = "0.28.3" +version = "0.28.4" dependencies = [ "libloot", "libloot-ffi-errors", diff --git a/Cargo.toml b/Cargo.toml index 5efb3dc5..7b27322e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,7 +38,7 @@ lto = "thin" members = ["cpp", "ffi-errors", "nodejs", "array-parameterized-test", "python"] [workspace.package] -version = "0.28.3" +version = "0.28.4" repository = "https://github.com/loot/libloot.git" edition = "2024" license = "GPL-3.0-or-later" diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index c372715c..7c2b826c 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -5,7 +5,7 @@ endif() if(POLICY CMP0167) cmake_policy(SET CMP0167 NEW) endif() -project(libloot VERSION "0.28.3") +project(libloot VERSION "0.28.4") include(CMakeDependentOption) include(CMakePackageConfigHelpers) include(GNUInstallDirs) diff --git a/cpp/include/loot/loot_version.h b/cpp/include/loot/loot_version.h index 16c4f92f..eb83a96a 100644 --- a/cpp/include/loot/loot_version.h +++ b/cpp/include/loot/loot_version.h @@ -37,7 +37,7 @@ inline constexpr unsigned int LIBLOOT_VERSION_MAJOR = 0; inline constexpr unsigned int LIBLOOT_VERSION_MINOR = 28; /** @brief libloot's patch version number. */ -inline constexpr unsigned int LIBLOOT_VERSION_PATCH = 3; +inline constexpr unsigned int LIBLOOT_VERSION_PATCH = 4; /** * @brief Get the library version. diff --git a/cpp/src/api/resource.rc b/cpp/src/api/resource.rc index 499678c8..0e845988 100644 --- a/cpp/src/api/resource.rc +++ b/cpp/src/api/resource.rc @@ -2,8 +2,8 @@ #include 1 VERSIONINFO -FILEVERSION 0, 28, 3, 0 -PRODUCTVERSION 0, 28, 3, 0 +FILEVERSION 0, 28, 4, 0 +PRODUCTVERSION 0, 28, 4, 0 FILEOS VOS__WINDOWS32 FILETYPE VFT_DLL BEGIN @@ -13,12 +13,12 @@ BLOCK "040904b0" BEGIN VALUE "CompanyName", "LOOT" VALUE "FileDescription", "Library providing LOOT's core functionality" -VALUE "FileVersion", "0.28.3" +VALUE "FileVersion", "0.28.4" VALUE "InternalName", "loot" VALUE "LegalCopyright", "Copyright (C) 2013-2022 Oliver Hamlet" VALUE "OriginalFilename", "loot.dll" VALUE "ProductName", "LOOT" -VALUE "ProductVersion", "0.28.3" +VALUE "ProductVersion", "0.28.4" END END BLOCK "VarFileInfo" diff --git a/docs/api/changelog.rst b/docs/api/changelog.rst index 0e6c2316..c6265be0 100644 --- a/docs/api/changelog.rst +++ b/docs/api/changelog.rst @@ -2,6 +2,47 @@ Version History *************** +0.28.4 - 2025-12-31 +=================== + +Fixed +----- + +- When writing a metadata file, if a string needed to be written enclosed in + double quotes, any double quotes and backslashes within the string would not + be escaped, which could result in invalid YAML. +- An error that occurred if ``Database::write_user_metadata()`` or + ``Database::write_minimal_list()`` (or their C++ wrappers + :cpp:any:`loot::DatabaseInterface::WriteUserMetadata()` and + :cpp:any:`loot::DatabaseInterface::WriteMinimalList()`) were passed a file + path that consisted of only a filename. +- An warning about trying to pass ``-fno-lto`` when building the C++ wrapper + using MSVC. + +Changed +------- + +- Loading a metadata file that has duplicate entries in its ``bash_tags`` list + no longer causes an error. +- Metadata parsing errors that occur while parsing a masterlist with a separate + prelude file now give the correct line and column numbers for the relevant + file, instead of giving numbers that apply to the contents of the two files + after they have been merged in memory. +- Metadata YAML files written by libloot now write single-element lists as + ``[ element ]`` instead of ``[element]``, to match the style used in LOOT's + masterlists. +- When writing File metadata values, their ``detail`` key is now positioned + before their ``condition`` key, instead of after it and their ``constraint`` + key. +- Updated the API reference documentation to clarify the behaviour of + ``Database::set_plugin_user_metadata()`` and + ``Database::discard_plugin_user_metadata()`` (and their C++ wrappers + :cpp:any:`loot::DatabaseInterface::SetPluginUserMetadata()` and + :cpp:any:`loot::DatabaseInterface::DiscardPluginUserMetadata()`) when dealing + with regex plugin metadata. +- Various minor API reference documentation improvements. + + 0.28.3 - 2025-10-22 =================== diff --git a/docs/pyproject.toml b/docs/pyproject.toml index 7458ff8b..576697cb 100644 --- a/docs/pyproject.toml +++ b/docs/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "libloot-docs" -version = "0.28.3" +version = "0.28.4" requires-python = ">=3.11" dependencies = [ "breathe==4.36.0", diff --git a/docs/uv.lock b/docs/uv.lock index 0aefa3cd..c4abfb34 100644 --- a/docs/uv.lock +++ b/docs/uv.lock @@ -139,7 +139,7 @@ wheels = [ [[package]] name = "libloot-docs" -version = "0.28.3" +version = "0.28.4" source = { virtual = "." } dependencies = [ { name = "breathe" }, diff --git a/nodejs/npm/linux-x64-gnu/package.json b/nodejs/npm/linux-x64-gnu/package.json index 61160e89..4dd80e1b 100644 --- a/nodejs/npm/linux-x64-gnu/package.json +++ b/nodejs/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "libloot-nodejs-linux-x64-gnu", - "version": "0.28.3", + "version": "0.28.4", "os": [ "linux" ], diff --git a/nodejs/npm/win32-x64-msvc/package.json b/nodejs/npm/win32-x64-msvc/package.json index 616aa81d..287dbb35 100644 --- a/nodejs/npm/win32-x64-msvc/package.json +++ b/nodejs/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "libloot-nodejs-win32-x64-msvc", - "version": "0.28.3", + "version": "0.28.4", "os": [ "win32" ], diff --git a/nodejs/package-lock.json b/nodejs/package-lock.json index 7681166d..434249da 100644 --- a/nodejs/package-lock.json +++ b/nodejs/package-lock.json @@ -1,12 +1,12 @@ { "name": "libloot-nodejs", - "version": "0.28.3", + "version": "0.28.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "libloot-nodejs", - "version": "0.28.3", + "version": "0.28.4", "license": "MIT", "devDependencies": { "@napi-rs/cli": "^3.1.3", diff --git a/nodejs/package.json b/nodejs/package.json index d5df3616..68f38b7e 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -1,6 +1,6 @@ { "name": "libloot-nodejs", - "version": "0.28.3", + "version": "0.28.4", "main": "index.js", "types": "index.d.ts", "napi": {