Gerrit code monorepo

161 views
Skip to first unread message

Seyoung Song

unread,
Oct 19, 2022, 4:48:12 PM10/19/22
to Repo and Gerrit Discussion
The first focus item of Gerrit 2022 is large scale and monorepo.
https://gitenterprise.me/2022/01/10/2022-goals-for-gerrit/

Why is Gerrit codebase in a lot of small git repositories(modules, plugins, etc.) instead of providing all of them in a monorepo and show Gerrit acutally can support monorepo well?

Luca Milanesio

unread,
Oct 19, 2022, 4:50:47 PM10/19/22
to Repo and Gerrit Discussion, Luca Milanesio, Seyoung Song


> On 19 Oct 2022, at 21:48, 'Seyoung Song' via Repo and Gerrit Discussion <repo-d...@googlegroups.com> wrote:
>
> The first focus item of Gerrit 2022 is large scale and monorepo.
> https://gitenterprise.me/2022/01/10/2022-goals-for-gerrit/

That is the focus for GerritForge: the link you posted is the GerritForge’s blog

>
> Why is Gerrit codebase in a lot of small git repositories(modules, plugins, etc.) instead of providing all of them in a monorepo and show Gerrit acutally can support monorepo well?

I believe that is for:

1. Historical reasons (many years ago JGit wasn’t that good in managing large mon-repos)
2. The plugins are separate entities and have separate lifecycle. They *become* core at some point in time, but they typically start outside the core.

HTH

Luca.

Seyoung Song

unread,
Oct 19, 2022, 5:00:51 PM10/19/22
to Repo and Gerrit Discussion
I think a monorepo is supposed to contain a lot of related and unreleated software(services, products, etc.) with many different lifecycles, so having all of them in one repo demonstrates the capability to support monorepo.

Thanks
Seyoung

Luca Milanesio

unread,
Oct 19, 2022, 5:22:52 PM10/19/22
to Repo and Gerrit Discussion, Luca Milanesio, Seyoung Song

On 19 Oct 2022, at 22:00, 'Seyoung Song' via Repo and Gerrit Discussion <repo-d...@googlegroups.com> wrote:

I think a monorepo is supposed to contain a lot of related and unreleated software(services, products, etc.) with many different lifecycles, so having all of them in one repo demonstrates the capability to support monorepo.

Could you point me to where this definition comes from?

My personal view is that all software in the mono-repo should be related, otherwise we will just have one repo in one company called “mycompany” that contains anything :-)
The mono-repo was introduced by Google if I am not mistaken, but I cannot find anywhere a repository called ‘google’ with lot of unrelated software inside it.

Luca.


Thanks
Seyoung
On Wednesday, October 19, 2022 at 1:50:47 PM UTC-7 lucamilanesio wrote:


> On 19 Oct 2022, at 21:48, 'Seyoung Song' via Repo and Gerrit Discussion <repo-d...@googlegroups.com> wrote: 
> 
> The first focus item of Gerrit 2022 is large scale and monorepo. 
> https://gitenterprise.me/2022/01/10/2022-goals-for-gerrit/ 

That is the focus for GerritForge: the link you posted is the GerritForge’s blog 

> 
> Why is Gerrit codebase in a lot of small git repositories(modules, plugins, etc.) instead of providing all of them in a monorepo and show Gerrit acutally can support monorepo well? 

I believe that is for: 

1. Historical reasons (many years ago JGit wasn’t that good in managing large mon-repos) 
2. The plugins are separate entities and have separate lifecycle. They *become* core at some point in time, but they typically start outside the core. 

HTH 

Luca. 


-- 
-- 
To unsubscribe, email repo-discuss...@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en

--- 
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/repo-discuss/d40d0226-8075-4073-9331-d91dd6562854n%40googlegroups.com.

Seyoung Song

unread,
Oct 19, 2022, 5:33:34 PM10/19/22
to Repo and Gerrit Discussion
The monorepo of Google is almost all software(many products, services, internal business apps, platform tools, etc), practically anything, in company Google.
I guess monorepo in Facebook is similar.
I think monorepo is for company or org.
It came out from a company, Google.

Luca Milanesio

unread,
Oct 19, 2022, 5:41:56 PM10/19/22
to Repo and Gerrit Discussion, Luca Milanesio, Seyoung Song

On 19 Oct 2022, at 22:33, 'Seyoung Song' via Repo and Gerrit Discussion <repo-d...@googlegroups.com> wrote:

The monorepo of Google is almost all software(many products, services, internal business apps, platform tools, etc), practically anything, in company Google.
I guess monorepo in Facebook is similar.
I think monorepo is for company or org.
It came out from a company, Google.

Well, I see many projects from Google and they are two different repos, see below two examples:
- Chromium [1]
- Android [2]

I am not Google so I cannot comment on where is the “Google” mono-repo containing all unrelated projects that the company does.
[1] and [2] seem to be outside the mono-repo if I am not mistaken. So, it looks like Gerrit isn’t the only project outside that mono-repo.

 Why? I don’t know, I’ll leave the Googlers to answer :-)

Luca.


Seyoung Song

unread,
Oct 19, 2022, 6:02:55 PM10/19/22
to Repo and Gerrit Discussion
Google open source software are not in the Google monorepo because those source codes need be available to public.
All non open source Google products and services that you know and internal business apps and internal tools and everything is one repository in Google.
That's the Google monorepo.

Luca Milanesio

unread,
Oct 19, 2022, 6:08:18 PM10/19/22
to Repo and Gerrit Discussion, Luca Milanesio, Seyoung Song

On 19 Oct 2022, at 23:02, 'Seyoung Song' via Repo and Gerrit Discussion <repo-d...@googlegroups.com> wrote:

Google open source software are not in the Google monorepo because those source codes need be available to public.

Possibly then the same rationale applies to Gerrit, which is an open-source software.

Luca.

Seyoung Song

unread,
Oct 19, 2022, 6:13:29 PM10/19/22
to Repo and Gerrit Discussion
If Gerrit is pursuing large scale monorepo support tool product, it will be better to demonstrate monorepo support/managing capability by eating its own dogfoods.

Luca Milanesio

unread,
Oct 19, 2022, 6:17:45 PM10/19/22
to Repo and Gerrit Discussion, Luca Milanesio, Seyoung Song


> On 19 Oct 2022, at 23:13, 'Seyoung Song' via Repo and Gerrit Discussion <repo-d...@googlegroups.com> wrote:
>
> If Gerrit is pursuing large scale monorepo support tool product,

I believe you misread my reply, see below inline.
^^^^^^^^^^^^^^^^^^^^^^^^^=== The focus is for GerritForge NOT for the Gerrit project.
> To view this discussion on the web visit https://groups.google.com/d/msgid/repo-discuss/d675b0b3-6c73-4ee6-8301-f6868a5358e6n%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages