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

Issue 806348 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
User never visited
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Add harfbuzz mirror.

Project Member Reported by bunge...@chromium.org, Jan 26 2018

Issue description

In the interest of being able to keep harfbuzz up to date, this is a request to create a harfbuzz mirror at chromium.googlesource.com/chromium/src/third_party/harfbuzz. It would be nice to set this mirror up as much as possible like the existing freetype2 mirror.

The repository to mirror is one of (pick your favorite)
git://anongit.freedesktop.org/harfbuzz
ssh://git.freedesktop.org/git/harfbuzz
https://anongit.freedesktop.org/git/harfbuzz.git

Auto updating like the freetype2 mirror at
https://chromium.googlesource.com/chromium/src/third_party/freetype2/

An ACL setup like the freetype2 setup at
https://chromium-review.googlesource.com/admin/repos/chromium%2Fsrc%2Fthird_party%2Ffreetype2
in particular "Access" on "refs/heads/chromium/*" to "Create Reference", "Push", "Push Merge Commit" for a "harfbuzz-committers" group.

The "harfbuzz-committers" group should initially contain the following members @chromium.org
behdad
bungeman
drott


 
Components: -Infra>Git Infra>Git>Admin
=== Create or edit a Git repo ===
googlesource host (e.g. chromium, chrome-internal):
chromium

name of the repo:
chromium/src/third_party/harfbuzz or external/harfbuzz

I originally picked chromium/src/third_party/harfbuzz because I am familiar with chromium/src/third_party/freetype2 and this new repo will be DEPSed into chromium's third_party. However, if external/harfbuzz work better with modern naming conventions I'm fine with that.

is it a mirror, and of what:
Yes, this is a mirror of
git://anongit.freedesktop.org/harfbuzz

permissions:
An ACL setup like the freetype2 setup at
https://chromium-review.googlesource.com/admin/repos/chromium%2Fsrc%2Fthird_party%2Ffreetype2
in particular "Access" on "refs/heads/chromium/*" to "Create Reference", "Push", "Push Merge Commit" for a "harfbuzz-committers" group.

The "harfbuzz-committers" group should initially contain the following members @chromium.org
behdad
bungeman
drott

The license for this project can be seen at https://cgit.freedesktop.org/harfbuzz/tree/COPYING .

Comment 2 by s...@google.com, Jan 31 2018

Is it all right if we mirror from https://github.com/harfbuzz/harfbuzz? This is considerably easier.

Also, it's not possible to commit to refs/heads/chromium/* because the mirroring will own refs/heads/* and refs/tags/*. However I can grant you permission to commit to refs/chromium/*.
I'm surprised that it's not possible to commit to refs/heads/chromium/* since that's the way https://chromium-review.googlesource.com/admin/repos/chromium/src/third_party/freetype2,access is set up. Perhaps the mirroring is now done differently? In theory refs/chromium/* is do-able, but will refs at this location show up in the ui at chromium.googlesource.com ? For instance, there are currently local 'chromium/' branches which can be seen at https://chromium.googlesource.com/chromium/src/third_party/freetype2/+/chromium/milestone/63 and it's quite nice to be able to see them there. Also, commits to this ref need to be able to be used in DEPS, but I don't believe that depot_tools will pull in anything not in refs/heads/*, refs/tags/*, or refs/branch-heads/* . As a result I suspect that refs/chromium/* is worthless, since we will be able to push refs there, but those refs will never be fetched from the remote by depot_tools, and so we will never see those commits since depot_tools will never fetch them. As a result, I don't think refs/chromium/* is going to work, unless you can convince me that the bots will see commits only ref'ed from there.
Cc: behdad@chromium.org
behdad: what is the current balance of power between https://github.com/harfbuzz/harfbuzz and git://anongit.freedesktop.org/harfbuzz ? Does it matter which we mirror? These two seems to have completely different commit SHAs, so it's not like we can just switch later.

Comment 5 by behdad@google.com, Feb 1 2018

> These two seems to have completely different commit SHAs,

Do they? The masters of those two are supposed to be the same, and currently are both at c6dbf6e77cae30772ffa110c651cb4287ab3b0dc

The fdo one lags behind slightly as it relies on me doing "git pull && git push" regularly. Github is ground truth these days.
Thanks for the clarification, it appears that I managed to look at the two (github and fdo) when they were out of sync and didn't verify. Indeed, the commit SHA1s seem to be the same between the two repos.

So I think it is fine if we mirror https://github.com/harfbuzz/harfbuzz.git . However, we do still need some means of pushing directly to the new mirror somewhere the bots will find the the commits. While not used very often, such commits are sometimes needed for cherry-picking back specific bug fixes for Chromium branches.

Comment 7 by behdad@google.com, Feb 2 2018

There's also https://github.com/googlei18n/harfbuzz that has no use. If you want you can push whatever backfixes etc on branches on that.

Comment 8 by s...@google.com, Feb 3 2018

Owner: smut@chromium.org
Status: Started (was: Untriaged)
https://chromium.googlesource.com/chromium/src/third_party/freetype2 is mirrored using a legacy method, the supported method is to set up a copyconfig, which is a feature of Git-on-Borg itself. You can't have both the copyconfig mirror to refs/heads/* and also push to refs/heads/*.

You mentioned that you need to be able to cherry-pick fixes for Chromium branches. Then why not just use refs/branch-heads/*? This is what we do on other mirrors. For example, https://chromium.googlesource.com/external/github.com/material-components/material-components-ios has a copyconfig governing refs/heads/* and refs/tags/*, but branch-specific fixes live on refs/branch-heads/*.

I've created the mirror using this method: https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz. Let me know if this solution will work for you, and if so, which users should be authorized to push to refs/branch-heads/*.
Thanks for the clarification about the difference in mirroring. I have noticed that freetype2 seems to be updated by some 'builder' while others seem to be mirrored by gob.

I think refs/branch-heads/* should be workable. I haven't been able to test yet since I don't have permissions. It's unfortunate that these refs don't show up in the web ui at chromium.googlesource.com, though I've opened https://github.com/google/gitiles/issues/127 about that.

Thanks for getting this set up. As in Comment #1 it would be nice to have a "harfbuzz-committers" group which should initially contain the following members @chromium.org
behdad
bungeman
drott

Comment 10 by s...@google.com, Feb 5 2018

Status: Fixed (was: Started)

Sign in to add a comment