We welcome all kinds of contributions—code, documentation, designs, theory, and more.
-
Code Style
- Class Names: Use
CamelCase(e.g.,CubeSolver,EdgeCorner). - Variables, Functions, and File Names: Use
snake_case(e.g.,solve_cube,edge_corner.py). - Constants: Use
UPPER_CASE(e.g.,MAX_MOVES). - Indentation: Use 4 spaces (no tabs).
- Comments: Write clear, concise comments where necessary.
- Class Names: Use
-
Documentation
- Keep docstrings and comments up to date.
- Write clear and friendly README files for new modules.
-
Commits
- Use descriptive commit messages.
- Group related changes together.
-
Testing
- Add or update tests for new features and bug fixes.
- Make sure your code passes existing tests.
-
Pull Requests
- Clearly describe your changes and why they’re needed.
- Reference related issues if applicable.
Each sub-package (like cube/, algo/, ai/, designs/, group_theory/) has its own CONTRIBUTING.md file for more specific instructions and tips.
Please check those before contributing to a particular part of the project.
Be respectful, constructive, and collaborative.
We want this project to be welcoming and fun for everyone!
Thanks for helping make this project awesome! 🧩