The following is a set of guidelines for contributing to heim
.
- Code of conduct
- I just have a question!
- What should I know before I get started?
- How can I contribute?
- Styleguides
This project and everyone participating in it is covered by Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
First of all: do not file an issue to ask a question about how to use heim!
It is not a project goal right now to provide any kind of information
about how to work with Futures
, use heim
with actix
, or any other such things.
Such issues will be closed immediately.
Use any Rust community channel available to get help or check out the Gitter chat.
heim
is split into multiple crates, each one responsible for a specific system component
(ex. heim-cpu
provides information about CPUs, heim-memory
about system memory, you got it).
heim-runtime
contains shim modules, allowing to abstract over various async runtimes,
and also has "polyfill" shim, which executes futures on the current thread.
The heim
crate acts as a facade to all the heim-*
crates and does nothing more
than re-export all of them.
Since heim is a very young project, the public API should not be considered stable.
There is no separate repository for RFC proposals (yet?), so if you have an idea, just create an issue in the main repository.
Before creating bug reports, please check this list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible.
Note: Note: If you find a closed issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
Bugs are tracked as GitHub issues.
Explain the problem and include additional details to help maintainers reproduce the problem:
-
Use a clear and descriptive title for the issue to identify the problem.
-
Describe the exact steps which reproduce the problem in as many details as possible.
-
Provide specific examples to demonstrate the steps. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use Markdown code blocks.
-
Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior.
-
Explain which behavior you expected to see instead and why.
Include details about your configuration and environment:
- Which version of
heim
crate are you using? - What's the name and version of the OS you're using?
You can start by looking through these good-first-issue
issues:
Code you are contributing should pass the following checks:
- Should change only one specific thing
- Not raising any compiler errors or warnings
- Conforms to
rustfmt
rules (see.rustfml.toml
file) - Not raising any
clippy
warnings - Should pass the CI tests
- Create a GitHub Pull Request with patch
- Ensure the Pull Request description clearly describes the problem and solution. Include the relevant issue number if applicable.
- Ensure that all checks are passing
Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability will generally not be accepted.
- Provide precise information about change made
- Refer the issues and pull requests