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.