Skip to content

Latest commit

 

History

History
98 lines (73 loc) · 3.5 KB

File metadata and controls

98 lines (73 loc) · 3.5 KB

Contributing to Kettle

First off, thank you for considering contributing to Kettle! It's people like you that make Kettle such a great tool.

Code of Conduct

This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.

How Can I Contribute?

Reporting Bugs

Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:

  • Use a clear and descriptive title
  • Describe the exact steps which reproduce the problem
  • Provide specific examples to demonstrate the steps
  • Describe the behavior you observed after following the steps
  • Explain which behavior you expected to see instead and why
  • Include screenshots if possible
  • Include your macOS version and Kettle version

Suggesting Enhancements

Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:

  • Use a clear and descriptive title
  • Provide a step-by-step description of the suggested enhancement
  • Provide specific examples to demonstrate the steps
  • Describe the current behavior and explain which behavior you expected to see instead
  • Explain why this enhancement would be useful
  • List some other applications where this enhancement exists, if applicable

Pull Requests

  • Fill in the required template
  • Do not include issue numbers in the PR title
  • Follow the Swift style guide
  • Include screenshots and animated GIFs in your pull request whenever possible
  • Document new code
  • End all files with a newline

Development Process

  1. Fork the repo
  2. Create a new branch from main
  3. Make your changes
  4. Run the tests
  5. Push your branch and submit a pull request
  6. Wait for review and address any comments

Git Commit Messages

  • Use the present tense ("Add feature" not "Added feature")
  • Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
  • Limit the first line to 72 characters or less
  • Reference issues and pull requests liberally after the first line
  • Consider starting the commit message with an applicable emoji:
    • 🎨 :art: when improving the format/structure of the code
    • 🐎 :racehorse: when improving performance
    • 🚱 :non-potable_water: when plugging memory leaks
    • 📝 :memo: when writing docs
    • 🐛 :bug: when fixing a bug
    • 🔥 :fire: when removing code or files
    • 💚 :green_heart: when fixing the CI build
    • :white_check_mark: when adding tests
    • 🔒 :lock: when dealing with security
    • ⬆️ :arrow_up: when upgrading dependencies
    • ⬇️ :arrow_down: when downgrading dependencies

Swift Style Guide

  • Follow the Swift API Design Guidelines
  • Use SwiftLint rules defined in the project
  • Write documentation comments for all public declarations
  • Keep functions small and focused
  • Use meaningful variable names
  • Avoid force unwrapping unless absolutely necessary

Testing

  • Write unit tests for new code
  • Ensure all tests pass before submitting a pull request
  • Include tests for bug fixes
  • Aim for high test coverage

Documentation

  • Keep the README.md up to date
  • Document all public APIs
  • Include comments for complex logic
  • Update documentation when making changes

Questions?

Feel free to open an issue with the tag question if you have any questions about contributing.

Thank you for your contributions! 🎉