My opinion: monorepo isn’t right for us.
We don’t have the tooling of Google to help us out. It couples and synchs repos when they don’t need to be. Clearly, there are also good reasons for it, but I think for our organization, it isn’t right.
There are lots of things here:
- wiki. It’s amazing there isn’t an org-level wiki on github yet. One way we could fix this is to create a org-level wiki and turn off the wiki on each of the repos.
- issues. I think this is a very strong reason to have separate repos. Yes, we do have certain issues that span across multiple repos (adding a new language feature), but we have plenty of things that need to be fixed on just one project. So I’d rather keep this separate.
- versioning. Separate is better. There’s gonna be a future when the math library hasn’t changed for a version of Stan.
I think the biggest, practical reason for not using a monorepo is permissioning. GithHub doesn’t allow us to set permissions at the folder level. We have different processes for the different projects with different testing requirements. I think it’d be easier if we had a shared process or even a minimum level of process that’s adopted.
But anyway, I’m against the idea of a monorepo for Stan (what does that mean exactly? Math, Stan, CmdStan, PyStan, RStan? Do we include RStanArm and BayesPlot? Loo?). We started that way. We changed for good reasons.