sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.31k stars 451 forks source link

./configure --with-sage-venv=none #30896

Open mkoeppe opened 3 years ago

mkoeppe commented 3 years ago

(split out from #29013)

As of #32442, ./configure --with-sage-venv=no just means: Keep SAGE_VENV the same as SAGE_LOCAL.

In this ticket we add support for a new option, perhaps ./configure --with-sage-venv=none, which would suppress making any Python venv and suppress building any Python packages. (Using the mechanism of disablable installation trees from #31356, #32759.)

In this configuration, sage_conf cannot be built as a wheel, so we only build an sdist (using sage-bootstrap-python!) and store that in $SAGE_LOCAL/var/lib/sage/wheels.

Also, the default target all-start makes no sense, and also the docbuild cannot be done. Instead, the default would be to build only the target all-sage (which would be modified to remove the unnecessary special case sagelib).

This is for users who prefer to install Python packages into their own virtual environments using standard Python tools.

Depends on #31362

CC: @dimpase @jhpalmieri @orlitzky @tobiasdiez

Component: build

Keywords: sd111

Work Issues: Rework as "--with-sage-venv=none" (implied by "--without-python"), rebase on #31362

Branch/Commit: u/mkoeppe/__configure___without_python @ 932ebd8

Issue created by migration from https://trac.sagemath.org/ticket/30896

mkoeppe commented 3 years ago
comment:1

To disable building Python packages, the make targets would be replaced by dummy targets in the same way as it is done for packages found by spkg-configure.

In addition, this could go through #30383 ("configure --disable-SPKG" for standard packages) so that configure already shows that the build is disabled for Python packages.

mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -1,4 +1,6 @@
 In this ticket we add support for `./configure --with-python=no`, which would suppress making any Python venv and suppress building any Python packages.
+
+In this configuration, the default target `all-start` makes no sense, and also the docbuild cannot be done. Instead, the default would be to build only the target `all-sage` (which would be modified to remove the unnecessary special case `sagelib`).

 This is for users who prefer to install Python packages into their own virtual environments using standard Python tools.
mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -1,3 +1,5 @@
+(split out from #29013)
+
 In this ticket we add support for `./configure --with-python=no`, which would suppress making any Python venv and suppress building any Python packages.

 In this configuration, the default target `all-start` makes no sense, and also the docbuild cannot be done. Instead, the default would be to build only the target `all-sage` (which would be modified to remove the unnecessary special case `sagelib`).
mkoeppe commented 3 years ago

Branch: u/mkoeppe/__configure___without_python

mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -1,8 +1,10 @@
 (split out from #29013)

-In this ticket we add support for `./configure --with-python=no`, which would suppress making any Python venv and suppress building any Python packages.
+In this ticket we add support for `./configure --with-sage-venv=no`, which would suppress making any Python venv and suppress building any Python packages.

-In this configuration, the default target `all-start` makes no sense, and also the docbuild cannot be done. Instead, the default would be to build only the target `all-sage` (which would be modified to remove the unnecessary special case `sagelib`).
+In this configuration, `sage_conf` cannot be built as a wheel, so we only build an sdist and store that in `$SAGE_LOCAL/var/lib/sage/wheels`.
+
+Also, the default target `all-start` makes no sense, and also the docbuild cannot be done. Instead, the default would be to build only the target `all-sage` (which would be modified to remove the unnecessary special case `sagelib`).

 This is for users who prefer to install Python packages into their own virtual environments using standard Python tools.
mkoeppe commented 3 years ago

Last 10 new commits:

f9ac70eAdd install-requires.txt for setuptools, pip
f6a2c56Merge tag '9.3.beta1' into t/30719/add_build_pkgs_spkg_install_requires_txt_for_all_python_packages
e61929dbuild/pkgs/sphinx/install-requires.txt: Update from gentoo
8fe0e35build/pkgs/python_openid: Unused, remove
ba1d913build/pkgs/itsdangerous: Unused, remove
bb6c4aebuild/pkgs/tox/install-requires.txt: New
d507501build/pkgs/networkx/install-requires.txt: Update from gentoo
c3a9352build/pkgs/pathpy/install-requires.txt: Package removed in #30611, remove
ebd4610build/pkgs/pynac/install-requires.txt: New
e25b833Merge branch 't/30719/add_build_pkgs_spkg_install_requires_txt_for_all_python_packages' into t/30896/__configure___without_python
mkoeppe commented 3 years ago

Commit: e25b833

mkoeppe commented 3 years ago

Work Issues: Rework as "--without-sage-venv" (implied by "--without-python")

mkoeppe commented 3 years ago

Description changed:

--- 
+++ 
@@ -2,7 +2,7 @@

 In this ticket we add support for `./configure --with-sage-venv=no`, which would suppress making any Python venv and suppress building any Python packages.

-In this configuration, `sage_conf` cannot be built as a wheel, so we only build an sdist and store that in `$SAGE_LOCAL/var/lib/sage/wheels`.
+In this configuration, `sage_conf` cannot be built as a wheel, so we only build an sdist (using `sage-bootstrap-python`!) and store that in `$SAGE_LOCAL/var/lib/sage/wheels`.

 Also, the default target `all-start` makes no sense, and also the docbuild cannot be done. Instead, the default would be to build only the target `all-sage` (which would be modified to remove the unnecessary special case `sagelib`).
mkoeppe commented 3 years ago

Changed keywords from none to sd111

mkoeppe commented 3 years ago
comment:8

Hoping we can make progress on this ticket this week - https://wiki.sagemath.org/days111

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

fa13bfabuild/pkgs/python3/spkg-configure.m4: Accept --with-python=no
17869afm4/sage_spkg_collect.m4: If configured --without-python, mark all Python packages as not required
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from e25b833 to 17869af

mkoeppe commented 3 years ago

Changed dependencies from #30719 to #31263

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 17869af to 932ebd8

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

fec4b06fix sage -b after 30622
dff846cgo through make/build/install
8aff784build/pkgs/python3/spkg-configure.m4: Accept --with-python=no
932ebd8m4/sage_spkg_collect.m4: If configured --without-python, mark all Python packages as not required
mkoeppe commented 3 years ago

Changed dependencies from #31263 to #31362

mkoeppe commented 3 years ago

Changed work issues from Rework as "--without-sage-venv" (implied by "--without-python") to Rework as "--without-sage-venv" (implied by "--without-python"), rebase on #31362

mkoeppe commented 3 years ago
comment:15

Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.

mkoeppe commented 2 years ago

Changed work issues from Rework as "--without-sage-venv" (implied by "--without-python"), rebase on #31362 to Rework as "--with-sage-venv=none" (implied by "--without-python"), rebase on #31362

mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -1,6 +1,8 @@
 (split out from #29013)

-In this ticket we add support for `./configure --with-sage-venv=no`, which would suppress making any Python venv and suppress building any Python packages.
+As of #32442, `./configure --with-sage-venv=no` just means: Keep SAGE_VENV the same as SAGE_LOCAL.
+
+In this ticket we add support for a new option, perhaps `./configure --with-sage-venv=none`, which would suppress making any Python venv and suppress building any Python packages.

 In this configuration, `sage_conf` cannot be built as a wheel, so we only build an sdist (using `sage-bootstrap-python`!) and store that in `$SAGE_LOCAL/var/lib/sage/wheels`.
mkoeppe commented 2 years ago

Description changed:

--- 
+++ 
@@ -3,6 +3,7 @@
 As of #32442, `./configure --with-sage-venv=no` just means: Keep SAGE_VENV the same as SAGE_LOCAL.

 In this ticket we add support for a new option, perhaps `./configure --with-sage-venv=none`, which would suppress making any Python venv and suppress building any Python packages.
+(Using the mechanism of disablable installation trees from #31356, #32759.)

 In this configuration, `sage_conf` cannot be built as a wheel, so we only build an sdist (using `sage-bootstrap-python`!) and store that in `$SAGE_LOCAL/var/lib/sage/wheels`.