First off, thank you for considering contributing to Input Source Pro! We welcome any help, whether it's reporting a bug, proposing a feature, improving documentation, adding translations, or writing code.
This document provides guidelines to help you contribute effectively.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to support@inputsource.pro.
- Reporting Bugs: If you find a bug, please report it!
- Suggesting Enhancements: Have an idea for a new feature or an improvement? Let us know.
- Pull Requests: Contribute code, documentation updates, or translations.
- Answering Questions: Help others in the GitHub Discussions section.
Before submitting a bug report, please check the existing GitHub Issues to see if someone else has already reported it.
If not, create a new issue and provide the following information:
- Clear Title: Describe the issue concisely.
- Steps to Reproduce: Detailed steps to reliably reproduce the behavior.
- Expected Behavior: What you expected to happen.
- Actual Behavior: What actually happened. Include error messages or screenshots if applicable.
- Environment:
- Input Source Pro Version (e.g., 1.2.3 Build 456 - found in left bottom corner of the app)
- macOS Version (e.g., macOS 15.4.1 - found in "About This Mac")
- Affected Application(s) (if applicable)
- Relevant Input Sources used
We track feature requests using GitHub Discussions. Before creating a new one, check if a similar suggestion already exists.
When submitting an enhancement suggestion, please include:
- Clear Title: Describe the enhancement concisely.
- Problem Description: What problem does this enhancement solve? Why is it needed?
- Proposed Solution: A clear description of the feature or improvement you envision.
- Alternatives Considered: (Optional) Any alternative solutions or features you've considered.
- Additional Context: Mockups, examples, or related information.
Ready to contribute code? Here's how to set up and submit a pull request:
- Fork the repository on GitHub.
- Clone your fork locally:
git clone git@github.com:runjuu/InputSourcePro.git - Open the project (
Input Source Pro.xcodeproj) in the latest stable version of Xcode. - Dependencies are managed via Swift Package Manager (SPM) and should resolve automatically when you open the project.
- Build and Run the project (Cmd+R) to ensure everything is set up correctly.
- Create a new branch for your changes, based off the
mainbranch. Use a descriptive name (e.g.,feature/add-xyz-support,fix/indicator-crash).git checkout main git pull origin main git checkout -b feature/your-descriptive-branch-name
- Write your code. Please try to follow the existing code style. If you add new features, consider adding tests if applicable.
- Ensure the project builds successfully (Cmd+B).
- Commit your changes with clear and concise commit messages. Reference the issue number if your PR addresses a specific issue (e.g.,
Fix #123: Resolve crash when switching sources rapidly).git add . git commit -m "feat: Add support for XYZ browser rule"
- Push your branch to your fork on GitHub:
git push origin feature/your-descriptive-branch-name
- Go to the original
InputSourceProrepository on GitHub. - Click on "Pull Requests" and then "New pull request".
- Choose your fork and the branch containing your changes.
- Write a clear description for your Pull Request:
- Explain the purpose of your changes.
- Link to any relevant issues (e.g., "Closes #123").
- Summarize the changes made.
- Describe any testing you performed.
- Submit the Pull Request. A maintainer will review it as soon as possible. Be prepared to discuss your changes and make adjustments based on feedback.
- Code Style: Follow the existing Swift conventions used in the project. Keep code clear and readable.
- Git Commit Messages: Use conventional commit messages if possible (e.g.,
feat: ...,fix: ...,docs: ...), but clear, descriptive messages are the priority. - Swift Code: Follow standard Swift API Design Guidelines and try to match the style of the surrounding code.
By contributing, you agree that your contributions will be licensed under the GPL-3.0 License that covers the project.
Thank you again for your interest in contributing!