On Monday, June 12, 2023 at 11:13:26 AM UTC-7 Matthias Koeppe wrote:

*The monorepo. *Sage development will continue to use the same one 
repository sagemath/sage <https://github.com/sagemath/sage> for development 
of the Sage distribution, the Sage library, and the documentation. And the 
structure of the source tree (src/sage) will remain unchanged.

*Integration testing.* The entire Sage library will continue to be tested 
as a whole, both on Sage developers' machines (make ptest, ./sage -t --all) 
and on GitHub Actions.


I'll expand a bit on the role of the monorepo.

The monorepo contains: 
- Configuration and build system of Sage-the-distribution (top-level 
directories *build/ <https://github.com/sagemath/sage/tree/develop/build>*, 
*m4/* and files *bootstrap*, *configure.ac, Makefile*).
    - as part of it, metadata and scripts for packages (directory *build/pkgs/ 
<https://github.com/sagemath/sage/tree/develop/build/pkgs>*)
- Monolithic source tree (top-level directory *src/ 
<https://github.com/sagemath/sage/tree/develop/src>*)
- Python distribution packages (top-level directory *pkgs/ 
<https://github.com/sagemath/sage/tree/develop/pkgs>*). (Many more 
<https://github.com/mkoeppe/sage/tree/t/32432/modularization_of_sagelib__break_out_a_separate_package_sagemath_polyhedra/pkgs>
 
are added in the modularization project.)

Our top-level *bootstrap* script is in charge of synchronizing these parts. 
The metadata in *build/pkgs/* contains version constraints for dependencies 
on Python packages. *bootstrap* fills the version information into 
templates in *pkgs/*/*. After running *bootstrap*, each of the directories 
in *pkgs/* contains the source of a complete Python distribution package, 
which can be built and installed using standard Python tools. There is no 
reference to Sage-the-distribution anywhere in these distribution packages.

Among the Python distribution packages, there is a special distribution 
*pkgs/sage-conf 
<https://github.com/sagemath/sage/tree/develop/pkgs/sage-conf>*, which 
provides the configuration variable values determined by the top-level 
*configure* script. A separate version of this distribution package, 
*pkgs/sage-conf_pypi 
<https://github.com/sagemath/sage/tree/develop/pkgs/sage-conf_pypi>* is 
published on PyPI; this version runs the *configure* script by itself and 
can build the non-Python bits of the Sage distribution.

-- 
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/547677bc-6001-47da-a431-6a737a6220fcn%40googlegroups.com.

Reply via email to