New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 876019 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 21
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 0
Type: Bug

Blocking:
issue 865043



Sign in to add a comment

Need Git Branch for Chrome for iOS Revert

Project Member Reported by kariahda@chromium.org, Aug 20

Issue description

Please create a git branch to revert an MDC change that caused a settings issue for chrome for ios:
https://github.com/material-components/material-components-ios/issues/3656

See further explanation in c#10 of the settings issue (also blocking bug):
https://bugs.chromium.org/p/chromium/issues/detail?id=865043#c10

We need the branch created asap as we will need time to test this before stable cut next week.
 
Cc: tandrii@chromium.org
Please, clarify where (which repo) you want a new branch?
  e.g., https://chrome-internal.googlesource.com/my/repo
And what new branch name?
  e.g., refs/heads/my-awesome-branch
Cc: s...@google.com
TPMs have historically created these branches...

I believe it should be refs/branch-heads/<current branch number>. Then you set it to the branch point for the current milestone, then you can revert or cherry pick anything you want on top of it. It's similar to branching ios_internal.
Repo: https://github.com/material-components/material-components-ios

New branch name: refs/heads/MDC-branch

Smut: Is there documentation for TPMs to do this? None of my team has knowledge of this.
kariahda@ I believe what Sana is saying that you should have the right to create a branch. Now, I still don't know which repo it is, but assuming it's ios_internal, you navigate to:
  https://chrome-internal-review.googlesource.com/admin/repos/chrome/ios_internal,branches
 -> create new 
 -> fill "refs/branch-heads/<TODO>" and initial revision: https://screenshot.googleplex.com/bBEhf0SM8f8 
> Repo: https://github.com/material-components/material-components-ios

We don't administer github, definitely not material-components.
But it seems you've already been creating branches in its mirror:
https://chrome-internal.googlesource.com/external/github.com/material-components/material-components-ios/

So, for very short term resolution, you can do what I wrote above in #c3 but starting in
https://chrome-internal-review.googlesource.com/admin/repos/external/github.com/material-components/material-components-ios,branches

However, long term these branches on a mirror can be easily lost if someone pushes branch with the same name to github, and maybe even in other cases. I think your project needs to rethink branching strategy for this repository.
Owner: kariahda@chromium.org
Status: Assigned (was: Untriaged)
per c#4 I will try to create myself.
I'm unsure what to put in "initial revision" field. The example says "copy-paste-required-hash-from-master." Is this the initial revision from the branch I'm creating? Where do I find the hash?
Yes, sorry, for clarity: you need to make the branches in the mirror. I think you should put the revision where MDC (would have) been branched for the current milestone. Ostensibly that's the MDC revision found in src/DEPS or the buildspec or whatever at the branch point.
Owner: ----
Status: Available (was: Assigned)
Branch created and the offending CL has been reverted: https://chromium.googlesource.com/external/github.com/material-components/material-components-ios.git/+/refs/branch-heads/3497

tandrii: How do we now get DEPS to point to this new branch?
Cc: aminer@chromium.org
Owner: kariahda@chromium.org
Status: Fixed (was: Available)
1. I'm glad branch creation worked.

2.  > tandrii: How do we now get DEPS to point to this new branch?
The same way all other DEPS pin work -- you edit DEPS file to point to latest revision hash from the branch you've just created.

3. FYI: git admins do not have capacity nor knowledge of which DEPS file refers to which repository.
Cc: gov...@chromium.org mmoss@google.com
Edit the M69 DEPS to reference refs/branch-heads/3497 in material-components-ios.
https://chromium.googlesource.com/chromium/src/+/refs/branch-heads/3497/DEPS
mmoss: The git branch has been created and mirrored on git on borg. Would you be able to modify appropriate DEPS files and anything else that may be needed?
I can send out a CL to change DEPS on M69.

Is DEPS in chromium.git the source of truth for branches now?  We don't have to edit buildspec files anymore?
Yeah, see comment here:
https://chrome-internal.googlesource.com/chrome/tools/buildspec/+/master/branches/3497/DEPS

If I understand correctly, the buildspec will be computed at build triggering time by resolving all DEPS and pinning them. So on M69 if you change material-components-ios to refs/branch-heads/3497 then for each buildspec it will resolve and pin to whatever the current revision is for refs/branch-heads/3497 so the builds reproduce, but you don't have to update the exact revision all the time.
Note, you should really only be using refs in the DEPS if it's something that changes a LOT on the branch (e.g. v8). For a repo with infrequent changes, we prefer to have the entries pinned to explicit hashes.
Does anyone have complete understanding and confidence of this process from end to end? By this process, I mean creating the git branch, reverting the offending CL, changing the DEPS file and anything else that may be needed. It seems we are all piecing together knowledge here. Since M69 is a very high-visibility release, I don't feel comfortable proceeding with this as the solution for M69, if someone cannot confidently own this from beginning to end. I, personally, do not feel confidence here.

If the answer is no, Rohit, maybe we should re-evaluate your M70 solution and possibly escalate this to management so they're aware.
Cc: pkl@chromium.org cma...@chromium.org
Branch fixes pretty much follow the "normal dev workflow" nowadays, since buildspecs are out of the picture, so there's really nothing special to know. The only difference from doing a similar fix on trunk is that you actually need to create the branch first (only needed if this is the first fix for that branch), and then manually roll it into src/DEPS (and at some point the ios autoroller should handle that too, just like for trunk).
I have confidence in this process from end to end, since everything we've done is pretty standard.  To be specific, we've:

1) Created a "3497" branch in the MDC repo.
2) Reverted a CL on that branch.
3) Rolled M69 DEPS to use the updated hash for MDC.
4) Successfully build M69 after doing the above.

#1 and #2 are done.  #3 is in-flight at https://chromium-review.googlesource.com/c/chromium/src/+/1185203

If anything goes wrong when we get to step #4, it will fail loudly and obviously.  But the bots sync with --with_branch_heads, so they should be fine.
Project Member

Comment 20 by bugdroid1@chromium.org, Aug 22

Labels: merge-merged-3497
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7c90bff1bf0daf01c8496d1217c4484fed599740

commit 7c90bff1bf0daf01c8496d1217c4484fed599740
Author: Rohit Rao <rohitrao@chromium.org>
Date: Wed Aug 22 15:58:28 2018

[ios] Updates DEPS for material_components_ios to use the 3497 branch.

BUG= 876019 , 865043 

Change-Id: I036272e43c272c0e821b6d619d734fcc313e4c86
Reviewed-on: https://chromium-review.googlesource.com/1185203
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Kariah Davis <kariahda@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#766}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[modify] https://crrev.com/7c90bff1bf0daf01c8496d1217c4484fed599740/DEPS

Ok thank you rohitrao and mmoss. The new beta build successfully completed. Let me know if there is any further action we need to take.

Sign in to add a comment