41 Commits
Author SHA1 Message Date
Oliver Hamlet 136f3983c3 Set version and changelog for 0.29.6 2026-06-27 18:33:18 +01:00
Oliver Hamlet 947ee37850 Update dependency copyright notices and changelog 2026-06-27 18:32:34 +01:00
Oliver Hamlet 4af6f88d86 Fix typo in changelog entry 2026-05-29 22:00:30 +01:00
Oliver Hamlet 41543ecec5 Update changelog 2026-05-29 19:52:04 +01:00
Oliver Hamlet 5a5351ec71 Update dependency copyright notices 2026-05-29 19:46:01 +01:00
Oliver Hamlet a12fcfcef2 Set version and changelog for 0.29.5 2026-05-05 17:52:18 +01:00
Oliver Hamlet 56bafaead3 Set version and changelog for 0.29.4 2026-04-17 18:00:31 +01:00
Oliver Hamlet 828ce476e1 Update changelog 2026-04-16 18:23:44 +01:00
Oliver Hamlet 7104c92bef Set version and changelog for 0.29.3 2026-04-07 18:23:11 +01:00
Oliver Hamlet 991e87b9ad Replace use of my older pseudonym with my name 2026-04-03 17:07:54 +01:00
Oliver Hamlet e89b3b841f Update copyright year ranges
I'm not sure if they add any value, but the GPL howto says to, and they're already there.
2026-04-03 17:06:31 +01:00
Oliver Hamlet d929ab9dab Set version and changelog for 0.29.2 2026-03-27 13:56:04 +00:00
Oliver Hamlet d869833742 Set version to 0.29.1 2026-03-13 18:40:53 +00:00
Oliver Hamlet 8cb826bf65 Remove log warning on archive hash collision
TL;DR: The warning added a lot more noise than expected, doesn't really
add value, and improving it isn't worth the effort.

The warning was logged when the same pair of folder hash and file hash
appeared more than once within the set of archive files being loaded
(as the function was used, the set would be the archives loaded by a
single plugin).

Hashes are used directly instead of asset file paths because the paths
are not necessarily present in BSA files, and while they are present in
BA2 files (at least, I'm not aware of any option to omit them or any
files that do omit them), hashes are calculated from the file paths they
contain for consistency with the approach needed for BSA files.

Without the file paths it's not possible to determine if the repeated
hashes represent the same asset file (possibly containing different
data) or different files that have colliding hashes.

I had assumed that it would be unusual for a single plugin to load more
than one archive file containing the same asset file path, so any
repeated hash pairs would likely indicate hash collisions, but feedback
from Pickysaurus on behalf of Vortex users indicates that's not true,
and that logging all the warnings significantly slows down fully loading
plugins.

There are a few ways that the logged warning could be improved: tracking
which archive file existing hashes were inserted from would make it
easier to identify the pair of archive files that might need
investigating; reading BA2 files could defer transforming their asset file
paths into hashes until after all the files for a plugin have been read
(or even past that, to account for hash collisions between different
plugins' assets); and reading BSA files could opportunistically store the
asset file paths if they are present, and fall back to comparing using
hashes if not.

However, even if the warning was logged for only true positive hash
collisions, this is all in service of a sorting heuristic that is only
used when adding overlap edges and a pair of plugins do not have
overlapping records but do both load assets, and a collision would mean
that a plugin might seem to load fewer assets than it does, and could
also appear to overlap with a plugin that doesn't actually load assets
with the same file paths. That in turn might result in the two plugins
loading in one order instead of the other, causing one's assets to
override the other's. If that's a problem, then it can be fixed using
load after metadata, and you can only really tell if it's a problem by
spotting something wrong in game, so the warning doesn't really add much
value, and although it indicates that there might be a problem, there's
enough conditions between the warning and there actually being an issue
that logging it as a warning is excessive anyway.
2026-03-13 18:40:49 +00:00
Oliver Hamlet 7de8bdb3a8 Set version to v0.29.0 2026-02-04 21:18:04 +00:00
Oliver Hamlet 7fee083704 Require regress v0.10.5
There are tests that check for the functionality that version newly supports, so an earlier version won't work as expected.
2026-01-27 20:01:17 +00:00
Oliver Hamlet 1443ae91c6 Update docs 2026-01-21 20:13:30 +00:00
Oliver Hamlet 0929627703 Update changelog 2026-01-17 18:08:24 +00:00
Oliver Hamlet bbdf979d69 Update docs with dependency updates 2026-01-09 20:59:34 +00:00
Oliver Hamlet 59d0fb7f46 Update changelog 2026-01-04 14:53:07 +00:00
Oliver Hamlet 7e34486218 Add missing C++ API reference entry for MetadataWriteOptions 2026-01-04 14:53:07 +00:00
Oliver Hamlet 8553078dba Update dependency copyright notices
To reflect the loot-condition-interpreter and CXX updates.
2026-01-04 14:53:07 +00:00
Oliver Hamlet 10929878d9 Update version and changelog for v0.28.4 2025-12-31 19:21:17 +00:00
Oliver Hamlet 54604a0ec8 Update version and changelog for v0.28.3 2025-10-22 18:19:02 +01:00
Oliver Hamlet 88ef5a8042 Improve licenses script
Tidy up formatting, and improve license selection logic so that the Apache license is no longer downloaded. This doesn't change what notices are generated.
2025-10-22 18:17:26 +01:00