xref: /wasmtime-44.0.1/docs/contributing.md (revision ac3358b1)
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