You must fully understand the project's requirements and guidelines to contribute effectively and avoid inconvenience.
Wave is an open-source project, and contributions from anyone are welcome. However, please follow these guidelines to ensure your contributions align with the project's goals and standards.
We primarily use Rust as the main programming language for Wave. Once Wave reaches a stage where bootstrapping is feasible, we plan to transition the main language to Wave itself.
To maintain consistency across the project, we strictly follow the K&R style. Contributions using styles like BSD, GNU, or others may be rejected or require modifications to adhere to K&R.
- Correct:
fn main() {
println!("Hello World!");
}
- Incorrect:
fn main()
{
println!("Hello World!");
}
fn main()
{
println!("Hello World!");
}
Start by forking the project repository to your GitHub account. Make changes in your forked repository and submit a pull request when ready.
Before contributing, familiarize yourself with the standard Rust project structure:
project_root/
├── src/
│ ├── main.rs
│ ├── lib.rs
│ └── [feature-specific modules]
├── tests/
├── examples/
├── Cargo.toml
└── README.md
- New Features: Create a new module under
src/
or extend an existing one. - Bug Fixes: Locate the affected file and modify it directly.
- Tests: Add test cases in the
tests/
directory or expand existing test files.
Do not create folders named after contributors. Track contributions using Git and list contributor information in the CONTRIBUTORS
file, if necessary.
Before submitting your changes:
- Build: Ensure your code compiles without errors.
- Run Tests: Verify that all existing tests pass successfully.
- Add Tests: Write and run tests for any new functionality.
- Code Style: Confirm adherence to the project's coding standards.
Only submit a pull request after all tests pass and your code is fully validated.
Submit your pull request to the official repository: GitHub Repository
Include the Following Details:
- Purpose and functionality of your changes.
- Programming language used.
- Libraries used (including any self-developed libraries with detailed explanations).
- Frameworks used (including any self-developed frameworks).
- Technologies or methodologies applied in your contribution.
Providing detailed information helps maintainers evaluate and integrate your contribution effectively.
By adhering to these guidelines, you help maintain the quality, stability, and consistency of the Wave project. Thank you for contributing!