Hello folks,
As you may know, the IREE GitHub repository currently follows along Google's internal source repository, which is the source of truth for changes. Changes are submitted directly there and PRs are actually imported there and submitted and then migrated back to GitHub. This latter flow especially is painful both for external contributors and for those of us who have to do all this migration back and forth instead of just clicking the "merge" button. In addition breakages caused by dependency version skew for TF and LLVM between Google's monorepo always at HEAD and GitHub causes unnecessary breakages on the master branch.
We've decided to move to a different model, where we instead have a separate google branch tracking Google's source repository from which we upstream any changes that happen there through frequent merges back and forth between the google and master branches. Primarily this google branch will act as an LLVM and TF integration branch. Then master will function like a normal GitHub master branch and all of the Google-specific syncing complexity will be out of the way of normal developer workflows. This workflow is not without its risks because we're opening ourselves up to merge conflicts, but we've worked out a plan and think that this change is worth it.
This transition will take a little while and will have 3 basic stages
The master branch on GitHub will be renamed to google
A new master branch will be created and will be used for testing
The google branch will be the default branch. Please use it for pull requests, tests, etc.
Branching workflows will be tested between the google and master branches
Merge conflicts and integration issues are possible, please be patient and look out for announcements or rollbacks
Continue to use the google branch for pull requests, tests, etc.
The master branch is set back to primary on GitHub
The google branch remains as an automated export of google3 changes
Build cops are responsible for merging google <-> github
Most changes will go directly into the master branch. Integrations with TF and LLVM will be orchestrated through the google branch
master will be the default branch. Use it for pull requests, tests, etc.
Scott and I will be trying this out next week. Please let us know if you have any questions.
Thanks,
Geoffrey
--
You received this message because you are subscribed to the Google Groups "iree-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to iree-discuss...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/iree-discuss/CAKeN2ef94%3DRiSKN41QsbVVHQW9moLk3%3D%2BmTCFuYvo_w2GxFc%2BQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/iree-discuss/59e7caa0-4a6c-4e39-b3fa-48797943cfc0n%40googlegroups.com.
Scott and I are making the switchover to GitHub first!
What this means:
main will become the default branch. Please send PRs to main.
Integrations from the google branch will be handled by build cops. You can mostly ignore this branch. In general, expect integrations with TF and LLVM to come from this branch rather than being a PR against main.
Normal PRs should be merged with "squash and merge" after all status checks pass and another collaborator has approved. If the author has write access, they should generally do the merge. If they don't, then the reviewer should confirm with them it's ok to merge and then perform the merge.
Let us know if you have any questions!