Skip to content

Commit

Permalink
Update version and changelog for v0.19.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
Ortham committed Jan 7, 2023
1 parent 614a8d3 commit 938d5bc
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 7 deletions.
55 changes: 55 additions & 0 deletions docs/api/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,61 @@
Version History
***************

0.19.0 - 2023-01-07
===================

Added
-----

- Sorting now takes into account overlapping assets in BSAs/BA2s that are loaded
by plugins. If two plugins don't make changes to the same record but load BSAs
(or BA2s for Fallout 4) that contain data for the same asset path, the plugin
that loads more assets will load first (unless that's contradicted by
higher-priority data and metadata).
- :cpp:any:`loot::GameInterface::GetActivePluginsFilePath()`, which returns the
path of the file libloot reads to determine which plugins are active.
- :cpp:any:`loot::EdgeType::masterlistGroup`,
:cpp:any:`loot::EdgeType::userGroup`,
:cpp:any:`loot::EdgeType::recordOverlap` and
:cpp:any:`loot::EdgeType::assetOverlap`.

Fixed
-----

- Building libloot using CMake versions older than 3.24.
- A few potential null pointer dereferences.

Changed
-------

- Sorting has been heavily optimised, leading to sorting being about 58 times
faster than libloot 0.18.3 with large load orders:

- The plugin graph used during sorting has been split in two. As a result,
any plugin data or metadata that would previously caused a cyclic
interaction error due to contradicting a plugin's master flag being set is
now silently ignored instead.
- The tie-breaking stage has been completely overhauled. As a result, some
ties may now be broken differently to how they were broken in previous
versions of libloot.
- :cpp:any:`loot::GameInterface::LoadPlugins()` now checks plugin validity in
parallel.

- Cyclic interaction errors now distinguish between group edges that involve
user metadata and those that don't.
- ``PluginInterface::DoFormIDsOverlap()`` has been renamed to
:cpp:any:`loot::PluginInterface::DoRecordsOverlap()`.
- :cpp:any:`loot::CyclicInteractionError::GetCycle()` is now ``const``.
- :cpp:any:`loot::UndefinedGroupError::GetGroupName()` is now ``const``.
- Linux builds are now built using GCC 10 and now link against the ``tbb``
library.

Removed
-------

- ``EdgeType::group``
- ``EdgeType::overlap``

0.18.3 - 2022-12-13
===================

Expand Down
3 changes: 2 additions & 1 deletion docs/api/sorting.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ After that, two graphs are created, and the plugins are added to them as
vertices in their sorted order. Plugins that have their master flag set go in
one graph, and plugins that do not have the flag set go in the other.

Two graphs are used because master-flagged plugins must always load before non-master-flagged plugins, and it's much more efficient to sort them separately
Two graphs are used because master-flagged plugins must always load before
non-master-flagged plugins, and it's much more efficient to sort them separately
and then combine their load orders than to enforce those relationships within a
single graph.

Expand Down
4 changes: 2 additions & 2 deletions include/loot/loot_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 = 18;
inline constexpr unsigned int LIBLOOT_VERSION_MINOR = 19;

/** @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.
Expand Down
8 changes: 4 additions & 4 deletions src/api/resource.rc
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
#include <windows.h>

1 VERSIONINFO
FILEVERSION 0, 18, 3, 0
PRODUCTVERSION 0, 18, 3, 0
FILEVERSION 0, 19, 0, 0
PRODUCTVERSION 0, 19, 0, 0
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
BEGIN
Expand All @@ -13,12 +13,12 @@ BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "LOOT"
VALUE "FileDescription", "Library providing LOOT's core functionality"
VALUE "FileVersion", "0.18.3"
VALUE "FileVersion", "0.19.0"
VALUE "InternalName", "loot"
VALUE "LegalCopyright", "Copyright (C) 2013-2022 Oliver Hamlet"
VALUE "OriginalFilename", "loot.dll"
VALUE "ProductName", "LOOT"
VALUE "ProductVersion", "0.18.3"
VALUE "ProductVersion", "0.19.0"
END
END
BLOCK "VarFileInfo"
Expand Down

0 comments on commit 938d5bc

Please sign in to comment.