Forking chromium

829 views
Skip to first unread message

Roman

unread,
May 23, 2017, 4:45:18 AM5/23/17
to Chromium-dev
Hello, 

I would like to have my own chromium repository on "visual studio team services", that will be synced with the chromium at https://chromium.googlesource.com/ (a.k.a to fork the Chromium project).

I know that the question might be too general, but what is the recommended approach for that? all the documentation that I saw shows how to clone the repo, but not how to fork it..

In addition, the changes that I want to make are only in the V8 module, however I want that when I sync in the first time on a new machine, I'll get everything I need to run Chromium with the changes that I've made to V8. 
So is it the best practice to work against the whole Chromium solution, or maybe there is a better way for doing that? 

Thanks!


Matt Giuca

unread,
May 23, 2017, 11:06:18 PM5/23/17
to ro...@cybellum.com, Chromium-dev

Search that page for "custom_deps".

v8 is contained in its own repo. If you just want to replace V8 but keep the rest of the Chromium source the same, you just need to:

  1. Fork the V8 repo.
  2. Edit your .gclient file in Chromium, add a custom_deps rule for v8, pointing to your forked repo.
  3. Run gclient sync.
This will make the src/v8 directory in your Chromium checkout contain a git clone of your v8 repo, while the rest remains the same, and gclient sync keeps in sync.

When you make changes to your v8 repo, you will have to run gclient sync each time to get Chromium to see the changes. I'm not a V8 developer but I remember there being some grumbling about this workflow; not sure if the V8 team has a better workflow for pushing changes into their local Chromium build.


Thanks!


--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/0c60963e-fc7f-40ce-856a-85b94e6179a8%40chromium.org.

Jakob Kummerow

unread,
May 24, 2017, 6:17:51 AM5/24/17
to Matt Giuca, ro...@cybellum.com, Chromium-dev
On Wed, May 24, 2017 at 5:05 AM, Matt Giuca <mgi...@chromium.org> wrote:
On Tue, 23 May 2017 at 18:45 Roman <ro...@cybellum.com> wrote:
Hello, 

I would like to have my own chromium repository on "visual studio team services", that will be synced with the chromium at https://chromium.googlesource.com/ (a.k.a to fork the Chromium project).

I know that the question might be too general, but what is the recommended approach for that? all the documentation that I saw shows how to clone the repo, but not how to fork it..

In addition, the changes that I want to make are only in the V8 module, however I want that when I sync in the first time on a new machine, I'll get everything I need to run Chromium with the changes that I've made to V8. 
So is it the best practice to work against the whole Chromium solution, or maybe there is a better way for doing that? 


Search that page for "custom_deps".

v8 is contained in its own repo. If you just want to replace V8 but keep the rest of the Chromium source the same, you just need to:

  1. Fork the V8 repo.
  2. Edit your .gclient file in Chromium, add a custom_deps rule for v8, pointing to your forked repo.
  3. Run gclient sync.
This will make the src/v8 directory in your Chromium checkout contain a git clone of your v8 repo, while the rest remains the same, and gclient sync keeps in sync.

When you make changes to your v8 repo, you will have to run gclient sync each time to get Chromium to see the changes.

No, why? When you edit stuff directly inside some Chromium checkout's src/v8/..., then all you have to do is recompile, because of course Chromium "sees" all changes in there.
Depending on your repository/checkout setup, it might not be easy/feasible to use such an embedded checkout for committing to that repository though (e.g. if you need your own .gclient).
 
I'm not a V8 developer but I remember there being some grumbling about this workflow; not sure if the V8 team has a better workflow for pushing changes into their local Chromium build.

I have a standalone V8 checkout, and for local testing inside Chromium I use git-new-workdir to create a second working directory inside the Chromium checkout. Then syncing is as easy as "git commit -a --amend" in the standalone workdir, and "git checkout -f" in the other.
 


Thanks!


--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/0c60963e-fc7f-40ce-856a-85b94e6179a8%40chromium.org.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.

Matt Giuca

unread,
May 25, 2017, 8:30:12 PM5/25/17
to Roman Kesler, chromi...@chromium.org
On Thu, 25 May 2017 at 18:40 Roman Kesler <ro...@cybellum.com> wrote:
Is there an example how the custom_deps  should look like? Is it like that?

solutions = [
{
    "managed": False,
    "name": "src",
    "deps_file": ".DEPS.git",
    "custom_deps" : {
      "v8" : "<my_repo>"
    }
  }
]

I think that's correct but I haven't done this in a long time. Try it and see?

Michael Herrmann

unread,
Aug 16, 2024, 6:54:34 AM8/16/24
to Chromium-dev
Forking Chromium is a big task. I recently wrote an article about the most important things that need to be considered: https://omaha-consulting.com/how-to-fork-chromium. Maybe you will find it useful!
Reply all
Reply to author
Forward
0 new messages