There are various ways to contribute to XcodeGen, and all are welcome and appreciated!
Open issues about problems you may be encountering. When doing so please mention the version you're using xcodegen --version
.
If you have a good idea for a feature or enhancement open an issue.
Look through the open issues and answer any questions you can.
Submit your open source xcodegen spec to the Examples page.
Improve the documentation in the Docs directory.
You can submit your own code. This can be bug fixes or new features. If you're not sure what to work on check out the open Issues
Make sure you have at least Xcode 9.2 installed.
First clone the repo:
git clone https://github.com/yonaskolb/XcodeGen.git
cd XcodeGen
make
To make editing easier you can generate the Xcode project using Swift PM:
swift package generate-xcodeproj
ProjectSpec
: Project spec definitions, loading, parsing and validationXcodeGen
: XcodeGen CLIXcodeGenKit
: All the logic for generationXcodeGenKitTests
: Generation tests
Before submitting your PR run the tests to make sure they pass. This can be done either in Xcode or by running swift test
.
As part of the tests there is a TestProject fixture that will be generated, and if the generated xcode project has any diff in it the test will fail. If the diff is a valid change, commit it as part of your changes.
Note that sometimes having the
TestProject
open in Xcode will generate it's own diffs, so make sure to have it closed when running the tests.
If your change contains any new features or logic changes please add a unit test of your own to cover it. If it's a new feature, see if it can be integrated into the TestProject
by adding any required files and then editing the project spec.
Please give a small summary of what has changed. Also add any github issues links (Resolves #100
).
Once your PR is created, please add a changelog entry to CHANGELOG.md along with the PR number.