On Sun, Oct 10, 2021 at 5:49 PM François Bissey <frp.bis...@gmail.com> wrote:
>
> One annoying thing about monorepo from a downstream perspective - but only 
> for people crazy enough to package a development branch (OK that would be me 
> and not many other people :) ).
> The split packages have their setup.py or equivalent in 
> SAGE_ROOT/pkgs/pkg_name and some links to the single sage source tree from 
> there. Examples: sagemath-standard, sage_setup and sage_docbuild. To package 
> these I pull the full tree :( and then I don’t go to SAGE_ROOT/pkgs/pkg_name 
> and build from there.

I don't understand what you're doing.  However, I just want to point
out that it is possible to use Git to only pull a selected directory
(or directories) from a Git repo with no history. See, e.g., the
discussion of "sparse checkout" here.

https://stackoverflow.com/questions/600079/how-do-i-clone-a-subdirectory-only-of-a-git-repository

> If I want to patch it doesn’t work from there because patch doesn’t apply 
> across symbolic links. So, instead I go to SAGE_ROOT/src, copy the 
> appropriate setup.py (and any other files needed) and patch and build from 
> there. To patch while setting the top package source tree at 
> SAGE_ROOT/pkg/pkg_name I would have to write my own new patching machinery 
> for Gentoo ebuilds - not gonna happen.
> That wouldn’t happen with split repos.
> For proper releases, I am hoping for separate tarballs (eventually) which 
> means that there won’t be any issues with symbolic links.
>
> François
>
> > On 11/10/2021, at 13:17, Matthias Koeppe <matthiaskoe...@gmail.com> wrote:
> >
> > As we are making progress on preparing the Sage library for modularization 
> > (https://trac.sagemath.org/ticket/29705), here's a discussion of three 
> > things that need to be decided whenever a portion of the Sage library is 
> > modularized:
> >
> > (1) Namespace: Will it be imported as (+) "from sage.hermeneutics.quantum 
> > import QuantumGravity" or (-) "from transformative_hermeneutics.quantum 
> > import QuantumGravity"?
> >
> > (2) Distribution name (= project name): Will it be installed using "pip 
> > install transformative-hermeneutics" or "pip install sagemath-hermeneutics"?
> >
> > (3) Source repository: Is the source maintained as part of the Sage 
> > repository using Trac tickets (MONOREPO); or in a separate repository on 
> > GitHub, GitLab, ... (MULTIREPO)?
> >
> > This post is dedicated to the MONOREPO vs. MULTIREPO question, and how it 
> > relates to (1) and (2).
> >
> > Some details about MONOREPO:
> > The Sage repository already contains several separate distribution source 
> > trees. Since Sage 9.4 they are located in the subdirectory SAGE_ROOT/pkgs 
> > (see 
> > https://wiki.sagemath.org/ReleaseTours/sage-9.4#New_location_for_distribution_package_sources:_SAGE_ROOT.2Fpkgs).
> > For example, SAGE_ROOT/pkgs/sage-sws2rst is a self-contained source tree of 
> > this distribution package: It has standard Python packaging files such as 
> > setup.py.
> > SAGE_ROOT/pkgs/sagemath-standard is also a source tree of this distribution 
> > package; but it is created in part using symbolic links into SAGE_ROOT/src. 
> > This is the trick that has allowed the modularization effort to keep the 
> > SAGE_ROOT/src tree monolithic: Modularization has been happening behind the 
> > scenes and will not change where Sage developers find the source files.
> >
> > In favor of MONOREPO:
> > + The Sage developer community is used to using Trac
> > + The process is well defined: No code "ownership" (all Sage developers can 
> > change any code, subject to peer review); changes are synchronized
> > + There is implicit integration testing with all of Sage
> >
> > Drawbacks of MONOREPO:
> > - Extra hurdle for attracting new developers from outside the Sage 
> > developer community (everyone who is not already a Sage developer uses 
> > GitHub or similar)
> > - Testing infrastructure needs to be set up and maintained separately; in 
> > particular, integration testing with Sage.
> >
> > Evidence:
> > - The pynac situation -- now finally resolved by merging it into the Sage 
> > library 
> > (https://wiki.sagemath.org/ReleaseTours/sage-9.5#Modularization_and_packaging_changes)
> > - Even for separate git repositories hosted in the SageMath GitHub 
> > organization (https://github.com/sagemath/), code ownership and review 
> > workflow are unclear.
> >   - For example, https://github.com/sagemath/sage-numerical-backends-coin 
> > provides no information on how to contribute (commonly expected in a file 
> > CONTRIBUTING.md)
> >   - Neither does https://github.com/sagemath/cysignals, which moreover 
> > looks abandoned: Issues and PRs are not tended to. Is it subject to peer 
> > review like other parts of Sage? Who is in charge of merging PRs?
> >   - Similar issues with https://github.com/sagemath/cypari2
> >
> >
> > 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.
> >
> > Recommendation: Discuss the development workflow for projects in the 
> > https://github.com/sagemath organization, and document it in files 
> > CONTRIBUTING.md in the individual repositories.
> >
> >
> >
> >
> >
> > --
> > 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/1572d163-abba-4fde-b348-5f31166d4b87n%40googlegroups.com.
>
> --
> 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/7682C523-1881-4525-A55E-158FE9AE5C65%40gmail.com.



-- 
William (http://wstein.org)

-- 
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/CACLE5GBhsHDGUixNxkadRg0tziX91Q7itmMi2hDg4JmHGJpW%3Dg%40mail.gmail.com.

Reply via email to