Opened on 02/24/2017 at 02:15:01 PM
Closed on 04/21/2017 at 09:34:28 AM
#4933 closed change (fixed)
Mirror repositories
Reported by: | sergz | Assignee: | ferris |
---|---|---|---|
Priority: | P3 | Milestone: | |
Module: | Infrastructure | Keywords: | |
Cc: | fhd, fred, ferris | Blocked By: | |
Blocking: | #4907 | Platform: | Unknown / Cross platform |
Ready: | yes | Confidential: | no |
Tester: | Unknown | Verified working: | no |
Review URL(s): |
https://codereview.adblockplus.org/29398680 |
Description
Background
In order to update v8 (#4907) we need to mirror several repositories:
- icu - https://chromium.googlesource.com/chromium/deps/icu
- chromium-tools-clang - https://chromium.googlesource.com/chromium/src/tools/clang.git
- chromium-build - https://chromium.googlesource.com/chromium/src/build
- chromium-trace_event-common - https://chromium.googlesource.com/chromium/src/base/trace_event/common
What to change
Create our mirrors of these repos (mercurial and on github).
Attachments (0)
Change History (19)
comment:1 Changed on 02/27/2017 at 02:56:05 PM by eric@adblockplus.org
comment:2 Changed on 02/27/2017 at 03:11:23 PM by sergz
I don't see any need to create our own mirrors.
Many of repositories which are dependencies of currently used version of v8 are already not available. To be sure that we still can compile the code we need to store a copy of these dependencies.
One way to do that is to operate mirrors and use the the simpler syntax supported by ensure_dependencies.py that assumes an ABP server. Another is to use the more complex syntax, also already supported by ensure_dependencies.py, that allows specifying both a server and a revision identifier.
Indeed I'm going to use ensure_dependencies.py to manage these dependencies but I'm sure that all repositories should be controlled by us.
comment:3 Changed on 02/28/2017 at 12:59:33 PM by fhd
Indeed I'm going to use ensure_dependencies.py to manage these dependencies but I'm sure that all repositories should be controlled by us.
Yeah, that's generally how we do it with source dependencies. That way our stuff will keep on working even if the original repo is down/moved/broken/whatever.
comment:4 Changed on 03/23/2017 at 10:56:23 AM by sergz
FYI: ensure_dependencies.py does not support to fetch git repo, e.g.
third_party/v8/build = git:https://github.com/xxxz/chromium-build.git@3983535ba9ae6e2dc501e59fde158018d811f95c
when the root repo is mercurial. From git repo it does work.
comment:5 Changed on 03/23/2017 at 10:56:36 AM by sergz
- Cc ferris added
comment:6 Changed on 03/24/2017 at 01:47:50 PM by ferris
- Owner set to ferris
Me and Vasily want to do this Wednesday 30th of March.
comment:7 Changed on 03/24/2017 at 03:34:18 PM by matze
- Ready set
comment:8 Changed on 03/24/2017 at 03:34:29 PM by matze
- Priority changed from Unknown to P3
comment:9 Changed on 03/30/2017 at 08:42:12 AM by ferris
Me and Vasily discussed how this is done yesterday. I'll try setting it up today. The repositories in question aren't as large as we feared, so the plan is to just git clone and then convert locally on hg1. We'd like to name the repos like this:
- chromium-deps-icu
- chromium-src-base-trace_event-common
- chromium-src-build
- chromium-src-tools-clang
The names are based on their paths, obviously. We also wondered if we should give them some sort of mirror prefix...
comment:10 Changed on 03/30/2017 at 09:44:56 AM by ferris
I've manually cloned and placed these repos under ~hg/web now.
comment:11 Changed on 03/30/2017 at 10:26:37 AM by ferris
- Review URL(s) modified (diff)
Sergei will see if he can clone the mirrors to github (I'm not member of adblockplus).
Sergei now has push rights to the mirrors, ref https://codereview.adblockplus.org/29398663/
The mirrors also have the description and contact info now.
Awaiting https://codereview.adblockplus.org/29398680/ to be merged into web.adblockplus.org for the modules page.
comment:12 Changed on 03/30/2017 at 10:26:54 AM by ferris
- Status changed from new to reviewing
comment:13 Changed on 03/30/2017 at 02:16:38 PM by abpbot
A commit referencing this issue has landed:
Issue 4933 - add more mirrors to libadblockplus
comment:14 Changed on 04/05/2017 at 02:01:03 PM by sergz
Sergei will see if he can clone the mirrors to github (I'm not member of adblockplus).
I don't have enough rights to create repositories on github under adblockplus.
Could someone please do it? @fred, @fhd.
There is actually an option to import a repository which can be done only via mouse and browser :) I have just tried it on one repo on my private account.
comment:15 Changed on 04/20/2017 at 11:06:27 AM by ferris
Hi Sergei, can you try importing the repositories on github now from their original coordinates? It's not clear whether we want to mirror the original git repositories, or we want to set up a hg->git sync from hg.abp.org, but I think the former approach seems quite natural for now.
comment:16 Changed on 04/20/2017 at 12:27:44 PM by sergz
Hi Sergei, can you try importing the repositories on github now from their original coordinates?
I don't have enough permissions.
It's not clear whether we want to mirror the original git repositories, or we want to set up a hg->git sync from hg.abp.org, but I think the former approach seems quite natural for now.
Converting git->hg->git sounds indeed questionable. These mirrors are not something which is getting updated every day, so I think it's fine to do it manually, though it would be better to clearly document that somewhere. BTW, is there by any chance of an automatic conversion git->hg? Disregard our current plans regarding mercurial I think that functionality would be very useful.
comment:17 Changed on 04/20/2017 at 03:58:42 PM by fred
Since one needs admin access to the Github organization I did the import of the git repositories from the original sources together with Sergei.
As they also belong to the libadblockplus module I gave the Libadblockplus Owners Github team Admin-level access to these repos.
comment:18 Changed on 04/20/2017 at 04:01:26 PM by ferris
Great, thanks Fred! Sergei, can you close this ticket if everything is OK now?
comment:19 Changed on 04/21/2017 at 09:34:28 AM by sergz
- Resolution set to fixed
- Status changed from reviewing to closed
I don't see any need to create our own mirrors.
What's actually needed is a way to get code into the right place on a developer's machine. One way to do that is to operate mirrors and use the the simpler syntax supported by ensure_dependencies.py that assumes an ABP server. Another is to use the more complex syntax, also already supported by ensure_dependencies.py, that allows specifying both a server and a revision identifier.