Skip to content

moduleFileHash in MODULE.bazel.lock causes frequent Git merge conflicts #20369

@linzhp

Description

@linzhp

Description of the bug:

The value of moduleFileHash changes every time any dependency in the whole repo is changed. This is not scalable in a monorepo with thousands of developers committing concurrently. Imagine the scenario:

From base revision with "moduleFileHash": "x"

Developer 1 upgrades library a, which produced this as part of the diff:

-   "moduleFileHash": "x",
+   "moduleFileHash": "y",

Meanwhile, developer 2 upgrades another library b, which is totally unrelated to a, and produce this:

-   "moduleFileHash": "x",
+   "moduleFileHash": "z",

If developer 1 landed her diff first, developer 2 won't be able to land hers due to Git merge conflict. So developer 2 will have to rebase onto the main branch and update her diff to be

-   "moduleFileHash": "y",
+   "moduleFileHash": "aa",

While she went for a coffee break, developer 3 landed yet another diff that upgrade another unrelated library, causing moduleFileHash to change:

-   "moduleFileHash": "y",
+   "moduleFileHash": "bb",

Now developer 2 has to rebase again... In the end, developer 2 has to yell to all developers in this big corporation: STOP UPGRADING ANY DEPENDENCIES BEFORE I LAND MY CHANGE

Which category does this issue belong to?

External Dependency

Metadata

Metadata

Assignees

Labels

P1I'll work on this now. (Assignee required)area-BzlmodBzlmod-specific PRs, issues, and feature requeststeam-ExternalDepsExternal dependency handling, remote repositiories, WORKSPACE file.type: feature request

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions