1bf526b62SAlex Crichton# Contributing 2bf526b62SAlex Crichton 3986f9f79SAlex CrichtonWe're excited to work on Wasmtime and/or Cranelift together with you! This guide 4986f9f79SAlex Crichtonshould help you get up and running with Wasmtime and Cranelift development. But 5*ac3358b1SChris Fallinfirst, make sure you've read the [Code of Conduct](./contributing-coc.md)! 6986f9f79SAlex Crichton 7986f9f79SAlex CrichtonWasmtime and Cranelift are very ambitious projects with many goals, and while 8986f9f79SAlex Crichtonwe're confident we can achieve some of them, we see many opportunities for 9986f9f79SAlex Crichtonpeople to get involved and help us achieve even more. 104ba52205SNick Fitzgerald 114ba52205SNick Fitzgerald## Join Our Chat 124ba52205SNick Fitzgerald 13986f9f79SAlex CrichtonWe chat about Wasmtime and Cranelift development on Zulip — [join 14986f9f79SAlex Crichtonus!](https://bytecodealliance.zulipchat.com/). You can also join specific 15986f9f79SAlex Crichtonstreams: 164ba52205SNick Fitzgerald 17986f9f79SAlex Crichton* [#wasmtime](https://bytecodealliance.zulipchat.com/#narrow/stream/217126-wasmtime) 18986f9f79SAlex Crichton* [#cranelift](https://bytecodealliance.zulipchat.com/#narrow/stream/217117-cranelift) 19986f9f79SAlex Crichton 20986f9f79SAlex CrichtonIf you're having trouble building Wasmtime or Cranelift, aren't sure why a test 21986f9f79SAlex Crichtonis failing, or have any other questions, feel free to ask on Zulip. Not 22986f9f79SAlex Crichtoneverything we hope to do with these projects is reflected in the code or 23986f9f79SAlex Crichtondocumentation yet, so if you see things that seem missing or that don't make 24986f9f79SAlex Crichtonsense, or even that just don't work the way you expect them to, we're also 25986f9f79SAlex Crichtoninterested to hear about that! 26986f9f79SAlex Crichton 27986f9f79SAlex CrichtonAs always, you're more than welcome to [open an 28986f9f79SAlex Crichtonissue](https://github.com/bytecodealliance/wasmtime/issues/new) too! 294ba52205SNick Fitzgerald 30f1b821e1SChris FallinFinally, we have biweekly project meetings, hosted on Zoom, for Wasmtime and 31f1b821e1SChris FallinCranelift. For more information, see our [meetings agendas/minutes 32f1b821e1SChris Fallinrepository](https://github.com/bytecodealliance/meetings). Please feel free to 33f1b821e1SChris Fallincontact us via Zulip if you're interested in joining! 34f1b821e1SChris Fallin 354ba52205SNick Fitzgerald## Finding Something to Hack On 364ba52205SNick Fitzgerald 374ba52205SNick FitzgeraldIf you're looking for something to do, these are great places to start: 384ba52205SNick Fitzgerald 394ba52205SNick Fitzgerald* [Issues labeled "good first 404ba52205SNick Fitzgerald issue"](https://github.com/bytecodealliance/wasmtime/labels/good%20first%20issue) 414ba52205SNick Fitzgerald — these issues tend to be simple, what needs to be done is well known, 424ba52205SNick Fitzgerald and are good for new contributors to tackle. The goal is to learn Wasmtime's 434ba52205SNick Fitzgerald development workflow and make sure that you can build and test Wasmtime. 444ba52205SNick Fitzgerald 454ba52205SNick Fitzgerald* [Issues labeled "help 464ba52205SNick Fitzgerald wanted"](https://github.com/bytecodealliance/wasmtime/labels/help%20wanted) 474ba52205SNick Fitzgerald — these are issues that we need a little help with! 484ba52205SNick Fitzgerald 494ba52205SNick FitzgeraldIf you're unsure if an issue is a good fit for you or not, feel free to ask in a 504ba52205SNick Fitzgeraldcomment on the issue, or in chat. 51986f9f79SAlex Crichton 52986f9f79SAlex Crichton### Mentoring 53986f9f79SAlex Crichton 54986f9f79SAlex CrichtonWe're happy to mentor people, whether you're learning Rust, learning about 55986f9f79SAlex Crichtoncompiler backends, learning about machine code, learning about wasm, learning 56986f9f79SAlex Crichtonabout how Cranelift does things, or all together at once. 57986f9f79SAlex Crichton 58986f9f79SAlex CrichtonWe categorize issues in the issue tracker using a tag scheme inspired by 59986f9f79SAlex Crichton[Rust's issue tags]. For example, the [E-easy] marks good beginner issues, 60986f9f79SAlex Crichtonand [E-rust] marks issues which likely require some familiarity with Rust, 61986f9f79SAlex Crichtonthough not necessarily Cranelift-specific or even compiler-specific 62986f9f79SAlex Crichtonexperience. [E-compiler-easy] marks issues good for beginners who have 63986f9f79SAlex Crichtonsome familiarity with compilers, or are interested in gaining some :-). 64986f9f79SAlex Crichton 658f824a9fSTill SchneidereitSee also the [full list of Cranelift labels]. 66986f9f79SAlex Crichton 67986f9f79SAlex CrichtonAlso, we encourage people to just look around and find things they're 68986f9f79SAlex Crichtoninterested in. This a good time to get involved, as there aren't a lot of 69986f9f79SAlex Crichtonthings set in stone yet. 70986f9f79SAlex Crichton 710c87b167STill Schneidereit### Avoiding Trivial Pull Requests 722974ca4dSPat Hickey 730c87b167STill SchneidereitMerging a Pull Request comes at a fundamental cost, from adding to the volume 740c87b167STill Schneidereitof notifications maintainers receive, to at least one maintainer having to 750c87b167STill Schneidereitreview the proposed changes, to the many hours of machine time our CI consumes 760c87b167STill Schneidereitbefore greenlighting a PR. 770c87b167STill Schneidereit 780c87b167STill SchneidereitAs such, we request that contributors don't open Pull Requests with trivial 790c87b167STill Schneidereitchanges, such as typo fixes in documentation. Instead, those changes should be 800c87b167STill Schneidereitincluded, as separate commits, in more substantive Pull Requests. Wasmtime 810c87b167STill Schneidereitmaintainers will close Pull Requests containing only trivial changes with a 820c87b167STill Schneidereitreference to this section of the docs. 832974ca4dSPat Hickey 84986f9f79SAlex Crichton[Rust's issue tags]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#issue-triage 858f824a9fSTill Schneidereit[E-easy]: https://github.com/bytecodealliance/wasmtime/labels/cranelift%3AE-easy 868f824a9fSTill Schneidereit[E-rust]: https://github.com/bytecodealliance/wasmtime/labels/cranelift%3AE-rust 878f824a9fSTill Schneidereit[E-compiler-easy]: https://github.com/bytecodealliance/wasmtime/labels/cranelift%3AE-compiler-easy 888f824a9fSTill Schneidereit[full list of Cranelift labels]: https://github.com/bytecodealliance/wasmtime/labels?q=cranelift 89