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

Issue 904809 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task

Blocked on:
issue 833848



Sign in to add a comment

Move the contents of infra/contents branches to master in all repos

Project Member Reported by jmad...@chromium.org, Nov 13

Issue description

Chromium used to have config data on the infra/config branch. This was confusing and the config moved to the directory infra/config on the master branch (https://docs.google.com/document/d/1pe1z2G1UMLmFAjYsX7z8OrRoZixEyG1LXhibldytrDc/edit#).

That was a great change; we should do that in all repos (angle, pdfium, v8, ...). And ideally be consistent about the "global" and "branch" subdirs; looks like several repos already have infra/config/cq.cfg for just the cq config (which in src is in infra/config/branch instead).

Instructions from tandrii@

1. Prepare CL to update luci-config registration of your project to point to new locations.
 You need to be a Googler for this. Example https://chrome-internal-review.googlesource.com/c/infradata/config/+/576769 

2. Prepare CL for refs/heads/master branch: 
  Copy existing master branch config from infra/config directory to infra/config/branch directory.
  Copy config from refs/heads/infra/config branch to infra/config/global directory on refs/heads/master branch, with infra/config/README.md documenting diff between configs.
  example https://chromium-review.googlesource.com/c/chromium/src/+/935582 

3. Prepare CL to remove everything from refs/heads/infra/config (example https://chromium-review.googlesource.com/935921). Consider leaving tombstone README.md pointing to new location (example https://chromium.googlesource.com/chromium/src/+/f128a3c3a79b093e8f6d8752b2c8942139150e24/README.md)

4. File Infra>Platform>Admin with your intent and list prepared CLs. Link to this bug/comment in description. You may cc: tandrii@chromium.org . Propose a 1 hour timeslot to perform migration s.t. Admin can help in case of emergency. Get all CLs approved and ready to land.

5. During final switch hour:
  land CL (1)
  land CL (2)
  ensure luci-config sees your new config https://luci-config.appspot.com/#/projects/<project>
    hint: it may take ~10..20 minutes to this to kick in. Or ask Admin to "kick" luci-config service.
  if you have CQ, ensure CQ is still working by landing new whitespace CL.
  if you have CI, ensure it picks up new commits.
  declare success.
  land CL (3)

6. File Infra>Git>Admin bug to make refs/heads/infra/config branch read only.


 
Cc: machenb...@chromium.org thestig@google.com
Also, jmadill did this for angle in  issue 833848 , which is a great example for doing this :-)

cc thestig for pdfium and machenbach for v8
Cc: -thestig@google.com thestig@chromium.org
I've always been annoyed by the infra/config branch and I'm happy to try to do this in a couple of weeks.
I'd like V8 to opt out of this. Reasons:
- Things in infra/config are not tested by bots in CQ or CI. Why send them through it and waste bot cycles?
- I find more infra commits on master confusing for non-infra developers. E.g. when executing 'git log' for checking what's going on.
- Bisect (auto or manual) and failure analysis requires more work because git ranges are longer.

The time it takes to switch between master and infra/config is negligible for V8. If there is confusion about having this branch I'd like to learn about it and help finding measures to make people less confused.

I'd even vouch for moving _more_ things to the infra/config branch in V8. E.g. cq.cfg is also meaningless on master (in the context of my above argumentation).
See the +s and -s in https://docs.google.com/document/d/1pe1z2G1UMLmFAjYsX7z8OrRoZixEyG1LXhibldytrDc/edit#

What you say is true, but the downside is that nobody but you will know how to edit these files. (I touch them every now and then and I need to look it up every time, and it takes me a few minutes just to find the right place to look it up even though I've done it a few times).

I'd advise you to make v8 match what everyone else is doing, but in the end it's of course your call.
FTR the infra/config branch was proposed by me a few years ago, because, theoretically, a separate branch is "the right" place for these configs. In practice, it is a PITA:
- devs are not that familiar with non-master branches
- depot-tools.upstream git config value has to be configured for each checkout
- code search does not work for infra/config branch

we had only one serious problem with keeping these configs on master branch: project.cfg defines project ACLs. A confidential [Chrome for a certain OS] was a fork of chromium. A merge from chromium brought chromium's project.cfg and made that confidential project public. Branching is problematic in general. These configs exist
https://chromium.googlesource.com/chromium/src/+/70.0.3538.110/infra/config/
but they are noop. I.e. if someone may incorrect think that cq.cfg there controls CQ for that branch.

Sign in to add a comment