How to Contribute to Wasmer
August 28, 2026 ยท View on GitHub
Thank you for your interest in contributing to Wasmer. This document outlines the expectations for issues and pull requests.
Issues & Feature Requests
Please use the issue template and provide a failing example if possible to help us recreate the issue.
Warning
Do not fix a security vulnerability in a public PR. Embargoed work goes through the private process in SECURITY.md. A public fix before disclosure exposes users.
Code Style
Sparse "why" comments. Short single-responsibility functions.
Lint and Format
CI rejects lint and format failures. Run before you push:
make lint
The lint target in the Makefile defines exactly what
runs. To apply clippy fixes in bulk:
cargo clippy --all --exclude wasmer-swift --locked --fix --allow-dirty -- -D clippy::all
cargo fmt does not cover lib/wasix/tests/wasm_tests. CI formats those
files with rustfmt --edition 2024 directly.
Pull Requests
For large changes, open a GitHub issue first to ensure we can accept the change once it is ready.
- Title format is conventional-commit style with crate or area scopes:
fix(Singlepass): ...,feat(wasix): ...,feat!: ...for breaking changes,chore: ...,deps: .... - PRs are squash-merged to
main. The PR template has one# Descriptionsection. - Before you submit:
make lint, thencargo testin the crates you touched, then a build of the CLI. - Do not hand-edit
CHANGELOG.mdor crate versions. Releases generate both (see dev/release.md). - macOS and musl CI jobs run on a PR only when the PR has the
macosormusllabel. If your change touches platform code, add the label. - Do not commit a submodule pointer bump in an unrelated PR.
Common Build Issues
LLVM Dependency
Didn't find usable system-wide LLVM means LLVM 22 is missing. Either
install it or build with ENABLE_LLVM=0. See
Building Wasmer from Source for installation
instructions.