4 ms·
Can a monorepo support module- or subdirectory-level ownership controls? Or do teams using a monorepo just do without them? Partially answering my own questio
by Mxtetris 8y ago
Can a monorepo support module- or subdirectory-level ownership controls? Or do teams using a monorepo just do without them?
Partially answering my own question: SVN, recommended in a prior comment [0], supports path-based authorization [1]. But what about teams using another version control system?
[0] https://news.ycombinator.com/item?id=18810313 https://news.ycombinator.com/item?id=18810313
[1] http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.pathbasedauthz http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverc...
- monksy 8y agoSVN allows for you to create mutliple repos within a repo. (That's probably why the path based auth works). Git has the idea of sub-modules, but they're really just filters. (They're in the same repo). So ultimately, you don't have that kind of control.
- icebraining 8y agoGit submodules are not in the same repo, they are a link from one repo to another, and you need to push to both if you make a change to the submodule. Maybe you're thinking of subtrees? I've never used those.
- maktouch 8y agoWith Phabricator, yes, you can setup herald rules that stops a merge from happening if a file has changed in a specific subdir. We use service owners, so when a change spans multiple services, they are all added automatically as blocking reviewers.
- xyzzyz 8y agoPiper, Google’s implementation of monorepo, has that, and it is very important and widely used.
- gusmd 8y agoIf I remember correctly, Gitlab has introduced some sort of ownership control where you can say who owns what directories for things like approving merge requests that affect those directories.
- pulisse 8y agoGithub has this feature[1], which we use extensively in our monorepo. [1] https://help.github.com/articles/about-codeowners/ https://help.github.com/articles/about-codeowners/
- dsumenkovic 8y agoHey, did you mean of assigning approvers based on code owners [1]? You can find more info about Code Owners and syntax at the documentation [2]. [1] https://gitlab.com/gitlab-org/gitlab-ee/issues/1012 https://gitlab.com/gitlab-org/gitlab-ee/issues/1012 [2] https://docs.gitlab.com/ee/user/project/code_owners.html https://docs.gitlab.com/ee/user/project/code_owners.html
- joatmon-snoo 8y agogoogle3 uses the same model that Chromium does, see an example here: https://github.com/chromium/chromium/blob/master/chromeos/OWNERS https://github.com/chromium/chromium/blob/master/chromeos/OW...
- lrem 8y agoIn Google, this is pretty explicit with a plaintext OWNERS file in the directory. Internal IDEs not only have an understanding of that, but can automatically suggest a minimal set of reviewers in a possibly close time zone and not out of office.
- briantakita 8y agoFor my clients, I use an open source monorepo submodule inside the client's proprietary monorepo. I can maintain the organizations' software while sharing common code. So (mono)repos are composable.