Git workflow.
git checkout mastergit pullgit checkout -b [user]-merge-release-[tag version]e.g.git checkout -b fabian-merge-release-ios-v3.6.0git checkout [release branch]git pullgit checkout [user]-merge-relase-[tag version]e.g.git checkout fabian-merge-release-ios-v3.6.0git merge [tag]e.g.git merge ios-v3.6.0
Conflict resolution.
It is likely you will encounter merge conflicts the solving strategy would be:
- For core gl files (
*.hpp&*.cpp) prefermasterversion. - For Android and iOS files (
*.java,*.graddle,*.xml,*.h,*.m,*.mm) manual merge, prioritize release changes.
Merge test.
Before making a PR use the following commands to test the merge.
-
Core gl
make testmake run-test
-
Android
make android-check
-
iOS & macOS
make iproj- Select iosapp click run.
make xproj- Select macosapp click run.
Pull Request.
If above tests passed.
git push origin [user]-merge-relase-[tag version]e.g.git push origin fabian-merge-release-ios-v3.6.0- Ping each team member whose changes will be affected by this merge.
Final merge.
Once the PR is approved.
git checkout mastergit pullgit merge [user]-merge-relase-[tag version]e.g.git merge fabian-merge-release-ios-v3.6.0git push origin mastergit branch -D [user]-merge-relase-[tag version]e.g.git branch -D fabian-merge-release-ios-v3.6.0
Merging using github is discouraged.
In any case do not use squash and merge option as this will break git history and introduce orphaned commits.
Troubleshooting.
Android.
Error message:
* What went wrong:
Execution failed for task ':MapboxGLAndroidSDK:lint'.
> Lint found errors in the project; aborting build.
What went wrong: There are missing translations.
Solution: Notify the Android team.