Skip to content

Latest commit

 

History

History
54 lines (29 loc) · 2.66 KB

CONTRIBUTING.md

File metadata and controls

54 lines (29 loc) · 2.66 KB

Welcome to Swinject

Thank you for your interest to Swinject!

Reporting Issues

Nothing is off-limits to submit as an issue. Feel free to submit an issue for a bug, strange behavior, build failure, new feature request or anything you would like to report.

It is helpful if you include the followings when you submit an issue for a bug:

  • Your Xcode version
  • Your Swinject version (or git SHA)
  • The steps to reproduce the issue

If you would like to ask general questions about Swinject, it is preferable to ask at Stack Overflow because questions there are more discoverable with Google by other people who have the same questions. The author of Swinject monitors swinject tag to answer as quickly as possible.

Pull Requests

Pull requests are more appreciated to improve Swinject or to fix problems. Any kind of pull requests are welcome.

Getting Started

To setup a Swinject repository in your local Mac, run git clone command in Terminal.

git clone --recursive [email protected]:Swinject/Swinject.git

Move to the Swinject directory.

cd Swinject

Now it is ready to open Swinject.xcodeproj. Modify the code, run unit tests, and submit your pull request.

Project Generation

If you need to add / change any project settings or files inside the Sources folder, remember to also update the project.yml, which keeps our project generation in sync with the Swinject.xcodeproj.

Code Style

Please have a look at GitHub Swift Style Guide, which the existing Swinject code tries to follow. If you have a case that is out of scope of the style guide, please try to match the style of the surrounding code.

If you have SwiftLint installed, some parts of coding style are automatically checked when you build the Swinject project. The installation of SwiftLint to your environment is optional. Hound CI triggers SwiftLint to check your pull request.

ERB Files

Some Swift source files are generated from ERB files, e.g. Resolver.swift is generated from Resolver.erb, to easily maintain a set of functions that only differ the number of arguments. The generated source files are located under GeneratedCode group in the Xcode project. Do not modify the generated code directly, but instead modify the source ERB code. After modifying the ERB code, run script/gencode script to generate the Swift code.

Thank you for contributing!

For Maintainers

Making a new release version

Our release procedure is described as Makefile. Run make help coomand for more info.