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