Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add # sage_setup: distribution directives to all files, remove remaining # coding: utf-8 #36964

Merged
merged 88 commits into from
Apr 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
79b1797
sage.*.all*: Update from #35095
mkoeppe Nov 8, 2023
a77700f
relative to absolute imports
mkoeppe Nov 8, 2023
eadafb3
Fixups in .all*
mkoeppe Nov 8, 2023
7be4ed4
Reverts
mkoeppe Nov 8, 2023
6f62d61
Restores
mkoeppe Nov 8, 2023
0353070
Restores
mkoeppe Nov 8, 2023
87aeee8
src/sage/combinat/all__sagemath_combinat.py: pycodestyle fix (whitesp…
mkoeppe Nov 8, 2023
c6a06e1
src/sage/misc/dev_tools.py: Update doctest output
mkoeppe Nov 9, 2023
c2000d8
src/sage/misc/sageinspect.py: Update doctests for increased use of la…
mkoeppe Nov 9, 2023
6c422d0
Merge branch 'rel_import_modules' into sage_all_modularization
mkoeppe Nov 9, 2023
5e246ae
Defer some changes to all__sagemath_{objects,categories} until #36566
mkoeppe Nov 9, 2023
e96396e
src/sage/rings/all.py: Reorder imports
mkoeppe Nov 10, 2023
1e9464c
sage -fixdoctests --no-test --distribution sagemath_categories --upda…
mkoeppe Nov 10, 2023
d2d5f4c
Defer some changes to all__sagemath_repl until #36566
mkoeppe Nov 10, 2023
7393d15
src/sage/combinat/all__sagemath_combinat.py: one more relative to abs…
mkoeppe Nov 10, 2023
c431e38
src/sage/calculus/all.py: Move import to top
mkoeppe Nov 10, 2023
4f39075
src/sage/calculus/all.py: Move 'symbolic_expression' to new module .expr
mkoeppe Nov 10, 2023
ef16a93
for a in $(git --no-pager grep -l lazy_import src/sage/**/all*.py); d…
mkoeppe Nov 11, 2023
15386c7
Manual fixes re 'del lazy_import'
mkoeppe Nov 11, 2023
3bbdcbf
autopep8 --in-place --ignore E402 --max-line-length=88 src/sage/**/al…
mkoeppe Nov 12, 2023
3c2fd60
sed -i.bak 's,http:,https:,g' src/sage/**/all*.py
mkoeppe Nov 12, 2023
d62bed8
Fix errors from 'sage -tox -e pycodestyle -- --ignore E402 src/sage/*…
mkoeppe Nov 12, 2023
5670090
Merge tag '10.2.rc2' into sage_all_modularization
mkoeppe Nov 13, 2023
94cca3f
src/doc/en/reference/calculus/index.rst: Add sage.calculus.expr to to…
mkoeppe Nov 13, 2023
a0c821c
src/sage/calculus/expr.py: Move imports from method to module
mkoeppe Nov 13, 2023
8de494c
for a in $(git --no-pager grep -l install_doc src/sage/**/all*.py); d…
mkoeppe Nov 13, 2023
7067c12
src/sage/combinat/all.py: Also del install_dict
mkoeppe Nov 13, 2023
19ed30a
Merge branch 'rel_import_categories' into sage_all_modularization
mkoeppe Nov 29, 2023
86e3b97
Merge branch 'rel_import_rings' into sage_all_modularization
mkoeppe Nov 29, 2023
6d12cee
Merge branch 'rel_import_small' into sage_all_modularization
mkoeppe Nov 29, 2023
1d735ff
src/sage/arith/all.py: Fix merge
mkoeppe Nov 29, 2023
2bad772
Merge remote-tracking branch 'upstream/develop' into sage_all_modular…
mkoeppe Dec 6, 2023
26eeaa0
Merge tag '10.3.beta1' into sage_all_modularization
mkoeppe Dec 10, 2023
1a71556
src/pyproject.toml.m4: Merge all metadata from src/setup.cfg.m4, remo…
mkoeppe Dec 23, 2023
e4157c5
build/bin/sage-get-system-packages (install-requires[-toml], pip): Do…
mkoeppe Dec 29, 2023
95cb0b5
build/bin/sage-get-system-packages: Add/update comments
mkoeppe Dec 31, 2023
c67121b
src/sage/misc/package_dir.py (read_distribution): Don't fail on FileN…
mkoeppe Dec 25, 2023
e1a418d
pkgs/sagemath-standard/setup.py: Handle added distributions
mkoeppe Dec 25, 2023
126a600
Update output of self-referential doctests
mkoeppe Dec 26, 2023
f3de3d7
Run 'make pypi-sdists && ./sage -fixdistributions --set all --from-eg…
mkoeppe Dec 26, 2023
6740531
grep -l 'coding: *utf-8' src/sage | xargs sed -i.bak '/^#.*coding: *u…
mkoeppe Dec 26, 2023
a9db3ac
Fixups
mkoeppe Dec 26, 2023
6744cbe
src/sage_setup/find.py: Relax a doctest
mkoeppe Dec 27, 2023
865e6a0
pkgs/sagemath-standard/setup.py: Conditionalize source discovery - no…
mkoeppe Dec 29, 2023
18e2102
Fix doctests of is_package_or_sage_namespace_package_dir for multiple…
mkoeppe Dec 30, 2023
09ffed7
Merge branch 'autogeneration-flint-headers' into sage_all_modularization
mkoeppe Jan 2, 2024
58d0e88
Merge branch 'conda-lock' into sagemath_standard_pyproject_toml
mkoeppe Jan 5, 2024
61f85ad
Merge branch 'sagemath_standard_pyproject_toml' into distribution_dir…
mkoeppe Jan 5, 2024
abbea0f
Merge branch 'sage_all_modularization' into distribution_directives
mkoeppe Jan 6, 2024
272e7c1
Merge branch 'develop' into sagemath_standard_pyproject_toml
mkoeppe Jan 14, 2024
3cd86ae
Merge remote-tracking branch 'upstream/develop' into distribution_dir…
mkoeppe Jan 14, 2024
d7cff52
Merge remote-tracking branch 'upstream/develop' into distribution_dir…
mkoeppe Jan 22, 2024
f46db26
Merge remote-tracking branch 'upstream/develop' into sage_all_modular…
mkoeppe Jan 22, 2024
33861f6
Merge branch 'develop' into sagemath_standard_pyproject_toml
mkoeppe Jan 22, 2024
70535aa
Merge branch 'develop' into sagemath_standard_pyproject_toml
mkoeppe Feb 2, 2024
e05ffe1
Merge branch 'develop' into sage_all_modularization
mkoeppe Feb 2, 2024
1ea7469
Merge remote-tracking branch 'origin/sage_all_modularization' into di…
mkoeppe Feb 2, 2024
cdafcd7
Merge tag '10.3.beta8' into sagemath_standard_pyproject_toml
mkoeppe Feb 14, 2024
bb2ad98
Merge remote-tracking branch 'upstream/develop' into sage_all_modular…
mkoeppe Feb 14, 2024
4377289
Merge branch 'sagemath_standard_pyproject_toml' into sage_all_modular…
mkoeppe Feb 14, 2024
6311f69
Merge branch 'sage_all_modularization+sagemath_standard_pyproject_tom…
mkoeppe Feb 14, 2024
6abcfcb
Merge remote-tracking branch 'upstream/develop' into sage_all_modular…
mkoeppe Feb 25, 2024
58e6b82
Merge branch 'develop' into sagemath_standard_pyproject_toml
mkoeppe Feb 25, 2024
e7481bb
Merge branch 'sage_all_modularization' into distribution_directives
mkoeppe Feb 25, 2024
872b690
Merge branch 'sagemath_standard_pyproject_toml' into distribution_dir…
mkoeppe Feb 25, 2024
5cd6d01
Merge remote-tracking branch 'upstream/develop' into distribution_dir…
mkoeppe Mar 2, 2024
d7b6558
Merge tag '10.3.rc3' into sage_all_modularization
mkoeppe Mar 11, 2024
fa06341
Merge branch 'sage_all_modularization' into distribution_directives
mkoeppe Mar 11, 2024
984daca
src/sage/rings/all__sagemath_categories.py: Add import of lazy_import
mkoeppe Mar 14, 2024
e5e8a00
Merge branch 'sage_all_modularization' into distribution_directives
mkoeppe Mar 14, 2024
3c39ab1
Merge remote-tracking branch 'upstream/develop' into sage_all_modular…
mkoeppe Mar 26, 2024
9c11db3
Merge branch 'sage_all_modularization' into distribution_directives
mkoeppe Mar 26, 2024
43b6200
Merge branch 'develop' into sagemath_standard_pyproject_toml
mkoeppe Mar 26, 2024
bce2a59
Merge branch 'p/add-edit-button' into sage_all_modularization
mkoeppe Mar 30, 2024
b9650ab
Merge remote-tracking branch 'upstream/develop' into sage_all_modular…
mkoeppe Apr 1, 2024
a6bea03
Merge remote-tracking branch 'upstream/develop' into sagemath_standar…
mkoeppe Apr 1, 2024
8b06afe
Merge branch 'sagemath_standard_pyproject_toml' into 10.4.beta1-merge
mkoeppe Apr 1, 2024
33b02b7
Merge branch 'sage_all_modularization' into 10.4.beta1-merge
mkoeppe Apr 1, 2024
c99c390
Merge branch '10.4.beta1-merge' into distribution_directives
mkoeppe Apr 1, 2024
5ca0e45
build/pkgs/typing_extensions/version_requirements.txt: Use double quotes
mkoeppe Apr 1, 2024
3336185
Merge branch 'sagemath_standard_pyproject_toml' into distribution_dir…
mkoeppe Apr 7, 2024
fe8ddc6
Merge branch 'public/count_irreducible_polynomials' into sage_all_mod…
mkoeppe Apr 8, 2024
4ef502c
Merge branch 'sage_all_modularization' into distribution_directives
mkoeppe Apr 8, 2024
c6600e7
Merge branch 'noexcept' into distribution_directives
mkoeppe Apr 8, 2024
90c16ff
Merge branch 't/33756/extlinks_for_sage_source_files' into sagemath_s…
mkoeppe Apr 8, 2024
7d138ed
Merge branch 'sagemath_standard_pyproject_toml' into distribution_dir…
mkoeppe Apr 8, 2024
18cb712
Merge remote-tracking branch 'upstream/develop' into sagemath_standar…
mkoeppe Apr 8, 2024
5ae0bc7
Merge branch 'sagemath_standard_pyproject_toml' into distribution_dir…
mkoeppe Apr 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
3 changes: 1 addition & 2 deletions bootstrap
Original file line number Diff line number Diff line change
Expand Up @@ -232,8 +232,7 @@ save () {
src/environment-optional-3.[89].yml src/environment-optional-3.1[0-9].yml \
src/Pipfile \
src/pyproject.toml \
src/requirements.txt \
src/setup.cfg
src/requirements.txt

# Update version
echo "$NEWCONFVERSION" >$PKG/package-version.txt
Expand Down
2 changes: 1 addition & 1 deletion build/bin/write-dockerfile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ $ADD Makefile VERSION.txt COPYING.txt condarc.yml README.md bootstrap bootstrap-
$ADD config/config.rpath config/config.rpath
$ADD src/doc/bootstrap src/doc/bootstrap
$ADD src/bin src/bin
$ADD src/Pipfile.m4 src/pyproject.toml.m4 src/requirements.txt.m4 src/setup.cfg.m4 src/VERSION.txt src/
$ADD src/Pipfile.m4 src/pyproject.toml.m4 src/requirements.txt.m4 src/VERSION.txt src/
$ADD m4 ./m4
$ADD pkgs pkgs
$ADD build ./build
Expand Down
2 changes: 1 addition & 1 deletion build/pkgs/typing_extensions/version_requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# According to https://github.com/python/typing_extensions/blob/main/CHANGELOG.md,
# version 4.4.0 adds another Python 3.11 typing backport
typing_extensions >= 4.4.0; python_version<'3.11'
typing_extensions >= 4.4.0; python_version<"3.11"
24 changes: 9 additions & 15 deletions pkgs/sagemath-categories/known-test-failures.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"ntests": 28
},
"sage.categories.affine_weyl_groups": {
"ntests": 14
"ntests": 15
},
"sage.categories.algebra_ideals": {
"failed": true,
Expand Down Expand Up @@ -148,7 +148,7 @@
},
"sage.categories.coxeter_groups": {
"failed": true,
"ntests": 362
"ntests": 363
},
"sage.categories.cw_complexes": {
"failed": true,
Expand Down Expand Up @@ -301,7 +301,7 @@
},
"sage.categories.finite_complex_reflection_groups": {
"failed": true,
"ntests": 178
"ntests": 199
},
"sage.categories.finite_coxeter_groups": {
"ntests": 6
Expand Down Expand Up @@ -493,10 +493,6 @@
"failed": true,
"ntests": 13
},
"sage.categories.inner_product_spaces": {
"failed": true,
"ntests": 9
},
"sage.categories.integral_domains": {
"failed": true,
"ntests": 22
Expand Down Expand Up @@ -783,7 +779,7 @@
},
"sage.cpython.debug": {
"failed": true,
"ntests": 14
"ntests": 13
},
"sage.cpython.dict_del_by_value": {
"failed": true,
Expand Down Expand Up @@ -826,7 +822,6 @@
"ntests": 321
},
"sage.doctest.reporting": {
"failed": true,
"ntests": 124
},
"sage.doctest.sources": {
Expand Down Expand Up @@ -1091,7 +1086,7 @@
},
"sage.misc.sageinspect": {
"failed": true,
"ntests": 329
"ntests": 332
},
"sage.misc.superseded": {
"failed": true,
Expand Down Expand Up @@ -1124,6 +1119,7 @@
"ntests": 128
},
"sage.repl.configuration": {
"failed": true,
"ntests": 22
},
"sage.repl.display.fancy_repr": {
Expand All @@ -1149,6 +1145,7 @@
"ntests": 42
},
"sage.repl.inputhook": {
"failed": true,
"ntests": 7
},
"sage.repl.interface_magic": {
Expand All @@ -1157,7 +1154,7 @@
},
"sage.repl.interpreter": {
"failed": true,
"ntests": 118
"ntests": 114
},
"sage.repl.ipython_extension": {
"failed": true,
Expand Down Expand Up @@ -1188,7 +1185,7 @@
},
"sage.repl.load": {
"failed": true,
"ntests": 42
"ntests": 38
},
"sage.repl.preparse": {
"failed": true,
Expand Down Expand Up @@ -1315,9 +1312,6 @@
"sage.structure.global_options": {
"ntests": 145
},
"sage.structure.graphics_file": {
"ntests": 8
},
"sage.structure.indexed_generators": {
"failed": true,
"ntests": 90
Expand Down
1 change: 0 additions & 1 deletion pkgs/sagemath-standard/setup.cfg

This file was deleted.

1 change: 0 additions & 1 deletion pkgs/sagemath-standard/setup.cfg.m4

This file was deleted.

73 changes: 54 additions & 19 deletions pkgs/sagemath-standard/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,25 +69,60 @@
from sage_setup.autogen import autogen_all
autogen_all()

# TODO: This should be quiet by default
print("Discovering Python/Cython source code....")
t = time.time()
from sage.misc.package import is_package_installed_and_updated
distributions = ['']
optional_packages_with_extensions = os.environ.get('SAGE_OPTIONAL_PACKAGES_WITH_EXTENSIONS', '').split(',')
distributions += ['sagemath-{}'.format(pkg)
for pkg in optional_packages_with_extensions
if is_package_installed_and_updated(pkg)]
log.warn('distributions = {0}'.format(distributions))
from sage_setup.find import find_python_sources
python_packages, python_modules, cython_modules = find_python_sources(
SAGE_SRC, ['sage'], distributions=distributions)

log.debug('python_packages = {0}'.format(python_packages))
log.debug('python_modules = {0}'.format(python_modules))
log.debug('cython_modules = {0}'.format(cython_modules))

print("Discovered Python/Cython sources, time: %.2f seconds." % (time.time() - t))
# TODO: This should be quiet by default
print("Discovering Python/Cython source code....")
t = time.time()
from sage.misc.package import is_package_installed_and_updated

distributions = [
'',
"sagemath-brial",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the point of these changes here? Why does sagemath-standard needs to know about the distributions?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's how pkgs/sagemath-standard/setup.py works, in contrast to src/setup.py. It filters by given named distributions.

As long as the named distributions are not created in pkgs/, sagemath-standard is in charge of including the files tagged like this.

"sagemath-categories",
"sagemath-combinat",
"sagemath-eclib",
"sagemath-environment",
"sagemath-flint",
"sagemath-gap",
"sagemath-giac",
"sagemath-glpk",
"sagemath-graphs",
"sagemath-groups",
"sagemath-homfly",
"sagemath-lcalc",
"sagemath-libbraiding",
"sagemath-libecm",
"sagemath-linbox",
"sagemath-modules",
"sagemath-mpmath",
"sagemath-ntl",
"sagemath-objects",
"sagemath-pari",
"sagemath-plot",
"sagemath-polyhedra",
"sagemath-repl",
"sagemath-schemes",
"sagemath-singular",
"sagemath-symbolics",
]

optional_packages_with_extensions = os.environ.get('SAGE_OPTIONAL_PACKAGES_WITH_EXTENSIONS', '').split(',')
distributions += ['sagemath-{}'.format(pkg)
for pkg in optional_packages_with_extensions
if is_package_installed_and_updated(pkg)]
log.warn('distributions = {0}'.format(distributions))
from sage_setup.find import find_python_sources
python_packages, python_modules, cython_modules = find_python_sources(
SAGE_SRC, ['sage'], distributions=distributions)

log.debug('python_packages = {0}'.format(python_packages))
log.debug('python_modules = {0}'.format(python_modules))
log.debug('cython_modules = {0}'.format(cython_modules))

print("Discovered Python/Cython sources, time: %.2f seconds." % (time.time() - t))
else:
# sdist, egg_info, dist_info
python_packages = []
cython_modules = []

#########################################################
### Distutils
Expand Down
4 changes: 2 additions & 2 deletions pkgs/sagemath-standard/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
[tox]
envlist =
# Build and test without using the concrete dependencies specified by requirements.txt,
# using the dependencies declared in pyproject.toml and setup.cfg (install-requires) only:
# using the dependencies declared in pyproject.toml (build-system requires, dependencies) only:
# Still use ONLY the wheels built and stored by the Sage distribution (no PyPI).
#
# ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)'
Expand Down Expand Up @@ -45,7 +45,7 @@ envlist =
#
# ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels-pipenv-dist)'
#
# Build using the dependencies declared in pyproject.toml and setup.cfg (install-requires) only.
# Build using the dependencies declared in pyproject.toml (build-system requires, dependencies) only:
# Use the wheels built and stored by the Sage distribution,
# and additionally allow packages from PyPI.
#
Expand Down
8 changes: 4 additions & 4 deletions src/Pipfile.m4
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
## We do not list packages that are already declared as install_requires
## in setup.cfg
## We do not list packages that are already declared as dependencies (install_requires)
## in pyproject.toml
pycodestyle = "*"
tox = "*"
pytest = "*"
rope = "*"
six = "*"

[packages]
## We do not list packages that are already declared as install_requires
## in setup.cfg
## We do not list packages that are already declared as dependencies (install_requires)
## in pyproject.toml

[packages.e1839a8]
path = "."
4 changes: 2 additions & 2 deletions src/doc/en/developer/coding_basics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,8 @@ included in one of the following places:
This practice is deprecated, see :issue:`33037`.

In all cases, the files must be listed (explicitly or via wildcards) in
the section ``options.package_data`` of the file
:sage_root:`pkgs/sagemath-standard/setup.cfg.m4` (or the corresponding
the section ``[tool.setuptools.package-data]`` of the file
:sage_root:`SAGE_ROOT/pkgs/sagemath-standard/pyproject.toml.m4` (or the corresponding
file of another distribution).

Large data files should not be added to the Sage source tree. Instead, it
Expand Down
5 changes: 3 additions & 2 deletions src/doc/en/developer/coding_in_python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ Python language standard

Sage library code needs to be compatible with all versions of Python
that Sage supports. The information regarding the supported versions
can be found in the files ``build/pkgs/python3/spkg-configure.m4`` and
``src/setup.cfg.m4``.
can be found in the files ``build/pkgs/python3/spkg-configure.m4``
(for the Sage distribution), ``m4/pyproject_toml_metadata.m4`` (for
the Sage library and most other distribution packages in ``pkgs/``).

Python 3.9 is the oldest supported version. Hence,
all language and library features that are available in Python 3.9 can
Expand Down
25 changes: 14 additions & 11 deletions src/doc/en/developer/packaging_sage_library.rst
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,7 @@ The source directory of a distribution package, such as

$ ./sage --fixdistributions --set all --from-egg-info

- `pyproject.toml <https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/>`_,
`setup.cfg <https://setuptools.pypa.io/en/latest/userguide/declarative_config.html>`_,
- `pyproject.toml <https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/>`_
and `requirements.txt <https://pip.pypa.io/en/stable/user_guide/#requirements-files>`_ --
standard Python packaging metadata, declaring the distribution name, dependencies,
etc.
Expand Down Expand Up @@ -288,8 +287,9 @@ modules must be part of the distribution, or provided by another
distribution -- which then must be declared as a run-time dependency.

*Declaring run-time dependencies:* These dependencies are declared in
``setup.cfg`` (generated from ``setup.cfg.m4``) as
`install_requires <https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#declaring-required-dependency>`_.
``pyproject.toml`` (generated from ``pyproject.toml.m4``) as
`[project] dependencies <https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#declaring-required-dependency>`_ (in the older terminology of ``setup.cfg`` and ``setup.py``,
these dependencies were known as ``install_requires``).

*Reducing module-level run-time dependencies:*

Expand Down Expand Up @@ -467,14 +467,17 @@ features, which will only be working if the user also has installed
**sagemath-symbolics**.

*Declaring optional run-time dependencies:* It is possible to declare
such optional dependencies as `extras_require <https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#optional-dependencies>`_ in ``setup.cfg``
(generated from ``setup.cfg.m4``). This is a very limited mechanism
such dependencies as `[project.optional-dependencies] <https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#optional-dependencies>`_ in ``pyproject.toml``
(generated from ``pyproject.toml.m4``).
(In the older terminology of ``setup.cfg`` and ``setup.py``,
these optional dependencies were known as ``extras_require``.)
This is a very limited mechanism
-- in particular it does not affect the build phase of the
distribution in any way. It basically only provides a way to give a
nickname to a distribution that can be installed as an add-on.

In our example, we could declare an ``extras_require`` so that users
could use ``pip install sagemath-coding[symbolics]``.
In our example, we could declare an optional dependency so that users
could use ``pip install "sagemath-coding[symbolics]"``.


Doctest-only dependencies
Expand Down Expand Up @@ -516,7 +519,7 @@ The version information for dependencies comes from the files
``build/pkgs/*/package-version.txt``. We use the
`m4 <https://www.gnu.org/software/m4/manual/html_node/index.html>`_
macro processor to insert the version information in the generated files
``pyproject.toml``, ``setup.cfg``, ``requirements.txt``.
``pyproject.toml`` and ``requirements.txt``.


Hierarchy of distribution packages
Expand Down Expand Up @@ -546,8 +549,8 @@ Hierarchy of distribution packages
sphinx_plot(g, figsize=(8, 4), axes=False)


Solid arrows indicate ``install_requires``, i.e., a declared runtime dependency.
Dashed arrows indicate ``extras_require``, i.e., a declared optional runtime dependency.
Solid arrows indicate declared runtime dependencies (``install_requires``).
Dashed arrows indicate declared optional runtime dependencies (``extras_require``).
Not shown in the diagram are build dependencies and optional dependencies for testing.

- `sage_conf <https://pypi.org/project/sage-conf/>`_ is a configuration
Expand Down
2 changes: 2 additions & 0 deletions src/doc/en/reference/calculus/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Using calculus

- :doc:`More about symbolic variables and functions <sage/calculus/var>`
- :doc:`Main operations on symbolic expressions <sage/symbolic/expression>`
- :doc:`sage/calculus/expr`
- :doc:`Assumptions about symbols and functions <sage/symbolic/assumptions>`
- :doc:`sage/symbolic/relation`
- :doc:`sage/symbolic/integration/integral`
Expand Down Expand Up @@ -65,6 +66,7 @@ Internal functionality supporting calculus

sage/symbolic/expression
sage/symbolic/callable
sage/calculus/expr
sage/symbolic/assumptions
sage/symbolic/relation
sage/calculus/calculus
Expand Down
Loading
Loading