mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-21 22:33:49 +00:00
meta: add CONTRIBUTING.md
This commit is contained in:
parent
ea75a8ced4
commit
58ec5f0bae
116
CONTRIBUTING.md
Normal file
116
CONTRIBUTING.md
Normal file
@ -0,0 +1,116 @@
|
||||
This document is a guide for contributions to the WGPU project.
|
||||
|
||||
## Welcome!
|
||||
|
||||
First of all, welcome to the WGPU community! 👋 We're glad you want to
|
||||
contribute. If you are unfamiliar with the WGPU project, we recommend you read
|
||||
[`GOVERNANCE.md`] for an overview of its goals, and how it's governed.
|
||||
|
||||
[`GOVERNANCE.md`]: ./GOVERNANCE.md
|
||||
|
||||
## Talking to other humans in the WGPU project
|
||||
|
||||
The WGPU project has multiple official platforms for community engagement:
|
||||
|
||||
- The Matrix channel [`wgpu:matrix.org`](https://matrix.to/#/#wgpu:matrix.org)
|
||||
is dedicated to informal chat about contributions the project. It is
|
||||
particularly useful for:
|
||||
|
||||
- …saying hello, and introducing yourself.
|
||||
- …validating contributions (i.e., determining if they'll be accepted,
|
||||
ensuring your approach is correct, making sure you aren't wasting effort,
|
||||
etc.).
|
||||
- …setting expectations for contributions.
|
||||
|
||||
Notification in Matrix can sometimes be unreliable. Feel free to explicitly
|
||||
tag people from whom you would like attention, esp. to follow-up after a day
|
||||
or so if you do not get a response to your contributions.
|
||||
|
||||
- [GitHub issues] are used to discuss open development questions and track work
|
||||
the community intends to complete; this might include:
|
||||
|
||||
- Work that needs resolution via pull requests (see below)
|
||||
- Bug reports
|
||||
- Feature requests
|
||||
- Creating new releases of crates
|
||||
- Recording project decisions formally.
|
||||
- Architectural discussion
|
||||
- ???
|
||||
- Compiling sets of other issues needed for a specific feature or use case
|
||||
(AKA `[meta]` issues).
|
||||
|
||||
- [GitHub pull requests]: Modifications to the contents of this repository are
|
||||
done through pull requests.
|
||||
- [GitHub discussions]: TODO: Experimentally used by some enthusiastic members
|
||||
of our community. Not supported officially.
|
||||
|
||||
[GitHub discussions]: https://github.com/gfx-rs/wgpu/discussions
|
||||
[GitHub issues]: https://github.com/gfx-rs/wgpu/issues
|
||||
[GitHub pull requests]: https://github.com/gfx-rs/wgpu/pulls
|
||||
|
||||
## Contributing to WGPU
|
||||
|
||||
Community response to contributions are, in general, prioritized based on their
|
||||
relevance to WGPU's mission and decision-making groups' interest (see
|
||||
[`GOVERNANCE.md`]).
|
||||
|
||||
### "What can I work on?" as a new contributor
|
||||
|
||||
TODO
|
||||
|
||||
We discourage new contributors from submitting large changes or opinionated
|
||||
refactors unless they have been specifically validated by WGPU maintainership.
|
||||
These are likely to be rejected on basis of needing discussion before a formal
|
||||
review.
|
||||
|
||||
### Setting up a WGPU development environment
|
||||
|
||||
We use the following components in a WGPU development environment:
|
||||
|
||||
- [The version of the Rust toolchain with the `cargo` command][install-rust],
|
||||
pointed to by `rust-toolchain.toml` at the root of the repository, to compile
|
||||
WGPU's code.
|
||||
- [Taplo](https://taplo.tamasfe.dev/) to keep TOML files formatted.
|
||||
|
||||
Once these are done, you should be ready to hack on WGPU! Drop into your
|
||||
favorite editor, make some changes to the repository's code, and test that WGPU
|
||||
has been changed the way you expect. We recommend
|
||||
[using a `path` dependency][path-deps] in Cargo for local testing of changes,
|
||||
and a [`git` dependency][git-deps] pointing to your own fork to share changes
|
||||
with other contributors.
|
||||
|
||||
Once you are ready to request a review of your changes so they become part of
|
||||
WGPU public history, create a pull request with your changes committed to a
|
||||
branch in your own fork of WGPU in GitHub. See documentation for that
|
||||
[here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork).
|
||||
|
||||
[install-rust]: https://www.rust-lang.org/tools/install
|
||||
[path-deps]: https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies
|
||||
[git-deps]: https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories
|
||||
|
||||
### What to expect when you file an issue
|
||||
|
||||
TODO
|
||||
|
||||
- Describe the filing process
|
||||
- Link to new issue page
|
||||
- Describe how to socialize the issue effectively
|
||||
- Feel free to ping us if it's a blocker!
|
||||
- Suggesting tags is helpful.
|
||||
- Describe how the project will handle the issue
|
||||
- Our ability to respond to an issue depends entirely on whether it is
|
||||
_actionable_ (viz., that there is a course of action that is reasonable
|
||||
for a volunteer to take the time to do). If it's not actionable, we
|
||||
reserve the right to close it.
|
||||
- Being responsive to requests for further information is important.
|
||||
- Understanding what point in the repository's history an issue began is
|
||||
also important. Maybe link to `git bisect` or something similar?
|
||||
- In particular, expecting others to fix something hardware- or
|
||||
driver-specific that current maintainership (1) can't mentor you
|
||||
into fixing and (2) otherwise isn't being prioritized are likely to
|
||||
be closed.
|
||||
|
||||
### What to expect when you submit a PR
|
||||
|
||||
TODO: It is strongly recommended that you validate your contributions before
|
||||
you make significant efforts…
|
Loading…
Reference in New Issue
Block a user