xref: /wasmtime-44.0.1/docs/contributing.md (revision bbd12e92)
1# Contributing
2
3We're excited to work on Wasmtime and/or Cranelift together with you! This guide
4should help you get up and running with Wasmtime and Cranelift development. But
5first, make sure you've read the [Code of Conduct](./contributing-coc.md)!
6
7Wasmtime and Cranelift are very ambitious projects with many goals, and while
8we're confident we can achieve some of them, we see many opportunities for
9people to get involved and help us achieve even more.
10
11## Join Our Chat
12
13We chat about Wasmtime and Cranelift development on Zulip — [join
14us!](https://bytecodealliance.zulipchat.com/). You can also join specific
15streams:
16
17* [#wasmtime](https://bytecodealliance.zulipchat.com/#narrow/stream/217126-wasmtime)
18* [#cranelift](https://bytecodealliance.zulipchat.com/#narrow/stream/217117-cranelift)
19
20If you're having trouble building Wasmtime or Cranelift, aren't sure why a test
21is failing, or have any other questions, feel free to ask on Zulip. Not
22everything we hope to do with these projects is reflected in the code or
23documentation yet, so if you see things that seem missing or that don't make
24sense, or even that just don't work the way you expect them to, we're also
25interested to hear about that!
26
27As always, you're more than welcome to [open an
28issue](https://github.com/bytecodealliance/wasmtime/issues/new) too!
29
30Finally, we have biweekly project meetings, hosted on Zoom, for Wasmtime and
31Cranelift. For more information, see our [meetings agendas/minutes
32repository](https://github.com/bytecodealliance/meetings). Please feel free to
33contact us via Zulip if you're interested in joining!
34
35## Finding Something to Hack On
36
37If you're looking for something to do, these are great places to start:
38
39* [Issues labeled "good first
40  issue"](https://github.com/bytecodealliance/wasmtime/labels/good%20first%20issue)
41  — these issues tend to be simple, what needs to be done is well known,
42  and are good for new contributors to tackle. The goal is to learn Wasmtime's
43  development workflow and make sure that you can build and test Wasmtime.
44
45* [Issues labeled "help
46  wanted"](https://github.com/bytecodealliance/wasmtime/labels/help%20wanted)
47  — these are issues that we need a little help with!
48
49If you're unsure if an issue is a good fit for you or not, feel free to ask in a
50comment on the issue, or in chat.
51
52### Mentoring
53
54We're happy to mentor people, whether you're learning Rust, learning about
55compiler backends, learning about machine code, learning about wasm, learning
56about how Cranelift does things, or all together at once.
57
58We categorize issues in the issue tracker using a tag scheme inspired by
59[Rust's issue tags]. For example, the [E-easy] marks good beginner issues,
60and [E-rust] marks issues which likely require some familiarity with Rust,
61though not necessarily Cranelift-specific or even compiler-specific
62experience. [E-compiler-easy] marks issues good for beginners who have
63some familiarity with compilers, or are interested in gaining some :-).
64
65See also the [full list of Cranelift labels].
66
67Also, we encourage people to just look around and find things they're
68interested in. This a good time to get involved, as there aren't a lot of
69things set in stone yet.
70
71### Avoiding Trivial Pull Requests
72
73Merging a Pull Request comes at a fundamental cost, from adding to the volume
74of notifications maintainers receive, to at least one maintainer having to
75review the proposed changes, to the many hours of machine time our CI consumes
76before greenlighting a PR.
77
78As such, we request that contributors don't open Pull Requests with trivial
79changes, such as typo fixes in documentation. Instead, those changes should be
80included, as separate commits, in more substantive Pull Requests. Wasmtime
81maintainers will close Pull Requests containing only trivial changes with a
82reference to this section of the docs.
83
84[Rust's issue tags]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#issue-triage
85[E-easy]: https://github.com/bytecodealliance/wasmtime/labels/cranelift%3AE-easy
86[E-rust]: https://github.com/bytecodealliance/wasmtime/labels/cranelift%3AE-rust
87[E-compiler-easy]: https://github.com/bytecodealliance/wasmtime/labels/cranelift%3AE-compiler-easy
88[full list of Cranelift labels]: https://github.com/bytecodealliance/wasmtime/labels?q=cranelift
89