RespondingToIssuesAndPullRequests.md
When replying to issues and PRs, make sure you always follow our Code of Conduct and our vision for fastlane. Make sure to read these thoroughly and understand them before you interact with any other users! In general, be nice to each other, and treat everyone with the same respect and dignity.
Also, whenever you submit a comment, don’t ask users for their personal information or account credentials.
Issues and PRs may get marked with labels to help the fastlane team communicate with each other and with the community as a whole. Usually most issues and PRs will get two different labels, one for the tool it affects (e.g. fastlane, fastlane_core, supply, ...) and one that represents some general information about the state or nature of the issue/PR.
If you identify an issue that seems interesting but not time-critical, and is simple for new contributors to dive into, we recommend adding the “you can do this” label. PRs labeled “you can do this” should have very clear descriptions of the problem and solution. Remember that someone who is new to fastlane will need some coaching to be successful!
| Label | Meaning |
|---|---|
| action | Applies to a fastlane action (e.g. get_build_number) |
| awaiting-reply | The fastlane team is engaged in discussion, but is currently waiting for a response from the community |
| blocked | We don't currently have a way forward, though we'd like to continue if possible |
| bug | We've acknowledged the issue as a defect |
| duplicate | Another issue/PR already exists that we think captures the problem/request |
| feature | The issue represents a request for an enhancement or new feature |
| you can do this | We're not actively looking at solving this issue, but community help would be appreciated |
| question | Someone is looking for help, but isn't describing a problem with the software |
Each tool has it’s own label, e.g. fastlane, fastlane_core and gym.
git clone [email protected]:fastlane/fastlane.git in your terminalgit remote add <GITHUB_USERNAME> [email protected]:<GITHUB_USERNAME>/fastlane.gitgit fetch <GITHUB_USERNAME>git checkout <THEIR_PR_BRANCH>git checkout -b my_new_branchgit pull --rebase <GITHUB_USERNAME> <THEIR_PR_BRANCH>bundle install to make sure all dependencies are installedbundle exec fastlane test from the root directory to run all validation steps (tests, rubocop, etc)bundle exec rspec from the root directory to run all testsbundle exec rspec [tool_name] to run all tests for a specific toolbundle exec rubocop -a to run the linter and autocorrect many of the issues it foundIf you have commit access, instead of adding each person's fork as a remote, you can also quickly test a single PR with the following commands:
git fetch origin pull/1234/head:pr-1234
git checkout pr-1234
First of all, since we are testing code that is considered bleeding edge and might not be stable yet, make sure to never test with an account that is provided by your employer and/or real, live apps! Things might break irrevocably! For that reason, we recommend setting up an entirely new account and project for testing fastlane PRs.
Copy the Gemfile .assets/Gemfile from your local fastlane clone and drop it into your project's root folder.
Make sure to replace <PATH_TO_YOUR_LOCAL_FASTLANE_CLONE> with the path to your fastlane clone, e.g. ~/fastlane, then you can run
bundle update
in your project’s directory. After doing so, you can verify you’re using the local version by running
bundle show fastlane
which should print out the path to your local development environment.
Afterwards, execute fastlane or one of the tools using bundle exec <tool>, e.g. bundle exec fastlane or bundle exec deliver.
Before diving into the source code changes of a pull request, step back and think if this change is a good change for fastlane, and that it follows the fastlane vision. If you are not 100% certain that a pull request adds good value to fastlane, ask the author to clarify on why this should be included in the main code base, referring to the Vision.md document. Sometimes it is also more appropriate for new features to be submitted as plugins, for example if the features are not applicable to a wide audience as described here. In that case, make sure to also include a link to the plugin documentation.
To review the code, start a new review on GitHub by going to the “Files changed” tab on the PR page. You can then add comments by tapping on the plus that appears when your mouse hovers over a line. Instead of submitting multiple comments one after another, use the Start Review button, so that participants don’t get flooded with multiple notifications.
When adding comments to a review, make sure they are