Thank you for your interest in contributing to Core Web! We welcome contributions from the community and are excited to work with you.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
If you discover a security vulnerability, please follow our Security Policy rather than submitting a public issue. We take security seriously and appreciate responsible disclosure.
If you find a bug, please open an issue on GitHub with:
- A clear and descriptive title
- A detailed description of the problem
- Steps to reproduce the issue
- Expected vs. actual behavior
- Any relevant code snippets or error messages
We welcome ideas for new features or improvements. Please open an issue with:
- A clear and descriptive title
- A detailed explanation of the enhancement
- The motivation for the change
- Any implementation ideas you might have
- Fork the repository
- Create a new branch for your feature or bug fix
- Make your changes
- Add tests if applicable
- Ensure all tests pass
- Update documentation as needed
- Submit a pull request
- Keep changes focused and atomic
- Write clear commit messages
- Follow the existing code style
- Include tests for new functionality
- Update documentation when necessary
- Reference any related issues in your PR description
- Install Rust (latest stable version)
- Clone the repository
- Run
cargo buildto compile the project - Run
cargo testto execute tests
We follow the Rust community's standard code style. Please ensure your code:
- Passes
cargo fmtfor formatting - Passes
cargo clippyfor linting - Includes appropriate documentation comments
All contributions should include tests. We use:
- Unit tests for individual functions and modules
- Integration tests for larger components
- End-to-end tests for critical user workflows
Run tests with:
cargo testWhen contributing code, please consider:
- Avoiding unsafe code unless absolutely necessary
- Properly validating and sanitizing inputs
- Following secure coding practices
- Updating dependencies responsibly
All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests.
Our repository uses branch protection rules to ensure code quality:
- All changes must be made through pull requests
- Main branch requires status checks to pass before merging
- Main branch requires at least one approved review
- Main branch is protected from force pushes
- Linear history is required
The main branch is protected with the following rules:
-
Required Status Checks
- CI workflow must pass
- CodeQL analysis must pass
- Security audit must pass
- Formatting checks must pass
- Cross-platform tests must pass
-
Required Pull Request Reviews
- At least one approved review is required
- Stale approvals are dismissed when new commits are pushed
- Code owners are automatically requested for review
-
Additional Protection
- Branch must be up to date before merging
- Linear history is required
- Force pushes are denied
- Deletion is denied
If you have any questions about contributing, feel free to open an issue or contact the maintainers.
Thank you for helping make Core Web better!