fix(plugins): enforce rustc compatibility

BREAKING CHANGE: API v4+ plugin packages must declare the exact rustc version used to build the binary.

Refs #901
This commit is contained in:
Hakan Seven committed 2026-08-29 15:54:41 +03:00
1 parent 4668042df5
commit 466ab99c63
9 files changed
+23 -40

No files matched your search

+1 -1
View File
@@ -54,7 +54,7 @@ The runtime enforces three gates:
1. `ocs_plugin_api_version()` exported by the cdylib must be within `[API_VERSION_MIN_SUPPORTED, effective_max_api_version()]`.
2. For v4+, `acadrust_sources_compatible(host_acadrust_source(), plugin_acadrust_source)` must be true.
3. For v4+, when the plugin declares `rustc_version`, `rustc_versions_compatible(host_rustc_version(), plugin_rustc_version)` must be true.
3. For v4+, the plugin must declare `rustc_version`, and `rustc_versions_compatible(host_rustc_version(), plugin_rustc_version)` must be true.
---
+2 -1
View File
@@ -384,7 +384,8 @@ fn generate_version_info(out_dir: &Path) {
.find(|p| p.name.as_str() == "acadrust")
.expect("acadrust package in Cargo.lock");
let rustc_version = Command::new("rustc")
let rustc = env::var_os("RUSTC").unwrap_or_else(|| "rustc".into());
let rustc_version = Command::new(rustc)
.arg("--version")
.output()
.ok()