1# Development Process 2 3We use [issues] for asking questions ([open one here][newissue]!) and tracking 4bugs and unimplemented features, and [pull requests] (PRs) for tracking and 5reviewing code submissions. We triage new issues at each of our bi-weekly 6[Wasmtime meetings][meetings]. 7 8### Before submitting a PR 9 10Consider opening an issue to talk about it. PRs without corresponding issues 11are appropriate for fairly narrow technical matters, not for fixes to 12user-facing bugs or for feature implementations, especially when those features 13might have multiple implementation strategies that usefully could be discussed. 14 15Our issue templates might help you through the process. 16 17### When submitting PRs 18 19 - Please answer the questions in the pull request template. They are the 20 minimum information we need to know in order to understand your changes. 21 22 - Write clear commit messages that start with a one-line summary of the 23 change (and if it's difficult to summarize in one line, consider 24 splitting the change into multiple PRs), optionally followed by 25 additional context. Good things to mention include which areas of the 26 code are affected, which features are affected, and anything that 27 reviewers might want to pay special attention to. 28 29 - If there is code which needs explanation, prefer to put the explanation in a 30 comment in the code, or in documentation, rather than in the commit message. 31 Commit messages should explain why the new version is better than the old. 32 33 - Please include new test cases that cover your changes, if you can. If you're 34 not sure how to do that, we'll help you during our review process. 35 36 - For pull requests that fix existing issues, use [issue keywords]. Note that 37 not all pull requests need to have accompanying issues. 38 39 - When updating your pull request, please make sure to re-request review if 40 the request has been cancelled. 41 42### Focused commits or squashing 43 44We are not picky about how your git commits are structured. When we merge your 45PR, we will squash all of your commits into one, so it's okay if you add fixes 46in new commits. 47 48We appreciate it if you can organize your work into separate commits which each 49make one focused change, because then we can more easily understand your 50changes during review. But we don't require this. 51 52Once someone has reviewed your PR, it's easier for us if you _don't_ rebase it 53when making further changes. Instead, at that point we prefer that you make new 54commits on top of the already-reviewed work. 55 56That said rebasing (or merging from `main`) may still be required in situations 57such as: 58 59* Your PR has a merge conflict with the `main` branch. 60* CI on your PR is failing for unrelated reasons and a fix was applied to `main` 61 which needs to be picked up on your branch. 62* Other miscellaneous technical reasons may cause us to ask for a rebase. 63 64If you need help rebasing or merging, please ask! 65 66### Review and merge 67 68Anyone may submit a pull request, and anyone may comment on or review others' 69pull requests. However, one review from somebody in the [Core Team] is required 70before the Core Team merges it. 71 72Even Core Team members must create PRs and get review from another Core Team 73member for every change, including minor work items such as version bumps, 74removing warnings, etc. 75 76[issues]: https://guides.github.com/features/issues/ 77[pull requests]: https://help.github.com/articles/about-pull-requests/ 78[issue keywords]: https://help.github.com/articles/closing-issues-using-keywords/ 79[Core Team]: https://github.com/orgs/bytecodealliance/people/ 80[newissue]: https://github.com/bytecodealliance/wasmtime/issues/new 81[meetings]: https://github.com/bytecodealliance/meetings/tree/main/wasmtime 82