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.

Reply via email to