Skip to content

sage_setup: Do not fail if sage.env, sage.* are not available #29924

@mkoeppe

Description

@mkoeppe

... so that it can be used as a build system for the most fundamental distributions of parts of sagelib such as sage-objects, sage-categories without artificially including sage.env there (which is still done as of #29865).

This will require taking care of some dependencies:

We remove some dependencies on sage.* that are still in sage_setup:

./library_order.py:77:from sage.env import cython_aliases
./command/sage_build_cython.py:21:from sage.env import (SAGE_INC, cython_aliases, sage_include_directories)

... by handling the case that the functions sage_include_directories, cython_aliases cannot be imported from sage.env

... and removing the use of SAGE_INC by using instead the environment variables set in sage-build-env-config (this is #29855; see also #29711).

Harmless dependencies on sage.*:

./docbuild/ ........
  (will be invoked later, when sage.* is installed)
./optional_extension.py:22:from sage.misc.package import list_packages
./optional_extension.py:44:    from sage.misc.package import is_package_installed
  (no longer used, only kept around in case user packages use it)
./autogen/interpreters/__main__.py:4:from sage.env import SAGE_SRC
  (only used when invoked interactively)
./command/sage_install.py:28:        from sage.repl.ipython_kernel.install import SageKernelSpec
  (just need to make sure that `sage_setup.command.sage_install` is only used by the distribution that installs `sage.repl.ipython_kernel`)

(split out from #29847)

Depends on #33812

Component: build

Keywords: sd111

Branch/Commit: u/mkoeppe/sage_setup_without_sage_env_etc @ cb16b91

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions