Welcome! We're excited you're interested in contributing to fcvm. Whether you're fixing a typo, reporting a bug, or implementing a new feature, your contribution is valued.
- Fork and clone the repo
- Set up dependencies - see the Required Forks section in the README
- Build with
make build - Run tests with
make test
Found something broken? Open an issue. Include:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Your environment (OS, architecture, etc.)
Have an idea? Open an issue describing:
- The problem you're trying to solve
- Your proposed solution
- Any alternatives you considered
- Check open issues for something to work on
- Comment on the issue to let others know you're working on it
- Fork, branch, and make your changes
- Run
make lintandmake testbefore submitting - Open a pull request
# Build everything
make build
# First-time setup (downloads kernel + creates rootfs, ~5-10 min)
make setup-btrfs
fcvm setup
# Run lints (must pass before PR)
make lint
# Run tests
make test # fuse-pipe tests
make test-root # VM tests (requires sudo + KVM)
# Format code
make fmt- Run
cargo fmtbefore committing - Run
cargo clippyand fix warnings - Keep changes focused - one feature/fix per PR
- Add tests for new functionality
Open an issue! There are no dumb questions.