This document contains information and guidelines about contributing to this project. Please read it before you start participating.
Topics
The Xcode
project is generated using Tuist. To generate and open the project in Xcode, you just need to run:
tuist generate --open
Pull Requests should contain the issue you are solving as well as a description about your implementation/solution. Before submitting a pull request, please check that merge issues are resolved.
We use SwiftLint and SwiftFormat to enforce coding rules. The rules can be found in the .swiftlint.yml
and .swiftformat
file in the root folder of the project. Please make sure you don't have any warning or error before submitting the Pull Request. Both SwiftLint
and SwiftFormat
are run when building the project generated with Tuist
.
Documentation and tests are very important. When you submit a Pull Request, please keep the documentation updated and Implement the appropriated tests. For instance, if you fix a bug, a good idea is to add tests that are aimed to confirm that the issue has been solved and avoid future regressions.
Feel free to open an issue for any doubt or feature request related to Katana.
For any usage questions that are not specific to the project itself (e.g., issus related to Swift), please ask on Stack Overflow instead. By doing so, you'll be more likely to quickly solve your problem, and you'll allow anyone else with the same question to find the answer. This also allows maintainers to focus on improving the project for others.
A great way to contribute to the project is to send a detailed issue when you encounter a problem. We always appreciate a well-written, thorough bug report.
Check that the project issues database doesn't already include that problem or suggestion before submitting an issue. If you find a match, add a quick "+1" or "I have this problem too." Doing this helps prioritize the most common problems and requests.
When reporting issues, please include the following:
- The version of Xcode you're using
- The version of iOS you're targeting
- The full output of any stack trace or compiler error
- A code snippet that reproduces the described behavior, if applicable
- Any other details that would be useful in understanding the problem
This information will help us review and fix your issue faster.
By making a contribution to this project, I certify that:
-
(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or
-
(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or
-
(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
-
(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
Some of the ideas and wording for the statements above were based on work by the Alamofire, Docker and Linux communities. We commend them for their efforts to facilitate collaboration in their projects.