IREE Migrating to GitHub First

92 views
Skip to first unread message

Geoffrey Martin-Noble

unread,
Jun 19, 2020, 5:44:14 PM6/19/20
to iree-d...@googlegroups.com

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

Phase 1 - Setup

  • 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.

Phase 2 - Testing

  • 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.

Phase 3 - Switch

  • 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

Geoffrey Martin-Noble

unread,
Jun 22, 2020, 6:42:17 PM6/22/20
to iree-d...@googlegroups.com
Just an additional note that since we will be doing a branch shuffle anyway, this seems like a suitable time to follow a general trend in the industry to drop "master" as the default branch name. When switching the default branch back off of `google` we will call it `main` instead.

Ben Vanik

unread,
Jun 22, 2020, 6:47:10 PM6/22/20
to Geoffrey Martin-Noble, iree-d...@googlegroups.com
Yay! Has github settled on "main?" I want to make sure we follow what the norm there is to reduce confusion.

--
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.

Geoffrey Martin-Noble

unread,
Jun 22, 2020, 6:53:43 PM6/22/20
to iree-discuss
That's my impression and seems to be the most commonly used alternative. I believe Android and Chrome have also chosen "main".

Ben Vanik

unread,
Jun 22, 2020, 6:54:17 PM6/22/20
to Geoffrey Martin-Noble, iree-discuss
Ship it! Thanks for doing that :)

Geoffrey Martin-Noble

unread,
Jun 23, 2020, 1:05:08 PM6/23/20
to iree-discuss
Scott and I are going to start the migration now.

That means we're going to temporarily disable Copybara (source control syncing) from automatically migrating changes. We will also rebase any outstanding PRs to point at the `google` branch instead. We'll send another announcement when everything is re-enabled and this phase of the migration is complete. At that point, please treat the `google` branch as you were previously treating the `master` branch. Nothing else will be different yet, while we prepare for the following stages.

Geoffrey Martin-Noble

unread,
Jun 23, 2020, 1:50:10 PM6/23/20
to iree-discuss
Phase 1 of the migration is complete. Please now proceed as you have been, but using `goolge` as the default branch and alert us if you run into any issues that look related.

Geoffrey Martin-Noble

unread,
Jun 26, 2020, 5:13:14 PM6/26/20
to iree-discuss

Scott and I are making the switchover to GitHub first!


What this means:

  1. main will become the default branch. Please send PRs to main.

  2. 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.

  3. 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!


Reply all
Reply to author
Forward
0 new messages