Thanks for contributing towards the teensy4-rs
project! This guide
lists the best places to report bugs and request features. It also
describes how we develop the teensy4-rs
project, and how you can help
us build Rust support for the Teensy 4.
Need help, or have a question about the project? Post your questions in discussions.
Much teensy4-rs
project development happens outside of this
repository. teensy4-rs
contributors also support the imxrt-rs
project. Notably, the imxrt-rs
project provides the imxrt-hal
crate, which defines the hardware abstraction layer (HAL) for the Teensy
4.
When requesting a feature or reporting a bug, consider if the issue should be created here, or in one of the other issue trackers described above. To get an idea of where to submit issues, see Issues.
Changes in the teensy4-rs
project typically happen only after changes
to one of those dependent crates. So, your contributions towards the
teensy4-rs
project may be better suited as contributions to one of
those crates. To understand where you should develop new features or fix
bugs, see Development.
Requesting features and reporting bugs are both great ways of
contributing to the teensy4-rs
project! To maximize the impact of your
contributions, make sure you use the correct issue tracker. In the
section below, we describe which issue tracker to use for various
feature requests and bug reports.
When in doubt, feel free to report an issue in the teensy4-rs
repo,
and we will triage the issue.
We develop new peripherals in the imxrt-hal
crate. Use the
imxrt-hal
's issue tracker to request a feature.
We fix peripherals in the imxrt-hal
crate. Use the imxrt-hal
's
issue tracker to report a bug.
These types of questions typically require better documentation in the
imxrt-hal
crate. Ask peripheral-related questions in the
imxrt-hal
issue tracker.
Sorry about that! Open an issue in the teensy4-rs
project.
"The imxrt-hal
has [XYZ], but I can't seem to make it work with the Teensy 4!"
Open an issue in the teensy4-rs
project. It may be that we haven't
released the feature yet, or we forgot to integrate the HAL's feature in
the Teensy 4.
To develop the teensy4-rs
crates, ensure that you have the build
dependencies described in the README. We recommend installing (or
building from source) the teensy_loader_cli
command line Teensy
loader, since it's used in some of our automation. The graphical [Teensy
Loader Application] will also work.
Following the "getting started" guide in the README to test examples
against your physical Teensy 4. If everything works, you're ready to
contribute! But, before jumping in, make sure that your changes belong
in the teensy4-rs
project.
If you'd like to add a new peripheral or processor capability, add the
feature to the imxrt-hal
crate. Then, integrate it in the
teensy4-bsp
. By first adding the peripheral to the imxrt-hal
crate,
you'll help other users who use the i.MX RT processors in other
projects. See the imxrt-hal
's contributing guidelines to learn about
imxrt-hal
development.
If you'd like to change
- the Teensy 4's memory layout
- Teensy 4 pin definitions
make those changes here, in the teensy4-rs
project.
Since most development happens outside of the teensy4-rs
repo, we
don't maintain a strict workflow in this repo. This section describes
what the teensy4-rs
contributors are doing today. Note that this
workflow is subject to change.
The main branch describes all upcoming, unreleased development. The main branch always builds. It may use git dependencies to reference unreleased dependencies. Prefer to use dependency patches, rather than directly replacing the dependency, if either option would work.
Tag releases on either the main branch, or the release branch. Create a release branch when there's a breaking change on the main branch.
Fix bugs on the main branch. Cherry-pick the fix onto the previous release branch, if applicable.
See the imxrt-rs
project documentation for recommended hardware
references, and for more information on teensy4-rs
dependencies.