All changes, no matter how trivial, must be done via pull request. Commits
should never be made directly on the main branch. Prefer rebasing over
merging main into your pull request branch to update it and resolve conflicts.
git clone https://github.com/MobileNativeFoundation/rules_xcodeproj.gitcd rules_xcodeprojbazel run //tools:xcodeprojto generate an Xcode project and develop in Xcode, or just open the directory in your favorite text editor.- Building locally:
bazel build //tools/...to compile the tools.bazel test //tools/...to run the tests.
Feel free to volunteer by picking up any bug from the list of GitHub issues. If you find a new bug or would like to work on a new feature, create a new GitHub issue to better describe your intentions. We are happy to guide contributors with an implementation through discussions if needed.
You can test your changes in the example projects by generating their
projects with bazel run //examples/cc:xcodeproj. You might need to cd
into the directory if the example app is in a separate WORKSPACE with
cd examples/integration; bazel run //:xcodeproj.
You can run the internal tests as well:
bazel test //test/internal/xcschemes:all
You can even test your changes in a separate project living outside this
repo by overriding the module or repository in your .bazelrc:
# With bzlmod:
build --override_module=rules_xcodeproj=/path/to/rules_xcodeproj
# Without bzlmod:
build --override_repository=rules_xcodeproj=/path/to/rules_xcodeproj
It's important to add it to the .bazelrc instead of passing it as a
flag to ensure all invocations will use the same configuration.
Run docs/update_docs.sh to generate to documentation based on the comments.
Before submitting your pull request you should run the linter and formatter to make sure everything if formatted properly in your bazel files:
bazel run //:buildifier.fix
You can run bazel run //:buildifier.check to make sure your formatting
is correct.
If warranted, add an entry to CHANGELOG.md. Try to predict the pull request
number, or adjust it after opening the pull request.