82 Commits
Author SHA1 Message Date
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