Skip to content

Add compile-check-no-std Command to CI Tool #15843

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Oct 11, 2024

Conversation

bushrat011899
Copy link
Contributor

@bushrat011899 bushrat011899 commented Oct 10, 2024

Objective

Solution

Added a new subcommand to the CI tool, compile-check-no-std, which will attempt to compile each no_std crate in Bevy with the appropriate features (no-defaults, libm, etc.) for x86_64-unknown-none. The exact target chosen could be changed to any reasonable platform which does not include the std library.

The currently tested crates are:

  • bevy_ptr
  • bevy_utils
  • bevy_mikktspace

As more crates have no_std support added, they should be added to this CI command. Once Bevy itself can be no_std, the individual checks can be replaced with just checking Bevy, since it will transiently check all other crates as appropriate.

Testing

  • Ran CI. From a clean target directory (cargo clean), these new checks take approximately 10 seconds total.

This will check for `no_std` compatibility for any `no_std` crates Bevy has. Note that each `no_std` crate is added manually as certain crates (e.g., `bevy_mikktspace`) do/will require features to be enabled for `no_std` compatibility (e.g., `libm`).

Currently a single `no_std` target has been chosen (`x86_64-unknown-none`). However, this should be updated in the future with more representative platforms as required.
@bushrat011899 bushrat011899 added C-Feature A new feature, making something new possible A-Build-System Related to build systems or continuous integration X-Uncontroversial This work is generally agreed upon D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Oct 10, 2024
@bushrat011899 bushrat011899 marked this pull request as draft October 10, 2024 23:28
Requires the `x86_64-unknown-none` target be added via `rustup`, which may not be appropriate for all contributors.
@bushrat011899 bushrat011899 marked this pull request as ready for review October 10, 2024 23:39
@mockersf mockersf added this pull request to the merge queue Oct 11, 2024
Merged via the queue into bevyengine:main with commit aa5e93d Oct 11, 2024
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Build-System Related to build systems or continuous integration C-Feature A new feature, making something new possible D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Needs-Review Needs reviewer attention (from anyone!) to move forward X-Uncontroversial This work is generally agreed upon
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add no_std Checks to CI
3 participants