Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request adds a new
backend_api
and updates the build process to handle backend and plugin discovery. The most important changes are the addition of a newbackend_api
package, updates to theCargo.toml
files, and enhancements to the build script to automate backend and plugin management.New Package Addition:
backend_api
package with its ownCargo.toml
file, including dependencies and build dependencies.Updates to
Cargo.toml
:Cargo.toml
to include the newbackend_api
package and removed thechronos_plugin
.Build Script Enhancements:
build.rs
script in thebackend_api
package to automate the discovery of backends and plugins, updateCargo.toml
files, and generate necessary backend files.# This PR adds the.allow-imports
file flagThe adding the
.allow-imports
file to your backend root allows backends to import plugins. Adding this file to a plugin allows it access to other plugins (Adding this flag to plugins is NOT recommended as it creates some error prone behavior due to missing dependencies).The Horizon plugins and backends APIs respectively will handle this automatically pre-compile-time to allow for inter plugin and backend-to-plugin communication.
Notes
.allow-imports
enabled in another.allow-imports
plugin, this is to prevent circular dependencies entirely.