Skip to content

Latest commit

 

History

History
123 lines (88 loc) · 3.73 KB

File metadata and controls

123 lines (88 loc) · 3.73 KB

Contributing to Core Web

Thank you for your interest in contributing to Core Web! We welcome contributions from the community and are excited to work with you.

Code of Conduct

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.

Security Contributions

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.

How to Contribute

Reporting Bugs

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

Suggesting Enhancements

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

Pull Requests

  1. Fork the repository
  2. Create a new branch for your feature or bug fix
  3. Make your changes
  4. Add tests if applicable
  5. Ensure all tests pass
  6. Update documentation as needed
  7. Submit a pull request

Pull Request Guidelines

  • 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

Development Setup

  1. Install Rust (latest stable version)
  2. Clone the repository
  3. Run cargo build to compile the project
  4. Run cargo test to execute tests

Code Style

We follow the Rust community's standard code style. Please ensure your code:

  • Passes cargo fmt for formatting
  • Passes cargo clippy for linting
  • Includes appropriate documentation comments

Testing

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 test

Security Considerations

When contributing code, please consider:

  • Avoiding unsafe code unless absolutely necessary
  • Properly validating and sanitizing inputs
  • Following secure coding practices
  • Updating dependencies responsibly

Code Review Process

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

Branch Protection

The main branch is protected with the following rules:

  1. Required Status Checks

    • CI workflow must pass
    • CodeQL analysis must pass
    • Security audit must pass
    • Formatting checks must pass
    • Cross-platform tests must pass
  2. 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
  3. Additional Protection

    • Branch must be up to date before merging
    • Linear history is required
    • Force pushes are denied
    • Deletion is denied

Questions?

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!