New features should go through the RFC process before creating a Pull Request to this repository.
Report bugs by creating an issue in this repository.
Please make pull requests against the master branch.
Always use rebase instead of merge when bringing in changes from master to your feature branch.
Documentation improvements are always welcome.
The source for the book is in book/
and API documentation is generated from the source code.
Continuous Integration (CI) tests are run against all pull requests.
Please make sure that tests passes locally before submitting.
> cargo fmt
> cargo check --examples --target thumbv7m-none-eabi
and/or
> cargo check --examples --target thumbv6m-none-eabi
> cargo xtask --target all
Will execute run
tests on your local qemu
install.
(You may also pass a single target --target thumbv6m-none-eabi/thumbv7m-none-eabi
during development).
If you have added further tests, you need to add the expected output in the ci/expected
folder.
> cargo run --example <NAME> --target thumbv7m-none-eabi > ci/expected/<NAME>.run
Run internal fail tests locally with:
> cargo test --tests
If you have added fail tests or changed the expected behavior, the expected output needs to be updated (corresponding .stderr
files).
Inspect the error output, when sure that ACTUAL OUTPUT
is correct you can re-run the test as:
> TRYBUILD=overwrite cargo test --tests
This will update the expected output to match the ACTUAL OUTPUT
.
Please check that the updated files are indeed correct to avoid regressions.