Skip to content

Latest commit

 

History

History
76 lines (55 loc) · 4.02 KB

CONTRIBUTING.md

File metadata and controls

76 lines (55 loc) · 4.02 KB

Do’s and Don’ts

  • Search the solutions in the troubleshooting guide. Or any of the many other guides.
  • Search tickets before you file a new one. Add to tickets if you have new information about the issue.
  • Only file tickets about the CocoaPods tool itself. This includes CocoaPods, CocoaPods/Core, and Xcodeproj. If your question is regarding a library (to be) distributed through CocoaPods, refer to the spec repo. If your question is “How do I […]”, then please ask on StackOverflow or our mailing-list.
  • Keep tickets short but sweet. Make sure you include all the context needed to solve the issue. Don't overdo it. Great tickets allow us to focus on solving problems instead of discussing them.
  • Take care of your ticket. When you spend time to report a ticket with care we'll enjoy fixing it for you.

Bug reports

First check if you are using the latest CocoaPods version before filing a ticket. You can install the latest version with $ [sudo] gem install cocoapods.

Please include all relevant information, including the version of CocoaPods and any template printed by the tool.

If questions in the error template are left unanswered, the issue will be closed as a bad bug report.

If there is a regression in the projects generated by CocoaPods please include the output (redacted if needed) of one of the following commands:

$ xcodeproj target-diff
$ xcodeproj project-diff

If you are familiar with Ruby, making a pull request with a failing test case can speed up the resolution of the bug. If the issue is more complex you can add an integration test which doesn't require any ruby knowledge.

Feature requests

Please try to be precise about the proposed outcome of the feature and how it would related to existing features.

From the CocoaPods blog:

Fighting feature creep in CocoaPods is not easy. We hear about a lot of great ideas and many of them don't make the cut as they would not be useful for at least 80% of our users.

Should you require a feature isn't suited for mainstream users, consider suggesting a CocoaPods plugin instead.

Pull Requests

We love pull requests and if a contribution is significant we tend to offer push access. We suggest you take a look at our Contributing guide for info on development setup, and some of our best practices.

All contributions will be licenced under the MIT license.

Code/comments should adhere to the following rules:

  • Names should be descriptive and concise.
  • Use two spaces and no tabs.
  • All changes require test coverage to ensure it does not break during refactor work. (There are a few exceptions to this, which can be recognized by there not being any coverage for similar code.)
  • All enhancements and bug fixes need to be documented in the CHANGELOG.
  • When writing comments, use properly constructed sentences, including punctuation.
  • When documenting APIs and/or source code, don't make assumptions or make implications about race, gender, religion, political orientation or anything else that isn't relevant to the project.
  • Remember that source code usually gets written once and read often: ensure the reader doesn't have to make guesses. Make sure that the purpose and inner logic are either obvious to a reasonably skilled professional, or add a comment that explains it.
  • The message of the commit should be prefixed by the name of the file which is the main focus of the patch enclosed by square brackets (.e.g. [Installer] install pods).