Please read our Code of Conduct. The MessageKit maintainers take this Code of Conduct very seriously. Intolereance, disrespect, harassment, and any form of negavity will not be tolerated.
You can contribute to MessageKit in a variety of ways:
- Fixing or reporting bugs 😱
- Improving documentation ❤️
- Suggesting new features 😃
- Increasing unit test coverage 🙏
- Resolving any open issues 👍
If you're new to Open Source or Swift, the MessageKit community is a great place to get involved.
Your contributions are always welcome, no contribution is too small.
-
Please check the README to see if your question is answered there.
-
Search open issues and closed issues to avoid opening a duplicate issue.
-
Avoiding duplicate issues organizes all relevant information for project maintainers and other users.
-
If no issues represent your problem, please open a new issue with a good title and useful description.
-
Information to Provide When Opening an Issue:
- MessageKit version(s)
- iOS version(s)
- Devices/Simulators affected
- Full crash log, if applicable
- A well written description of the problem you are experiencing
- Please provide complete steps to reproduce the issue
- For UI related issues, please provide a screenshot/GIF/video showing the issue
- Link to a project or demo project that exhibits the issue
- Search for an list any issues that might be related
The more information you can provide, the easier it will be for us to resolve your issue in a timely manner.
-
Please read the MessageKit VISION.md document to understand the project goals, scope, and other technical considerations.
-
We strongly encourage you to open an issue discussing any potential new features before an implementation is provided.
- This ensures the feature is in scope and no ones time is wasted.
-
Please DO NOT submit pull requests to the
master
branch- This branch is always stable and represents a release.
-
Please DO submit your pull request to the branch representing the next release version
- Link to any issues the pull request resolves. If none exist, create one.
- Write unit tests for new functionality or fix any broken by your changes.
- If your changes affect documentation, please update them accordingly.
- Avoid pull requests with a large number of commits.
- Write clean code and follow the MessageKit style guidelines.
You should submit one pull request per feature, the smaller the pull request the better chances it will be merged. Enormous pull requests take a signficant time to review and understand their implications on the existing codebase.
Writing clean code and upholding project standards is as important as adding new features. To ensure this, MessageKit employs a few practices:
- We use SwiftLint to enforce style and conventions at compile time.
- We adhere to the Swift API Design Guidelines.
- We follow the Raywenderlich Swift Style Guide but may have slight variations.
If any of the sections above are unclear and require further explanation, do not hesitate to reach out. MessageKit strives to build an inclusive open source community and to make contributing as easy as possible for memebers of all experience levels.
You can get in touch with the MessageKit core team directly by joining our open Slack community channel: here.