Dear all:

As an alternative to the proposal to back out the 
PR https://github.com/sagemath/sage/pull/36964 whose *disputed dependency 
PR https://github.com/sagemath/sage/pull/36676 which had not reached the 
required 2:1 supermajority *of the dispute-resolution process *(it 
currently only has a simple majority of 7 votes in favor, 5 votes against)* 
--- I am asking for your votes on that dependency PR 
https://github.com/sagemath/sage/pull/36676 to heal the process. This will 
avoid further delays and disruptions.

*What is the modularization project?* The Sage developer community has long 
been aware of the severe problems that the monolithic design of Sage has 
brought. See in particular the lively 2016 sage-devel thread "How we 
develop Sage" (https://groups.google.com/g/ sage-devel/c/29ndCD8z94k) 
initiated by William. In its current incarnation, "modularization project" 
refers to my proposal from May 2020,
- to use modern Python packaging ("PEP 517/518/660") and Python 3's 
"implicit namespace packages" to 
- break the Sage library into separately buildable and installable 
"distribution packages"
- while keeping the structure of the source tree mostly unchanged, 
monolithic, for the convenience of the Sage developer community.
For the project, hundreds of tickets/PRs have been prepared and merged over 
the past 4 years, see the Meta-ticket 
https://github.com/sagemath/sage/issues/29705 for a list.

*Has the Sage community been informed and consulted regarding the 
modularization project? *Yes, in addition to the normal review that all 
tickets/PRs underwent:
- I have given detailed presentations about the project in SageDays 110 
(2020), 112.358 (2022), 120 (2023), 
see https://github.com/sagemath/sage/issues/29705 for links.
- A chapter of the Sage Developer Guide, 
https://doc.sagemath.org/html/en/developer/packaging_sage_library.html#packaging-the-sage-library,
 
provides a detailed description of the design
- I have posted numerous times to sage-devel, most recently the series 
"SageMath modularization project: The five by five" (2023-06). See 
https://github.com/sagemath/sage/issues/29705 for links to all of these.
- Specifically, in the post "Modularization project: V. The blocs" 
(https://groups.google.com/g/sage-devel/c/kiB32zP3xD4/m/GJ0qF7TTAAAJ, 
2023-06), I outlined the design of the pip-installable packages such as 
sagemath-combinat, sagemath-graphs, sagemath-flint, sagemath-plot etc. 
- And in my 2023-11 post 
https://groups.google.com/g/sage-devel/c/kiB32zP3xD4/m/GJ0qF7TTAAAJ in the 
same thread, I asked: 
> Ready for review: A restructuring of our "all.py" files along these 
dependencies in https://github.com/sagemath/sage/pull/36676. This is an 
opportunity to review the contents of the proposed distributions 
implemented in Mega-PR https://github.com/sagemath/sage/pull/35095 (~50 
kLOC changes, not open for review). As 
https://github.com/sagemath/sage/pull/36676 rewrites all "all.py" files, it 
is also an opportunity for a deliberate coding style decision for these 
files. I welcome all constructive discussions in the PR.

*What does the PR https://github.com/sagemath/sage/pull/36676 do? *Per its 
title, "Restructure sage.*.all for modularization, replace relative by 
absolute imports". The PR is "mostly harmless": There are no user-visible 
changes; it's just a bunch of imports that are moved around. It includes no 
policy change of any kind; it only executes a design that was previously 
reviewed and carefully documented in separate PRs. Nothing permanent or 
irreversible is done here. The new files provide the top-level namespaces 
needed for doctesting modularized installations of Sage.

*Has it been reviewed?* Yes, David Coudert and John Palmieri did a detailed 
review. This was completed on November 15, 2023 --- over 5 months ago.

*How did this PR become "disputed"?* Back in November, one commenter 
floated an (untested) alternative design 
(https://github.com/sagemath/sage/pull/36676#pullrequestreview-1726079717); 
I explained 
in https://github.com/sagemath/sage/pull/36676#issuecomment-1806873154 why 
it's not suitable. Commenter demanded that the previously reviewed and 
documented design is reopened for discussion, 
https://github.com/sagemath/sage/pull/36676#issuecomment-1863667919. 

*What are the concerns that have been made known during the voting process 
for this PR (March/April 2024)?* I will not attempt to paraphrase, but here 
are links to some posts so that you can find the discussion.
- Gonzalo Tornaria 
https://github.com/sagemath/sage/pull/36676#issuecomment-2048350399, 
https://github.com/sagemath/sage/pull/36676#issuecomment-2048848093
- Michael 
Orlitzky https://github.com/sagemath/sage/pull/36676#issuecomment-2048600337
- Martin Rubey 
https://github.com/sagemath/sage/pull/36676#issuecomment-2050427818

*How to vote: *By posting a comment on the PR 
https://github.com/sagemath/sage/pull/36676.

Matthias

-- 
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/5cb60103-9aea-4101-8be6-b88fe262ee0an%40googlegroups.com.

Reply via email to