Thank you for your interest in contributing to xpm! This document provides guidelines to help you get started.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/<your-user>/xpm.git cd xpm
- Create a feature branch:
git checkout -b feature/my-change
- Make your changes, then build and test:
cargo build --workspace cargo test --workspace cargo clippy --workspace --all-targets -- -D warnings cargo fmt --all -- --check - Commit and push your branch, then open a Pull Request
- Rust 2021 edition (1.70+)
- Workspace:
crates/xpm(binary) +crates/xpm-core(library) - Business logic goes in
xpm-core; the binary crate handles CLI only
- Line width: 100 characters max (see
rustfmt.toml) - Clippy: All warnings denied — run
cargo clippy -- -D warnings - Error handling:
thiserrorin the library,anyhowin the binary - Logging: Use
tracingmacros, neverprintln!for debug output - Tests: Place tests in
#[cfg(test)] mod testswithin each file
- Bug fixes and error handling improvements
- New features from the roadmap
- Documentation improvements
- Test coverage for edge cases
- Performance optimizations
- Package format compatibility improvements
Check the ROADMAP.md for planned features.
Open an issue on GitHub with:
- Steps to reproduce
- Expected vs actual behavior
- xpm version (
xpm --version) - Operating system and architecture
Be respectful and constructive. We are building tools for the community.
By contributing, you agree that your contributions will be licensed under GPL-3.0-or-later.