diff --git a/docs/api/changelog.rst b/docs/api/changelog.rst index 6b4926d4..e8bbf0ea 100644 --- a/docs/api/changelog.rst +++ b/docs/api/changelog.rst @@ -5,23 +5,42 @@ Version History 0.28.0 - Unreleased =================== +Added +----- + +- Many new third-party dependencies, which are all managed by Cargo. Future + updates to direct dependencies will be recorded in this changelog: the Git + history of ``Cargo.lock`` will provide a record of changes to the whole + dependency tree. + Changed ------- -- :cpp:any:`loot::DatabaseInterface::LoadMasterlist()`, - :cpp:any:`loot::DatabaseInterface::LoadMasterlistWithPrelude()` and - :cpp:any:`loot::DatabaseInterface::LoadUserlist()` now throw - ``std::runtime_error`` exceptions instead of ``YAML::RepresentationException`` - (which was a grandchild of ``std::runtime_error``) when there is a error - parsing metadata YAML. -- When :cpp:any:`loot::DatabaseInterface::WriteUserMetadata()` or - :cpp:any:`loot::DatabaseInterface::WriteMinimalList()` are called with an - output path that has a parent path that does not exist, they now throw a - ``std::runtime_error`` instead of a ``std::invalid_argument``. -- When :cpp:any:`loot::DatabaseInterface::GetGroupsPath()` is given a group name - that is undefined, it now throws a :cpp:any:`loot::UndefinedGroupError` - instead of a ``std::invalid_argument``. -- Many exception messages have changed. +- Most of libloot has been reimplemented in Rust instead of C++, with the C++ + API now a thin wrapper around the Rust implementation. The C++ ABI and the + documented C++ API are unchanged, though there have been changes to many of + the exceptions that are thrown when errors are encountered. + + - :cpp:any:`loot::DatabaseInterface::LoadMasterlist()`, + :cpp:any:`loot::DatabaseInterface::LoadMasterlistWithPrelude()` and + :cpp:any:`loot::DatabaseInterface::LoadUserlist()` now throw + ``std::runtime_error`` exceptions instead of + ``YAML::RepresentationException`` (which was a grandchild of + ``std::runtime_error``) when there is a error parsing metadata YAML. + - When :cpp:any:`loot::DatabaseInterface::WriteUserMetadata()` or + :cpp:any:`loot::DatabaseInterface::WriteMinimalList()` are called with an + output path that has a parent path that does not exist, they now throw a + ``std::runtime_error`` instead of a ``std::invalid_argument``. + - When :cpp:any:`loot::DatabaseInterface::GetGroupsPath()` is given a group + name that is undefined, it now throws a :cpp:any:`loot::UndefinedGroupError` + instead of a ``std::invalid_argument``. + - Many exception messages have changed. + +Removed +------- + +- The Boost, ICU, TBB, fmt, spdlog and yaml-cpp library dependencies. +- cbindgen is no longer used by the build process. 0.27.0 - 2025-06-08 ===================