Oliver Hamlet
c7bd60cb74
Fix new clippy warning
...
It seems to have been introduced in Rust v1.91.0.
2025-11-10 18:33:49 +00:00
Oliver Hamlet
67dfd78017
Explicitly limit permissions in CI jobs
2025-10-31 21:48:59 +00:00
Oliver Hamlet
966bf75a29
Add audits for regex v1.11.2 to v1.11.3 update
2025-10-03 18:39:36 +01:00
Oliver Hamlet
6a66d8fcd0
Add audit for esplugin v6.1.4 as workaround for trust
2025-10-03 18:18:52 +01:00
Oliver Hamlet
a88f424219
Update libc entry in cargo-vet lockfile
2025-10-03 18:02:03 +01:00
Oliver Hamlet
4a1fe296ed
Check the hashes of files downloaded in CI
2025-10-02 17:40:16 +01:00
Oliver Hamlet
26b3f2f152
Use Dependabot to keep Actions up to date
2025-10-01 20:11:36 +01:00
Oliver Hamlet
bd10075c72
Pin third-party Action versions
...
The versions that are installed have not changed: the hashes correspond to the current values of the version tags that were previously used.
2025-10-01 20:08:54 +01:00
Oliver Hamlet
b8bb06581d
Install cargo-vet using a Git commit hash
...
The hash doubles as a checksum of the code that's downloaded and built. Installing from crates.io doesn't provide equivalent functionality.
2025-10-01 20:06:08 +01:00
Oliver Hamlet
a5cb37f203
Install cbindgen using a Git commit hash
...
The hash doubles as a checksum of the code that's downloaded and built. Installing from crates.io doesn't provide equivalent functionality.
2025-10-01 20:01:52 +01:00
Oliver Hamlet
8cfe561712
Pass ---locked to cargo install
2025-10-01 19:58:01 +01:00
Oliver Hamlet
b1a0840690
Update versions and changelog for v5.3.3
2025-09-29 17:19:59 +01:00
Oliver Hamlet
2ac9a9e374
Add a CI job to run cargo vet
2025-09-28 16:27:40 +01:00
Oliver Hamlet
bdeeaee9e9
Use more permissive dependency version selectors
...
So that dependents have more freedom in choosing versions in their dependency tree.
I've run the tests using the oldest versions allowed by the new specifiers, and they all pass.
The current release of esplugin unnecessarily requires at least unicase v2.8.1, but with that fixed, unicase v2.0.0 is fine.
2025-09-28 16:26:13 +01:00
Oliver Hamlet
940aa22f26
Update errno, rustix, winapi-util, windows-sys
...
To remove several windows* crates.
2025-09-28 16:26:13 +01:00
Oliver Hamlet
a3fab8f8c7
Downgrade crossbeam-deque to an audited version
...
The differences don't seem to be significant for LCI's usage.
2025-09-28 16:26:13 +01:00
Oliver Hamlet
7469c7ba41
Downgrade walkdir to an audited version
...
The differences don't seem to be significant for LCI's usage.
2025-09-28 16:26:13 +01:00
Oliver Hamlet
e1ad153df2
Downgrade ryu to an audited version
...
The differences don't seem to be significant for LCI's usage.
2025-09-28 16:26:13 +01:00
Oliver Hamlet
185dd20834
Downgrade syn to an audited version
...
The differences don't seem to be significant for LCI's usage.
2025-09-28 16:26:13 +01:00
Oliver Hamlet
c9e9cef47f
Add cargo-vet config
2025-09-28 16:26:13 +01:00
Oliver Hamlet
d70bbdd2c9
Fix new clippy lint error
...
Introduced in Rust 1.89.0 / clippy 0.1.89.
2025-08-20 17:26:17 +01:00
Oliver Hamlet
a87b6d95cc
Don't fail the CI job if Coveralls is down
2025-08-20 17:26:17 +01:00
Oliver Hamlet
616f0ed144
Check coverage in Windows CI builds
2025-08-20 17:26:17 +01:00
Oliver Hamlet
7358c180c5
Use --workspace instead of deprecated --all
2025-08-01 18:07:36 +01:00
Oliver Hamlet
5f9d15b2c9
Move lints config to Cargo config
2025-08-01 18:07:36 +01:00
Oliver Hamlet
e075010fbd
Deduplicate Cargo package fields
2025-08-01 18:07:33 +01:00
Oliver Hamlet
a2d90d781a
Fix repository in Cargo.toml
2025-08-01 18:07:24 +01:00
Oliver Hamlet
c65270891e
Fix CI badge in readme
2025-08-01 17:37:38 +01:00
Oliver Hamlet
93dd69a2c8
Add a release GitHub Actions workflow
...
For publishing to crates.io.
2025-08-01 17:37:25 +01:00
Oliver Hamlet
36a987f0b5
Fix clippy warnings
2025-07-20 11:33:26 +01:00
Oliver Hamlet
3c81bd50e2
Update Windows CI to windows-2025
...
windows-2019 will be fully retired by the end of June, and 2025 is the latest version.
2025-04-29 22:27:19 +01:00
Oliver Hamlet
cacf19c54f
Update versions and changelog for v5.3.2
2025-04-28 18:18:29 +01:00
Oliver Hamlet
8a5cf6d124
Update transitive dependencies
2025-04-28 18:18:28 +01:00
Oliver Hamlet
5131b31df4
Update to esplugin 6.1.3
2025-04-28 18:16:39 +01:00
Oliver Hamlet
6415ac9511
Write paths in errors as escaped ASCII text
2025-04-28 17:48:53 +01:00
Oliver Hamlet
b45ace0700
Improve FFI error message handling
2025-04-28 17:48:20 +01:00
Oliver Hamlet
dbbbcd58e5
Remove check that paths are inside game path
...
It didn't work correctly for OpenMW or for additional data paths, fixing it would be significantly more complicated, and it doesn't really add any value.
2025-04-27 18:37:40 +01:00
Oliver Hamlet
50d9d11b6b
Update metadata syntax version in readme
2025-04-27 07:23:35 +01:00
Oliver Hamlet
2e89521963
Fix description_contains for OpenMW plugins
2025-04-27 07:23:35 +01:00
Oliver Hamlet
2b37e15f2b
Run clippy in CI
2025-04-27 07:23:34 +01:00
Oliver Hamlet
9c4f9dcb5e
Deny a lot of extra lints and fix their errors
2025-04-26 10:10:48 +01:00
Oliver Hamlet
733d14cd4c
Fix Display output for ComparisonOperator::NotEqual
2025-04-26 00:09:26 +01:00
Oliver Hamlet
a574a2c98b
Fix compiling for platforms that don't have memory map support in pelite
2025-04-25 18:51:29 +01:00
Oliver Hamlet
332a636bf1
Update versions and changelog for v5.3.1
2025-03-26 18:41:24 +00:00
Oliver Hamlet
638c233815
Add description and repository metadata to Cargo.toml
2025-03-26 18:33:57 +00:00
Oliver Hamlet
906198e599
Update versions and changelog for v5.3.0
2025-03-26 18:11:37 +00:00
Oliver Hamlet
537718766b
Recover from poisoning of internal cache locks
...
Since they only contain cached values, it's reasonable to overwrite the
value with a new empty map and go from there.
This doesn't affect the lock used in the FFI layer because that protects
caller-provided state, and it doesn't change the function return types
to avoid breaking backwards compatibility.
2025-03-26 18:11:37 +00:00
Oliver Hamlet
f7d9947fa4
Add Send, Sync and 'static bounds to Error variant
2025-02-26 19:45:59 +00:00
Oliver Hamlet
08749f51ad
Add more derived traits to enums and structs
2025-02-26 19:45:33 +00:00
Oliver Hamlet
da95554781
Update versions and changelog for v5.2.0
2025-02-20 17:48:23 +00:00
Oliver Hamlet
f8cc7de5f8
Support line breaks in condition string whitespace
2025-02-20 17:47:55 +00:00
Oliver Hamlet
f7ba01a46b
Update versions and changelog for v5.1.0
2025-02-16 09:13:51 +00:00
Oliver Hamlet
2367403cad
Use correct dir order for OpenMW when evaluating dir entries
...
I don't think this actually matters since evaluation just returns true and only exits early on success, but if the evaluator has side effects then it could matter.
2025-02-16 09:13:51 +00:00
Oliver Hamlet
174ba55c95
Add description_contains() condition function
...
It evaluates to true if the plugin description contains text that matches the given regex.
2025-02-15 22:38:18 +00:00
Oliver Hamlet
f84083da52
Add filename_version() condition function
...
Unlike the other functions it will always evaluate to false if the version cannot be extracted from any filenames.
2025-02-15 21:27:39 +00:00
Oliver Hamlet
30e3ed9c86
Add file_size() function
...
It evaluates to false if the file doesn't exist.
2025-02-15 18:28:39 +00:00
Oliver Hamlet
bae9e8b630
Update versions and changelog for v5.0.0
2025-02-01 18:56:44 +00:00
Oliver Hamlet
d3da4528d3
Recognise OpenMW .omwscripts plugins
...
This doesn't really have any effect, as since ghosting is disabled for OpenMW the extension is only checked when evaluating a version() function, and .omwscripts plugins don't have a version field, so there's no reason for that version() call to exist in the first place.
2025-02-01 18:56:44 +00:00
Oliver Hamlet
7bf005118e
Don't treat any OpenMW plugin as a master
...
Master-flagged plugins are not forced to load before other plugins in OpenMW.
2025-02-01 18:33:30 +00:00
Oliver Hamlet
d7f5455cd0
Swap out some libc type aliases with std::ffi equivalents
...
Unfortunately std::ffi::c_size_t is currently experimental, and if I
define c_size_t = usize myself then cbindgen doesn't recognise it
properly and makes c_size_t a typedef of uintptr_t instead of just
replacing it with size_t.
2025-02-01 17:58:12 +00:00
Oliver Hamlet
d9c453a857
Use c_int instead of i32 in error types
...
To match the types used by the actual error mappers. c_int is a type alias of i32 on the platforms that this library is used on, so there's no practical difference.
2025-02-01 17:58:12 +00:00
Oliver Hamlet
000c9971c2
Improve running CMake in CI
2025-01-29 18:38:32 +00:00
Oliver Hamlet
08639a1e8f
Fix path handling for OpenMW
...
- Disable support for plugin ghosting for OpenMW, it's not clear if it's useful and it increases complexity.
- Search additional data paths in reverse order.
2025-01-29 18:38:32 +00:00
Oliver Hamlet
a8f9a5734a
Make Error and GameType enums non-exhaustive
...
So that it's not a breaking change to add more variants in the future.
2025-01-29 18:38:24 +00:00
Oliver Hamlet
9e2aa0cf9c
Add support for OpenMW .omwaddon and .omwgame plugins
2025-01-29 18:38:24 +00:00
Oliver Hamlet
f357fa48a3
Add is_executable() function
...
To guard against calling product_version() or version() on (non-plugin) files that unexpectedly aren't executables, e.g. Starfield.exe from the Microsoft Store.
2025-01-28 18:17:57 +00:00
Oliver Hamlet
784af50540
Update nom from 7.1.3 to 8.0.0
2025-01-27 20:06:23 +00:00
Oliver Hamlet
18150b76c1
Make integration test a unit test
...
I don't know why I implemented it as an integration test.
2025-01-19 14:03:10 +00:00
Oliver Hamlet
94d663bd4e
Force-install cbindgen in CI
2025-01-14 18:21:20 +00:00
Oliver Hamlet
3d9ac4cfc2
Address clippy warnings in test code
2025-01-14 18:12:31 +00:00
Oliver Hamlet
eb48d09283
Apply clippy --fix changes
2025-01-14 18:12:14 +00:00
Oliver Hamlet
13600ba188
Apply clippy suggestion
2025-01-14 18:11:47 +00:00
Oliver Hamlet
deb8d39800
Migrate to the ubuntu-24.04 GitHub Actions runner
...
The ubuntu-20.04 runner is due to be deprecated on 2025-02-01 and
unsupported by 2025-04-01.
The ubuntu-24.04 runner doesn't include cbindgen so install it using
apt.
2025-01-13 20:39:59 +00:00
Oliver Hamlet
6b793f25bd
Update versions and changelog for v4.0.2
2024-10-08 10:15:17 +01:00
Oliver Hamlet
317dd58d0d
Update versions and changelog for v4.0.1
2024-06-28 17:49:22 +01:00
Oliver Hamlet
b2fa93f134
Refactor CI workflow
2024-06-28 17:44:52 +01:00
Oliver Hamlet
54f9541c34
Update esplugin to 6.0.0
2024-06-28 17:25:47 +01:00
Oliver Hamlet
458841ce45
Update version numbers and changelog for v4.0.0
2024-05-02 20:54:56 +01:00
Oliver Hamlet
c21391568c
Add context to Error::ParsingIncomplete
2024-05-02 20:54:56 +01:00
Oliver Hamlet
848747e07c
Update dependencies
2024-05-02 20:30:47 +01:00
Oliver Hamlet
97f366f7b9
Update esplugin to v5.0.1
2024-05-02 20:29:07 +01:00
Oliver Hamlet
df88090a5d
Update to Rust's 2021 edition
...
This means that the winapi sub-dependency is built with fewer features.
2024-05-02 19:55:52 +01:00
Oliver Hamlet
c508533d4b
Remove the ffi-headers feature
...
Rely on a separate cbindgen instance instead, which is less self-contained but more practical.
2024-04-30 23:29:31 +01:00
Oliver Hamlet
adeac2317c
Update GitHub Actions
...
To address deprecation warnings.
2024-04-30 22:58:41 +01:00
Oliver Hamlet
3af0ac5773
Commit Cargo.lock
...
This will allow deterministic builds in CI and is now the recommended approach (and cargo new no longer adds it to .gitignore).
2024-04-30 22:45:59 +01:00
Oliver Hamlet
922a8f9e7d
Update version numbers and changelog for v3.1.0
2023-09-05 18:49:13 +01:00
Oliver Hamlet
30c140eb4d
Add support for Starfield
...
As far as loot-condition-interpreter is concerned, it's not really any
different from Fallout 4.
2023-09-05 18:48:44 +01:00
Oliver Hamlet
d8af231b99
Fix only lowercase plugin extensions being recognised
...
.esp, .esm, .esl and those plus .ghost suffixes are now matched
case-insensitively.
2023-08-26 09:43:29 +01:00
Oliver Hamlet
1043c21572
Update version numbers and changelog for v3.0.0
2023-08-18 17:39:24 +01:00
Oliver Hamlet
04ee63b5cf
Fix benchmarks
2023-08-18 17:28:00 +01:00
Oliver Hamlet
86fee1892e
Remove support for the "LOOT" alias
2023-08-17 23:39:26 +01:00
Oliver Hamlet
2b95f26727
Fix Windows FFI build
...
Looks like the Rust standard library now links against ntdll too.
2023-06-25 14:22:52 +01:00
Oliver Hamlet
3f05d6ad8a
Update links to testing-plugins repo
2023-06-25 14:03:03 +01:00