I think the discussion and the initial post mixes a few things that are not really related to the question of mono- vs multi-repo. In particular, the question of how to continue with trac is somewhat orthogonal (you can easily have a monorepo on github or multiple trac repos).
In the end, it is a question on how to structure and organization of the code. Monorepo: everything in one git repo, each package is a subfolder (roughly how it is currently organized under src/sage). Multirepo: each package has their own git repo, with maybe one central repo that references the other repos via git submodules. A monorepo provide a centralized place to manage dependencies, allow for easier code sharing, provides a single place of entrance for new contributions, and uses a central CI. Admittedly, with a good infrastructure similar benefits can be achieved for multirepos as well (e.g. write a central github action that is used in each package-repo). In my opinion, the biggest advantage of multirepos is that they define a clear boundary of a module, which prevents developers to rely on internal code of another package. Another benefit of multirepos is that build and test times for the ci are much lower as only the code of that package has to be tested (but again, this can also be achieved by more intelligent CI configs). Other advantages of multirepos such as a clear code ownership (responsibility of code review) can also be achieved in a monorepo. In summary, I think a monorepo makes the most sense at the moment given the current structure and project philosophy. But at the same time the multirepo approach keeps its advantages only if a modern build and project management is used. Thus I also strongly agree with Dima in that trac is horrendous and outdated, and that one should try to switch to existing tools for dependency management than the home-built sage-the-distribution (at least for Python packages). On Tuesday, October 12, 2021 at 4:43:38 PM UTC+2 Nathan Dunfield wrote: > On Sunday, October 10, 2021 at 7:17:33 PM UTC-5 Matthias Koeppe wrote: > >> *Recommendation:* Keep MONOREPO for all distributions that fill the >> sage.PAC.KAGE.MODULE namespace (= distribution packages named *sagemath-... >> *-- according to my recommendation in part I). >> >> *Recommendation: *For distributions that do not use the >> sage.PAC.KAGE.MODULE namespace (= distribution packages named something >> other than sagemath-... -- according to my recommendation in part I), weigh >> the benefits vs. drawbacks of MONOREPO vs. MULTIREPO. It is also simple >> enough for a distribution to start out being developed inside of the Sage >> MONOREPO and to be split out to a separate repository later. >> > > I think these are the right choices, at least for now. Once > modularization is complete, perhaps MULTIREPO becomes viable, as it is for > scipy, but until the work is done I don't think it is clear how one would > want to subdivide it. > > Best, > > Nathan > > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/a9c981bc-2bcc-4618-8571-9e0dcab12540n%40googlegroups.com.