bytecodealliance / javy

JS to WebAssembly toolchain
Apache License 2.0
2.29k stars 110 forks source link

Make event loop a runtime config instead of a Cargo feature #838

Closed jeffcharles closed 1 day ago

jeffcharles commented 5 days ago

Description of the change

Changes experimental_event_loop from a Cargo feature to a runtime config. This also introduces a javy_plugin_api::Config that wraps the javy::Config so we can add configuration options that only affect the javy_plugin_api crate behaviour and that don't inherently change how the javy::Runtime behave (that's why I didn't add it to javy::Config). Since we change the type that needs to be passed for initialize_runtime, I've bumped the javy-plugin-api version by a major version. We have minimal users of the plugin API crate so the impact should be limited.

Why am I making this change?

This should simplify the build and test infrastructure since we only need to build one artifact for the plugin and the CLI tests instead of two plugins. This should also help with cacheability of build artifacts. This will also make it easier to use the event loop functionality.

Checklist

jeffcharles commented 5 days ago

The Test CLI Features check will have to be marked as not required to merge this since this PR deletes that workflow.