Opened 2 years ago

Closed 6 months ago

#29865 closed enhancement (fixed)

Modularization of sagelib: Break out separate packages sagemath-objects, sagemath-categories

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-9.6
Component: refactoring Keywords: sd111
Cc: vdelecroix, tscrim, mjo, nthiery, gh-timokau, chapoton, gh-tobiasdiez, klee, vbraun Merged in:
Authors: Matthias Koeppe Reviewers: Kwankyu Lee
Report Upstream: N/A Work issues:
Branch: 36d6b09 (Commits, GitHub, GitLab) Commit: 36d6b097ab164189a244eb8169d2b8efb913972a
Dependencies: #29039, #32933 Stopgaps:

Status badges

Description (last modified by mkoeppe)

This ticket creates two experimental packages https://pypi.org/project/sagemath-objects/ and https://pypi.org/project/sagemath-categories/, outlined in Meta-ticket #29705, that consist of small subsets of the modules of sagelib, making Sage objects, the element/parent framework, categories, the coercion system and the related metaclasses available.

To build an sdist:

./sage -sh build/pkgs/sagemath_objects/spkg-src
./sage -sh build/pkgs/sagemath_categories/spkg-src

This creates a pip-installable source distribution sagemath-objects-VERSION.tar.gz (or sagemath-categories-VERSION.tar.gz) in upstream/.

The distributions depend only on Cython, pkgconfig, cysignals, gmpy2. The latter, of course, requires various headers and libraries, so they are not quite "purely" pip-installable packages.

The goal is for all modules of sagemath-objects and sagemath-categories to be importable even when sagelib is not installed. This can be tested (with tox) as follows:

./bootstrap && ./sage -sh -c '(cd build/pkgs/sagemath_objects/src && tox -v -v -e py39)'
./bootstrap && ./sage -sh -c '(cd build/pkgs/sagemath_categories/src && tox -v -v -e py39)'

sagemath-categories is intended to have sagemath-objects as a prerequisite. However, currently, sagemath-categories is an independent distribution that provides a superset of the modules of sagemath-objects.

Recombining it with the rest of sagelib via namespace package magic as outlined in #29705 is not implemented on this ticket. This will be done in follow-up tickets.

Change History (172)

comment:1 Changed 2 years ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-9.3

comment:2 Changed 2 years ago by mkoeppe

  • Description modified (diff)

comment:3 Changed 2 years ago by mkoeppe

  • Description modified (diff)

comment:4 Changed 2 years ago by mkoeppe

  • Branch set to u/mkoeppe/t/29865-modularizarion-sage-objects

comment:5 Changed 2 years ago by git

  • Commit set to dd3dc152460849430462a5c07be6c7683b72d7da

Branch pushed to git repo; I updated commit sha1. New commits:

889f0c6sage.env.sage_include_directories: Do not fail if numpy cannot be imported
dd3dc15build/pkgs/sage_objects: Add dependencies, get minimal tox working

comment:6 Changed 2 years ago by git

  • Commit changed from dd3dc152460849430462a5c07be6c7683b72d7da to b72264efcbba9fe1e5015cff13da4c3d2fdb5ca1

Branch pushed to git repo; I updated commit sha1. New commits:

4a99c1cAdd comment
b72264eWIP: More stuff

comment:7 Changed 2 years ago by mkoeppe

  • Cc vdelecroix added
  • Description modified (diff)

comment:8 Changed 2 years ago by git

  • Commit changed from b72264efcbba9fe1e5015cff13da4c3d2fdb5ca1 to 23aaec1f4c404f039ae8da37b693c4032c120275

Branch pushed to git repo; I updated commit sha1. New commits:

23aaec1Version with sage.structure, sage.categories that builds OK; uses gmpy2

comment:9 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29864 to #29864, #29869

comment:10 Changed 2 years ago by git

  • Commit changed from 23aaec1f4c404f039ae8da37b693c4032c120275 to 29e30a47cc14bacd62ea4ad17976cbe580a403c2

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

cbc5555sage.misc.misc, sage.misc.persist, sage.structure.formal_sum: Make some imports local to functions
0b7e11fOn the way to get sage.structure.all importing
19f86dcsage.env: Do not die if DOT_SAGE is None
a795d56sage.structure.factorization: Make import of sage.rings.integer.Integer local to methods
0ce9916sage.structure.sequence: Make import of sage.misc.latex local to the latex method
fa22e19sage.structure.all: Import .formal_sum lazily to avoid pulling in sage.modules
acf1ba3sage.structure.factorization: Make import of sage.misc.misc_c.prod local to methods
14b1e55sage.structure.formal_sum, .parent_gens: Fixup: Remove imports
a5453bfFixup: Add src/sage/misc/call.py
29e30a4Merge branch 't/29869/move_attrcall_and_friends_from_sage_misc_misc_to_new_module_sage_misc_call' into t/29865-modularizarion-sage-objects

comment:11 Changed 2 years ago by mkoeppe

import sage.structure.all succeeds now

comment:12 Changed 2 years ago by git

  • Commit changed from 29e30a47cc14bacd62ea4ad17976cbe580a403c2 to c4a68e38994ad6bf72794470f4364bad8c21f553

Branch pushed to git repo; I updated commit sha1. New commits:

c4a68e3build/pkgs/sage_objects/src/tox.ini: Add comments, test more

comment:13 Changed 2 years ago by mkoeppe

  • Cc tscrim added

Some of the Python modules in sage.categories seem to be sensitive to import order.

$ build/pkgs/sage_objects/src/.tox/python/bin/python -c 'import sage.categories.map'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "sage/categories/map.pyx", line 1, in init sage.categories.map (build/cythonized/sage/categories/map.c:16980)
  File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/pkgs/sage_objects/src/.tox/python/lib/python3.7/site-packages/sage/structure/__init__.py", line 2, in <module>
    import sage.structure.element
  File "sage/structure/parent.pxd", line 12, in init sage.structure.element (build/cythonized/sage/structure/element.c:34583)
  File "sage/categories/map.pxd", line 4, in init sage.structure.parent (build/cythonized/sage/structure/parent.c:27689)
AttributeError: module 'sage.categories.map' has no attribute 'Map'

vs.

$ build/pkgs/sage_objects/src/.tox/python/bin/python -c 'import sage.structure.all, sage.categories.map'
# succeeds

comment:14 Changed 2 years ago by git

  • Commit changed from c4a68e38994ad6bf72794470f4364bad8c21f553 to 7cca294065f31775b86dd3ebae35739039a14361

Branch pushed to git repo; I updated commit sha1. New commits:

1963567sage.categories.crystals: Make import of sage.misc.latex local to a method
c557714sage.categories: Make imports from sage.rings, .sets, .combinat, .plot, .matrix local to methods
7cca294Now we can import sage.categories.all

comment:15 Changed 2 years ago by mkoeppe

$ build/pkgs/sage_objects/src/.tox/python/bin/python -c 'import sage.structure.all, sage.categories.all'
# succeeds

but does not succeed without importing sage.structure.all first...

comment:16 Changed 2 years ago by mkoeppe

build/pkgs/sage_objects/src/.tox/python/bin/python -c 'import sage.structure.all, sage.categories.all, sage.categories.facade_sets; sage.categories.facade_sets.FacadeSets().example()'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "sage/misc/classcall_metaclass.pyx", line 322, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (build/cythonized/sage/misc/classcall_metaclass.c:1717)
  File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/pkgs/sage_objects/src/.tox/python/lib/python3.7/site-packages/sage/categories/category_with_axiom.py", line 1993, in __classcall__
    (base_category_class, axiom) = cls._base_category_class_and_axiom
  File "sage/misc/lazy_attribute.pyx", line 699, in sage.misc.lazy_attribute.lazy_class_attribute.__get__ (build/cythonized/sage/misc/lazy_attribute.c:2894)
  File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/pkgs/sage_objects/src/.tox/python/lib/python3.7/site-packages/sage/categories/category_with_axiom.py", line 1933, in _base_category_class_and_axiom
    base_category_class, axiom = base_category_class_and_axiom(cls)
  File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/pkgs/sage_objects/src/.tox/python/lib/python3.7/site-packages/sage/categories/category_with_axiom.py", line 1790, in base_category_class_and_axiom
    assert getattr(base_category_class, axiom, None) is cls, \
  File "sage/misc/lazy_import.pyx", line 498, in sage.misc.lazy_import.LazyImport.__get__ (build/cythonized/sage/misc/lazy_import.c:4236)
  File "sage/misc/lazy_import.pyx", line 188, in sage.misc.lazy_import.LazyImport.get_object (build/cythonized/sage/misc/lazy_import.c:2340)
  File "sage/misc/lazy_import.pyx", line 217, in sage.misc.lazy_import.LazyImport._get_object (build/cythonized/sage/misc/lazy_import.c:2482)
RuntimeError: resolving lazy import FacadeSets during startup

comment:17 Changed 2 years ago by mkoeppe

  • Description modified (diff)

comment:18 Changed 2 years ago by mkoeppe

  • Cc mjo added

comment:19 Changed 2 years ago by git

  • Commit changed from 7cca294065f31775b86dd3ebae35739039a14361 to 2c2ddb73b746a26f6109e0547922ae64dfd48af5

Branch pushed to git repo; I updated commit sha1. New commits:

2c2ddb7build/pkgs/sage_objects/src/setup.py: Remove unused imports

comment:20 Changed 2 years ago by mkoeppe

  • Work issues set to Rebase on top of only #29702 and #29869

comment:21 Changed 2 years ago by mkoeppe

  • Work issues changed from Rebase on top of only #29702 and #29869 to Rebase on top of only #29702 and #29869 and perhaps #29847

comment:22 Changed 2 years ago by mkoeppe

  • Work issues changed from Rebase on top of only #29702 and #29869 and perhaps #29847 to Rebase on top of only #29702, #29701 and #29869 and perhaps #29847

comment:23 Changed 2 years ago by git

  • Commit changed from 2c2ddb73b746a26f6109e0547922ae64dfd48af5 to 719cb6df5dc3b7372bbed6a14e5b5bf348971b6c

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

5d697cesage.structure.sequence: Make import of sage.misc.latex local to the latex method
dcb7c73sage.structure.all: Import .formal_sum lazily to avoid pulling in sage.modules
30d3647sage.structure.factorization: Make import of sage.misc.misc_c.prod local to methods
24b26d8sage.structure.formal_sum, .parent_gens: Fixup: Remove imports
5b98ba3build/pkgs/sage_objects/src/tox.ini: Add comments, test more
21baff3sage.categories.crystals: Make import of sage.misc.latex local to a method
90d3f6dsage.categories: Make imports from sage.rings, .sets, .combinat, .plot, .matrix local to methods
e88ceb4Now we can import sage.categories.all
ecc9415build/pkgs/sage_objects/src/setup.py: Remove unused imports
719cb6dbuild/pkgs/sage_objects/src/setup.py: Remove code for namespace packages and distribution filtering

comment:24 Changed 2 years ago by mkoeppe

  • Description modified (diff)
  • Milestone changed from sage-9.3 to sage-9.2
  • Work issues Rebase on top of only #29702, #29701 and #29869 and perhaps #29847 deleted

comment:25 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29864, #29869 to #29702, #29701, #29869

comment:26 Changed 2 years ago by mkoeppe

  • Description modified (diff)

comment:27 Changed 2 years ago by mkoeppe

  • Description modified (diff)

comment:28 Changed 2 years ago by git

  • Commit changed from 719cb6df5dc3b7372bbed6a14e5b5bf348971b6c to b9d2a519021ec6680fe09cc5019bb43a7502ae1a

Branch pushed to git repo; I updated commit sha1. New commits:

b9d2a51build/pkgs/sage_objects/: Add/update metadata

comment:29 Changed 2 years ago by git

  • Commit changed from b9d2a519021ec6680fe09cc5019bb43a7502ae1a to 354a07ff3228947e9afff0e66d94b5961acdf3e7

Branch pushed to git repo; I updated commit sha1. New commits:

354a07fbuild/pkgs/sage_objects/src/README.md: Add doc links

comment:30 Changed 2 years ago by git

  • Commit changed from 354a07ff3228947e9afff0e66d94b5961acdf3e7 to 5ec60422cff0e536e913c8e6306de45147b2f129

Branch pushed to git repo; I updated commit sha1. New commits:

5ec6042build/pkgs/sage_objects/spkg-install: Replace by the script from sage_tdlib

comment:31 Changed 2 years ago by mkoeppe

  • Authors set to Matthias Koeppe
  • Cc nthiery added
  • Status changed from new to needs_review

comment:32 follow-up: Changed 2 years ago by mkoeppe

As part of this ticket I made a number of changes to import statements throughout sage.categories. https://git.sagemath.org/sage.git/diff/src/sage/categories/?id=5ec60422cff0e536e913c8e6306de45147b2f129&id2=e2dcdeeabb578c37bcf0361c0be3079315e9252c

Should I put them on a separate ticket to facilitate review?

comment:33 Changed 2 years ago by gh-timokau

  • Cc gh-timokau added

comment:34 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869 to #29702, #29701, #29869, #29873

comment:35 in reply to: ↑ 32 Changed 2 years ago by mkoeppe

Replying to mkoeppe:

As part of this ticket I made a number of changes to import statements throughout sage.categories. https://git.sagemath.org/sage.git/diff/src/sage/categories/?id=5ec60422cff0e536e913c8e6306de45147b2f129&id2=e2dcdeeabb578c37bcf0361c0be3079315e9252c

Should I put them on a separate ticket to facilitate review?

This is now #29873

comment:36 Changed 2 years ago by mjo

Can all of the functions/methods in sage-objects be run after a pip install, or is it only the import that works? (The existing doctests use various things from sage.all, so no one expects those to work.)

comment:37 Changed 2 years ago by mkoeppe

This is unknown. Activating a part of the testsuite that can/does work, and finding the best way to test this, is TBD. I hope some of it can be done through mocking (see #29874).

comment:38 Changed 2 years ago by mkoeppe

  • Work issues set to rebase on top of new tickets

comment:39 Changed 2 years ago by mkoeppe

  • Cc chapoton added
  • Work issues changed from rebase on top of new tickets to rebase on top of new tickets, add CI workflow

comment:40 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873 to #29702, #29701, #29869, #29873, #29892
  • Status changed from needs_review to needs_work

comment:41 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873, #29892 to #29702, #29701, #29869, #29873, #29892, #29883

comment:42 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873, #29892, #29883 to #29702, #29701, #29869, #29873, #29892, #29883, #16351

comment:43 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873, #29892, #29883, #16351 to #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880

comment:44 Changed 2 years ago by git

  • Commit changed from 5ec60422cff0e536e913c8e6306de45147b2f129 to 907c9f9533e145a3c929ce17cd4e2d36ccf294ce

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

3060dddOn the way to get sage.structure.all importing
db1c595sage.env: Do not die if DOT_SAGE is None
8b134c0sage.structure.all: Import .formal_sum lazily to avoid pulling in sage.modules
cb0b850build/pkgs/sage_objects/src/tox.ini: Add comments, test more
ad502bbNow we can import sage.categories.all
d030578build/pkgs/sage_objects/src/setup.py: Remove unused imports
2cf8312build/pkgs/sage_objects/src/setup.py: Remove code for namespace packages and distribution filtering
3790abebuild/pkgs/sage_objects/: Add/update metadata
d67d4edbuild/pkgs/sage_objects/src/README.md: Add doc links
907c9f9build/pkgs/sage_objects/spkg-install: Replace by the script from sage_tdlib

comment:45 Changed 2 years ago by git

  • Commit changed from 907c9f9533e145a3c929ce17cd4e2d36ccf294ce to dc49119682b749be39537615922ef6e6c3aec55b

Branch pushed to git repo; I updated commit sha1. New commits:

dc49119.github/workflows/tox-optional.yml: Test sage_objects

comment:47 Changed 2 years ago by mkoeppe

  • Work issues changed from rebase on top of new tickets, add CI workflow to add tox dependency, add spkg-check

comment:48 Changed 2 years ago by git

  • Commit changed from dc49119682b749be39537615922ef6e6c3aec55b to 152dac547044205fe2eb2eb72a450190eab23016

Branch pushed to git repo; I updated commit sha1. New commits:

3f5b6eaMove sage.misc.misc.coeff_repr, repr_lincomb to new module sage.misc.repr
08fedfasrc/sage/combinat/root_system/type_dual.py: Remove unused variable to fix pyflakes warning
05efc11sage.misc.repr.coeff_repr: Add doctest, adapted from sage.misc.latex.coeff_repr
34d38a5Merge branch 't/29892/move_sage_misc_misc_coeff_repr__repr_lincomb_to_new_module_sage_misc_repr' into t/29865-modularizarion-sage-objects
97199ddsage.structure.parent_gens: Remove imports
bb4c6a8sage.structure.sequence: Make import of sage.misc.latex local to the latex method
0820283sage.structure.factorization: Make import of sage.rings.integer.Integer local to methods
7991b64sage.structure.factorization: Make import of sage.misc.misc_c.prod local to methods
8ec06f0Merge branch 't/29883/sage_structure__remove_some_module_level_imports' into t/29865-modularizarion-sage-objects
152dac5build/pkgs/sage_objects/dependencies: Add more

comment:49 Changed 2 years ago by mkoeppe

https://github.com/mkoeppe/sage/runs/785565655:

  [sage_objects-9.1.rc5]     File "setup.py", line 6, in <module>
  [sage_objects-9.1.rc5]       from sage_setup.command.sage_build_cython import sage_build_cython
  [sage_objects-9.1.rc5]     File "/sage/build/pkgs/sage_objects/src/sage_setup/command/sage_build_cython.py", line 19, in <module>
  [sage_objects-9.1.rc5]       from sage_setup.library_order import library_order
  [sage_objects-9.1.rc5]     File "/sage/build/pkgs/sage_objects/src/sage_setup/library_order.py", line 54, in <module>
  [sage_objects-9.1.rc5]       m4ri_pc = pkgconfig.parse('m4ri')
  [sage_objects-9.1.rc5]     File "/sage/local/lib/python3.7/site-packages/pkgconfig/pkgconfig.py", line 248, in parse
  [sage_objects-9.1.rc5]       _raise_if_not_exists(package)
  [sage_objects-9.1.rc5]     File "/sage/local/lib/python3.7/site-packages/pkgconfig/pkgconfig.py", line 103, in _raise_if_not_exists
  [sage_objects-9.1.rc5]       raise PackageNotFoundError(package)
  [sage_objects-9.1.rc5]   pkgconfig.pkgconfig.PackageNotFoundError: m4ri not found
  [sage_objects-9.1.rc5] Full log file: /sage/logs/pkgs/sage_objects-9.1.rc5.log

comment:50 Changed 2 years ago by mkoeppe

Also, of course, installation of sage_objects breaks other things in the tests:

(build/cythonized/sage/plot/plot3d/shapes.c:12604)
  File "sage/ext/interpreters/wrapper_rdf.pxd", line 7, in init sage.plot.plot3d.parametric_surface (build/cythonized/sage/plot/plot3d/parametric_surface.c:12057)
ModuleNotFoundError: No module named 'sage.ext.interpreters.wrapper_rdf'

comment:51 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880 to #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909

comment:52 Changed 2 years ago by mkoeppe

  • Description modified (diff)

comment:53 Changed 2 years ago by git

  • Commit changed from 152dac547044205fe2eb2eb72a450190eab23016 to 12788ddfa46c838ca3146dcf6982339d4b814bb2

Branch pushed to git repo; I updated commit sha1. New commits:

4867555build/pkgs/sage_objects: Do not install, only test with tox, for now
12788ddsage.misc.misc, sage.misc.persist, sage.structure.formal_sum: Make some imports local to functions

comment:54 follow-ups: Changed 2 years ago by mkoeppe

  • Summary changed from Modularization of sagelib: Break out a separate package sage-objects to Modularization of sagelib: Break out a separate packages sage-objects, sage-categories

I'll probably make sage-objects smaller by only including sage.categories.category rather than all of sage.categories; and add a package sage-categories that is larger than the current version, including also sage.rings.ring and similar abstract classes. (On this ticket, sage-categories would just be a larger package whose MANIFEST.in is a superset of that of sage-objects. It will be done by dependencies later.)

comment:55 Changed 2 years ago by git

  • Commit changed from 12788ddfa46c838ca3146dcf6982339d4b814bb2 to b982fdca762e4248c03711ccc1300e79c97b663b

Branch pushed to git repo; I updated commit sha1. New commits:

c845235sage.categories.all: Resolve a circular import
b982fdcbuild/pkgs/sage_objects/src/tox.ini: Add test

comment:56 Changed 2 years ago by mkoeppe

  • Summary changed from Modularization of sagelib: Break out a separate packages sage-objects, sage-categories to Modularization of sagelib: Break out separate packages sage-objects, sage-categories

This will need #29916 (sage.structure: Replace import of sage.categories.all by more specific imports)

comment:57 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909 to #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909, #29916

comment:58 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909, #29916 to #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909, #29916, #29901

comment:59 Changed 2 years ago by mkoeppe

  • Work issues add tox dependency, add spkg-check deleted

comment:60 Changed 2 years ago by git

  • Commit changed from b982fdca762e4248c03711ccc1300e79c97b663b to 0a5ded72e54e6b71fef6192a7b8b3e6720664c75

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

94ec3c9Add sage --package update-latest command
cb7a291Fixup rebase
1d36a2ebuild/bin/sage-system-python: Try python first
a91ecabMerge branch 't/29890/build_bin_sage_system_python__try__python__first' into t/20104/automatic_updates_of_pip_type_packages
ba6fbb5Merge branch 't/20104/automatic_updates_of_pip_type_packages' into t/29901/_github_workflows___test_all_optional_packages__add_workflow_for_testing_all_experimental_packages
4dc7367.github/workflows: Replace explicit optional/experimental lists by using sage-package
efb14c3Suppress linebreaks
bd703e4.github/workflows/tox-optional.yml: Do not test huge packages
d6e56e8Merge branch 't/29901/_github_workflows___test_all_optional_packages__add_workflow_for_testing_all_experimental_packages' into t/29865-modularizarion-sage-objects
0a5ded7build/pkgs/sage_categories: New (lightly edited copy of sage_objects)

comment:61 Changed 2 years ago by git

  • Commit changed from 0a5ded72e54e6b71fef6192a7b8b3e6720664c75 to 77cae45309eec747baeef181a5164b2867378256

Branch pushed to git repo; I updated commit sha1. New commits:

77cae45build/pkgs/sage_objects: Only include the most basic categories

comment:62 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909, #29916, #29901 to #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909, #29916, #29901, #29922

comment:63 Changed 2 years ago by git

  • Commit changed from 77cae45309eec747baeef181a5164b2867378256 to f46acbdc001978d6202b80f66c8d546d3657a97b

Branch pushed to git repo; I updated commit sha1. New commits:

468c088build/pkgs/sage_objects: Install some scripts from bin
f46acbdbuild/pkgs/sage_objects: Add the doctester

comment:64 Changed 2 years ago by git

  • Commit changed from f46acbdc001978d6202b80f66c8d546d3657a97b to 386bf91201fe826c28eabf86ba4567b4fa8ac775

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

210c1a7sage.plot: Import sage.misc.verbose
8a5e384Fix remaining imports of *verbose*
5632556src/sage/modular/modsym/relation_matrix_pyx.pyx: Fixup import
41d42e9sage.misc.verbose: Fix imports
b3af9e2sage.misc.verbose: Fix doctest
d8abdb0Fixup various imports and uses of verbose
db40fd5Fix pyflakes warnings regarding imports
b7da100Merge branch 't/29895/move_sage_misc_misc__verbose__to_new_module_sage_misc_verbose' into t/29865-modularizarion-sage-objects
9f7f65cBreak out *.all__sage_objects from sage.all, sage.misc.all, sage.categories.all
386bf91build/pkgs/sage_objects: WIP: Run doctester

comment:65 Changed 2 years ago by git

  • Commit changed from 386bf91201fe826c28eabf86ba4567b4fa8ac775 to 224ad51811f082f5dddfa3c26785683890e8a6a7

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

ad00b40sage.doctest, src/bin/sage-runtests: Remove handling of sagenb
faef943Merge branch 't/29940/sage_doctest__remove_handling_of_sagenb' into t/29922/sage_doctest__make_imports_more_specific__make_global_environment_for_tests_customizable
67db00fsrc/bin/sage-runtests, sage.doctest: Handle option --environment
9bf6f88sage.doctest.control: Remove unused import
89988cfsage.doctest.forker.init_sage: Actually handle the optional arg
2664865sage.misc.package: Do not fail if SAGE_PKGS, SAGE_SPKG_INST do not exist
2a602dfsage.repl.display.fancy_repr: Do not fail if sage.matrix.matrix1 canno be imported
9e808daMerge branch '29922'
bdb162dsrc/sage: Move more to all__sage_objects.py
224ad51build/pkgs/sage_objects: Make doctesting work

comment:66 Changed 2 years ago by mkoeppe

Doctesting sage-objects now "works" thanks to #29922. Of course, most doctests fail because all the concrete classes that are used in the examples are not defined. And the preparsed language also requires Integer and RealNumber, which we do not have.

Last edited 2 years ago by mkoeppe (previous) (diff)

comment:67 in reply to: ↑ 54 Changed 2 years ago by mkoeppe

Replying to mkoeppe:

I'll probably make sage-objects smaller by only including sage.categories.category rather than all of sage.categories;

this is done (but I temporarily added modules to do doctesting)

and add a package sage-categories that is larger than the current version, including also sage.rings.ring and similar abstract classes.

This is probably best to do if we can include Integer as well, so that depends on #29911 (remove ntl dependency)

comment:68 Changed 2 years ago by git

  • Commit changed from 224ad51811f082f5dddfa3c26785683890e8a6a7 to 5eafbc7561c40cb5e1181019434e55e6ea94f5e6

Branch pushed to git repo; I updated commit sha1. New commits:

14396afMerge tag '9.2.beta2' into t/29701/replace_use_of_module_list_optionalextension
5eafbc7Merge branch 't/29701/replace_use_of_module_list_optionalextension' into t/29865-modularizarion-sage-objects

comment:69 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909, #29916, #29901, #29922 to #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909, #29916, #29901, #29922, #29911

comment:70 Changed 2 years ago by git

  • Commit changed from 5eafbc7561c40cb5e1181019434e55e6ea94f5e6 to 1e82b2da9ed33814a8c0166ea1e0f5db86e14b56

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

a5bc828src/sage/misc/sageinspect.py: Fixup fixup
1baaa68src/sage/misc/sageinspect.py: Remove unused import
6734969Merge branch 't/29786/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_4__sage_rings_' into t/29911/sage_rings_integer__integer_ring__remove_dependencies_on_sage_libs_ntl
5e9f00csrc/sage/rings/integer*.pyx: Remove 'libraries = ntl'
a9d4575Merge branch 't/29911/sage_rings_integer__integer_ring__remove_dependencies_on_sage_libs_ntl' into t/29865-modularizarion-sage-objects
e00aaecAdd from sage_objects MANIFEST.in
739b401Update from sage_objects tox.ini
8f78aa8sage.rings.ideal: Do not import sage.interfaces.singular at load time
bac135fbuild/pkgs/sage_categories/src/setup.cfg: Fix up
1e82b2dbuild/pkgs/sage_categories/src/MANIFEST.in: Add a bit from sage.rings

comment:71 Changed 2 years ago by git

  • Commit changed from 1e82b2da9ed33814a8c0166ea1e0f5db86e14b56 to fd810248f413dab7775b9aabd857a03c21b912c6

Branch pushed to git repo; I updated commit sha1. New commits:

50a112cbuild/pkgs/sage_categories/src/bin: New symlink
fd81024build/pkgs/sage_categories/src/MANIFEST.in: More tweaks

comment:72 Changed 2 years ago by mkoeppe

Before we can add sage.rings.integer, we need #30022 (sage.rings.integer, rational: Remove compile-time dependency on cypari2 and flint).

comment:73 Changed 2 years ago by git

  • Commit changed from fd810248f413dab7775b9aabd857a03c21b912c6 to 42716797eb2b0776f4df9ef008b32ab3c0f09fb0

Branch pushed to git repo; I updated commit sha1. New commits:

4271679Set up all__sage_categories.py

comment:74 Changed 2 years ago by git

  • Commit changed from 42716797eb2b0776f4df9ef008b32ab3c0f09fb0 to ef8b3a5a05aca0024839628ed92bcdfe0d868533

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

0915137sage.rings.integer_ring.IntegerRing_class._coerce_ZZ: Remove, replaces uses by calls to ZZ_to_mpz
8468ad1src/sage/rings/integer*.pyx: Remove 'libraries = ntl'
62e2aa9Merge tag '9.2.beta6' into t/29911/sage_rings_integer__integer_ring__remove_dependencies_on_sage_libs_ntl
0f3cd7bMerge branch 't/29911/sage_rings_integer__integer_ring__remove_dependencies_on_sage_libs_ntl' into t/29865/t/29865-modularizarion-sage-objects
d62da15sage_setup.command.sage_build: Add the extensions to the distribution
06a3609sage_setup.find.find_python_sources: Add benchmark doctest
174626cMerge branch 't/29786/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_4__sage_rings_' into t/29701/replace_use_of_module_list_optionalextension
034a7f7Merge branch 'public/move_all_code_from_src_setup_py__src_fpickle_setup_py_to_sage_setup' of git://trac.sagemath.org/sage into t/29701/replace_use_of_module_list_optionalextension
d3c608bMerge tag '9.2.beta3' into t/29701/replace_use_of_module_list_optionalextension
ef8b3a5Merge branch 't/29701/replace_use_of_module_list_optionalextension' into t/29865/t/29865-modularizarion-sage-objects

comment:75 Changed 2 years ago by mkoeppe

  • Dependencies changed from #29702, #29701, #29869, #29873, #29892, #29883, #16351, #29881, #29880, #29909, #29916, #29901, #29922, #29911 to #29701, #29911

comment:76 Changed 2 years ago by mkoeppe

  • Description modified (diff)

comment:77 Changed 2 years ago by git

  • Commit changed from ef8b3a5a05aca0024839628ed92bcdfe0d868533 to 4bdafb773e488be0b0b032747f1c3f94ff3f3c9f

Branch pushed to git repo; I updated commit sha1. New commits:

4bdafb7build/pkgs/sage_{categories,objects}/src/MANIFEST.in: Add sage/misc/superseded

comment:78 Changed 2 years ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-9.3

comment:79 Changed 2 years ago by git

  • Commit changed from 4bdafb773e488be0b0b032747f1c3f94ff3f3c9f to 41f67fb72561500d85cf5a8c35f8f55f5fe9c261

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

e40b198build/pkgs/sage_objects: Make doctesting work
1b64463Add from sage_objects MANIFEST.in
9ed18ddUpdate from sage_objects tox.ini
5627a0dsage.rings.ideal: Do not import sage.interfaces.singular at load time
8b74269build/pkgs/sage_categories/src/setup.cfg: Fix up
97fdb43build/pkgs/sage_categories/src/MANIFEST.in: Add a bit from sage.rings
7a180bbbuild/pkgs/sage_categories/src/bin: New symlink
691ebc0build/pkgs/sage_categories/src/MANIFEST.in: More tweaks
e947edfSet up all__sage_categories.py
41f67fbbuild/pkgs/sage_{categories,objects}/src/MANIFEST.in: Add sage/misc/superseded

comment:80 Changed 2 years ago by mkoeppe

  • Dependencies #29701, #29911 deleted

comment:81 Changed 2 years ago by git

  • Commit changed from 41f67fb72561500d85cf5a8c35f8f55f5fe9c261 to cd12d4c8fbd7699385102d3dd76869abaf63c4ee

Branch pushed to git repo; I updated commit sha1. New commits:

cd12d4cbuild/pkgs/sage_objects/src/requirements.txt: Update

comment:82 Changed 2 years ago by mkoeppe

  • Dependencies set to #30532

comment:83 Changed 22 months ago by git

  • Commit changed from cd12d4c8fbd7699385102d3dd76869abaf63c4ee to 6bfe8d7311a7577368cd13898ceb90eab3ba01ca

Branch pushed to git repo; I updated commit sha1. New commits:

6bfe8d7Merge tag '9.2' into t/29865/t/29865-modularizarion-sage-objects

comment:84 Changed 22 months ago by git

  • Commit changed from 6bfe8d7311a7577368cd13898ceb90eab3ba01ca to 1f6bc4cb3b4d17836cdf740d0085b0e6ca18912c

Branch pushed to git repo; I updated commit sha1. New commits:

fa7b631src/sage/doctest/control.py: Do not fail if sage.libs.arb cannot be imported
1f6bc4cbuild/pkgs/{sage_objects,sage_categories}/src/MANIFEST.in: Update for 9.2

comment:85 Changed 21 months ago by mkoeppe

  • Keywords sd111 added

comment:86 Changed 20 months ago by mkoeppe

  • Description modified (diff)
  • Work issues set to rename sage-... to sagemath-...

comment:87 Changed 20 months ago by mkoeppe

  • Summary changed from Modularization of sagelib: Break out separate packages sage-objects, sage-categories to Modularization of sagelib: Break out separate packages sagemath-objects, sagemath-categories

comment:88 Changed 19 months ago by embray

Big +1 from me. This would be very useful for #31297 and for gappy in general.

comment:89 in reply to: ↑ 54 Changed 19 months ago by embray

Replying to mkoeppe:

I'll probably make sage-objects smaller by only including sage.categories.category rather than all of sage.categories; and add a package sage-categories that is larger than the current version, including also sage.rings.ring and similar abstract classes. (On this ticket, sage-categories would just be a larger package whose MANIFEST.in is a superset of that of sage-objects. It will be done by dependencies later.)

Okay. I was going to say, it seems like sage-objects still depends too heavily on too much of sage.categories. For my purposes I would want it to be as light-weight as possible.

I think it might also be worth it to further divide SageObject, Parent, and Element into some SageObjectBase, ParentBase, and ElementBase that only provide the minimal C-level type structs necessary to bootstrap the rest of the hierarchy.

For SageObject this is trivial because its type struct is empty. For Parent and Element the Base classes need to consist primarily of any cdef attributes which define the type struct. Anything else is optional and can be bolted on in a subclass.

comment:90 Changed 19 months ago by git

  • Commit changed from 1f6bc4cb3b4d17836cdf740d0085b0e6ca18912c to 9d3df2067d950084f8e0b4703e3ff208c3a73314

Branch pushed to git repo; I updated commit sha1. New commits:

9d3df20Merge tag '9.3.beta6' into t/29865/t/29865-modularizarion-sage-objects

comment:91 Changed 19 months ago by mkoeppe

  • Milestone changed from sage-9.3 to sage-9.4

Yes, I also hope that sagemath-objects can be eventually be made even smaller. But the coercion system pulls in quite a bit of the category system (in particular via pushout)

comment:92 Changed 19 months ago by mkoeppe

  • Dependencies #30532 deleted

comment:93 Changed 19 months ago by mkoeppe

  • Description modified (diff)

comment:94 Changed 19 months ago by nthiery

This is really cool :-)

I won't alas have time to seriously follow the discussion. But if at some point it can be useful, I certainly can free myself for a live discussion.

comment:95 Changed 19 months ago by mkoeppe

Thanks, Nicolas!

comment:96 Changed 19 months ago by git

  • Commit changed from 9d3df2067d950084f8e0b4703e3ff208c3a73314 to 91559df4dfc9ad5e77c3e2edff5987cc0cd86b97

Branch pushed to git repo; I updated commit sha1. New commits:

91559dfbuild/pkgs/sage_objects/src/setup.py: Add macOS multiprocessing fix from src/setup.py

comment:97 Changed 19 months ago by git

  • Commit changed from 91559df4dfc9ad5e77c3e2edff5987cc0cd86b97 to 2cf7b04de11836a7503937bb4b508366be807a17

Branch pushed to git repo; I updated commit sha1. New commits:

2cf7b04Rename sage_objects, sage_categories to sagemath_objects, sagemath_categories, update metadata

comment:98 Changed 19 months ago by git

  • Commit changed from 2cf7b04de11836a7503937bb4b508366be807a17 to 991e547710753961e7327236a71a47b66ed5c58b

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

991e547Rename sage_objects, sage_categories to sagemath_objects, sagemath_categories, update metadata

comment:99 Changed 19 months ago by mkoeppe

  • Description modified (diff)
  • Work issues rename sage-... to sagemath-... deleted

comment:100 Changed 19 months ago by git

  • Commit changed from 991e547710753961e7327236a71a47b66ed5c58b to 86024cda44422797fcc37b8e10acdc8ce21405e1

Branch pushed to git repo; I updated commit sha1. New commits:

86024cdbuild/pkgs/sagemath_{objects,categories}/src/MANIFEST.in: Prune/exclude more

comment:101 Changed 19 months ago by git

  • Commit changed from 86024cda44422797fcc37b8e10acdc8ce21405e1 to 8366cfdf6ab32139491355ac0ec3bf8bb4cf4b62

Branch pushed to git repo; I updated commit sha1. New commits:

8366cfdbuild/pkgs/sagemath_{objects,categories}: Update README

comment:102 Changed 16 months ago by dimpase

what's the status here?

comment:103 Changed 16 months ago by mkoeppe

It works but I will want to update it according to the proposed new layout for embedded source trees (#31577)

comment:104 Changed 14 months ago by git

  • Commit changed from 8366cfdf6ab32139491355ac0ec3bf8bb4cf4b62 to a94f39e53911cfda21cad0096ff489157de6f97b

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

a1d1bb0sage.misc.misc, sage.misc.persist, sage.structure.formal_sum: Make some imports local to functions
3236920sage.categories.all: Resolve a circular import
4b33873src/sage: Move more to all__sage_objects.py
0a7f177build/pkgs/sage_objects: Make doctesting work
e1be016Set up all__sage_categories.py
1850debbuild/pkgs/sage_{categories,objects}/src/MANIFEST.in: Add sage/misc/superseded
a4a29f5build/pkgs/sage_objects/src/setup.py: Add macOS multiprocessing fix from src/setup.py
d242689Rename sage_objects, sage_categories to sagemath_objects, sagemath_categories, update metadata
6df33cdbuild/pkgs/sagemath_{objects,categories}/src/MANIFEST.in: Prune/exclude more
a94f39ebuild/pkgs/sagemath_{objects,categories}: Update README

comment:105 Changed 14 months ago by git

  • Commit changed from a94f39e53911cfda21cad0096ff489157de6f97b to e1961d8f00461a3f33b0f371f442c43af9da1646

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

9a6a4b2sage.env: Do not die if DOT_SAGE is None
206a6dcsage.misc.misc, sage.misc.persist, sage.structure.formal_sum: Make some imports local to functions
edb00b2build/pkgs/sage_objects: New
83ed0casage.structure.all: Import .formal_sum lazily to avoid pulling in sage.modules
d876c55src/sage: Move more to all__sage_objects.py
6ebf4f3build/pkgs/sage_objects: Make doctesting work
7e1d731Set up all__sage_categories.py
b7b8cf3build/pkgs/sage_{categories,objects}/src/MANIFEST.in: Add sage/misc/superseded
e1961d8Move source trees from build/pkgs/sagemath_*/src to pkgs/sagemath-*

comment:106 Changed 14 months ago by git

  • Commit changed from e1961d8f00461a3f33b0f371f442c43af9da1646 to ae1f4efd1713c65afef4e7fa5787a1ef3c89d52c

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

ae1f4efMove source trees from build/pkgs/sagemath_*/src to pkgs/sagemath-*

comment:107 Changed 14 months ago by git

  • Commit changed from ae1f4efd1713c65afef4e7fa5787a1ef3c89d52c to 8209be8b13fe5a845f0261b75e3f289c25629b9d

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

7cc764aMove source trees from build/pkgs/sagemath_*/src to pkgs/sagemath-*
4550eb6sage.env.sage_include_directories: Do not fail if numpy cannot be imported
8209be8Merge #31333

comment:108 Changed 14 months ago by mkoeppe

  • Dependencies set to #31333
  • Status changed from needs_work to needs_review

comment:109 Changed 12 months ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5

comment:110 Changed 12 months ago by git

  • Commit changed from 8209be8b13fe5a845f0261b75e3f289c25629b9d to 1e80ee1387430794bc7c48192dbadcb7b8cf63a0

Branch pushed to git repo; I updated commit sha1. New commits:

1e80ee1Merge tag '9.4.rc1' into t/29865/t/29865-modularizarion-sage-objects

comment:111 Changed 12 months ago by mkoeppe

  • Dependencies #31333 deleted

comment:112 Changed 12 months ago by git

  • Commit changed from 1e80ee1387430794bc7c48192dbadcb7b8cf63a0 to df35a7cf996af1494d32a1472bf05b2c344f0b79

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

df35a7cMerge tag '9.4.rc1' into t/29865/t/29865-modularizarion-sage-objects

comment:113 Changed 12 months ago by mkoeppe

  • Dependencies set to #29039

comment:114 Changed 12 months ago by git

  • Commit changed from df35a7cf996af1494d32a1472bf05b2c344f0b79 to 4695948cf4f19c3aa79c36f4f2d672dd15e2616f

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

3299937Makefile (pypi-sdists): Build sagemath_objects, sagemath_categories sdists
290fa2fbuild/pkgs/sagelib/src: Restore lost symlink
478ffcdMerge #32046
b011389Merge branch 't/29847/install_sage_setup_with_pip__move_sage_include_directories__cython_aliases_from_sage_env_to_sage_setup' into t/29039/pip_installable_package_sage_bootstrap
d800eeaMerge #29039
bf09386build/pkgs/sagemath_categories/spkg-src: Replace sage-python23 by python3
5ab4e7cpkgs/sagemath-{objects,categories}: Generate pyproject.toml, setup.cfg with m4; remove requirements.txt
e38644aMakefile (pypi-sdists): Add sage_setup
e6b731cMerge #29039
4695948pkgs/sagemath-objects/pyproject.toml.m4: Remove sage-conf from build-system requires

comment:115 Changed 12 months ago by git

  • Commit changed from 4695948cf4f19c3aa79c36f4f2d672dd15e2616f to 61ef2de49566237c4309402b23a9be51578ad4bb

Branch pushed to git repo; I updated commit sha1. New commits:

61ef2deMerge tag '9.4.rc2' into t/29865/t/29865-modularizarion-sage-objects

comment:116 Changed 12 months ago by mkoeppe

    File "setup.py", line 24, in <module>
      from sage.env import SAGE_VERSION
  ModuleNotFoundError: No module named 'sage'

comment:117 Changed 12 months ago by git

  • Commit changed from 61ef2de49566237c4309402b23a9be51578ad4bb to 037ed2bda3015876bf95c8dc0f8a75a4487dd538

Branch pushed to git repo; I updated commit sha1. New commits:

7542209pkgs/sagemath-{objects,categories}: Get version from VERSION.txt
6777af1pkgs/sagemath-objects/setup.py: Give sage_setup access to sage.env
037ed2bpkgs/sagemath-{objects,categories}/tox.ini: Remove use of requirements.txt

comment:118 Changed 12 months ago by mkoeppe

    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-req-build-_o5ymrt1/sage_setup/library_order.py", line 14, in <module>
      aliases = cython_aliases()
    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-req-build-_o5ymrt1/sage/env.py", line 451, in cython_aliases
      import pkgconfig
  ModuleNotFoundError: No module named 'pkgconfig'

comment:119 Changed 12 months ago by git

  • Commit changed from 037ed2bda3015876bf95c8dc0f8a75a4487dd538 to 8bdb61ed2d30eaf1bf9c27e1763cbfaef695ad42

Branch pushed to git repo; I updated commit sha1. New commits:

b2368c6pkgs/sage-setup/setup.cfg: Add pkgconfig as install_requires
bad9189Merge #29847
8bdb61eMerge #29039

comment:120 Changed 12 months ago by git

  • Commit changed from 8bdb61ed2d30eaf1bf9c27e1763cbfaef695ad42 to c66d5fc63f7bc59be9714d2e147d0cb9bb7ed3a1

Branch pushed to git repo; I updated commit sha1. New commits:

c66d5fcpkgs/sagemath-{objects,categories}/MANIFEST.in: include VERSION.txt, remove vendoring of sage_setup

comment:121 Changed 12 months ago by git

  • Commit changed from c66d5fc63f7bc59be9714d2e147d0cb9bb7ed3a1 to 20f29be15c76fc47b618ced7b54738acc16e75b7

Branch pushed to git repo; I updated commit sha1. New commits:

20f29bepkgs/sagemath-{objects,categories}/sage_setup: Restore symlink - needed for the tox sdist phase

comment:122 Changed 12 months ago by mkoeppe

    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-build-env-f9779kgd/overlay/lib/python3.9/site-packages/sage_setup/command/sage_build_cython.py", line 208, in run
      from ..library_order import library_order
    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-build-env-f9779kgd/overlay/lib/python3.9/site-packages/sage_setup/library_order.py", line 14, in <module>
      aliases = cython_aliases()
    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-req-build-8_9lsvo_/sage/env.py", line 472, in cython_aliases
      aliases[var + "CFLAGS"] = pkgconfig.cflags(lib).split()
    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-build-env-f9779kgd/overlay/lib/python3.9/site-packages/pkgconfig/pkgconfig.py", line 144, in cflags
      _raise_if_not_exists(package)
    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-build-env-f9779kgd/overlay/lib/python3.9/site-packages/pkgconfig/pkgconfig.py", line 103, in _raise_if_not_exists
      raise PackageNotFoundError(package)
  pkgconfig.pkgconfig.PackageNotFoundError: fflas-ffpack not found

comment:123 Changed 12 months ago by mkoeppe

  • Dependencies changed from #29039 to #29039, #32373

comment:124 Changed 12 months ago by git

  • Commit changed from 20f29be15c76fc47b618ced7b54738acc16e75b7 to 796ef717d58d9f404ec5b6debfa7c16c951e5353

Branch pushed to git repo; I updated commit sha1. New commits:

4aff8a4sage_setup.library_order: Skip libraries that were not detected
796ef71Merge #32373

comment:125 Changed 12 months ago by mkoeppe

More of the same:

    File "/usr/local/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-req-build-z0x28qby/sage_setup/command/sage_build_cython.py", line 225, in run
      aliases=cython_aliases(),
    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-req-build-z0x28qby/sage/env.py", line 472, in cython_aliases
      aliases[var + "CFLAGS"] = pkgconfig.cflags(lib).split()
    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-build-env-ti7oa28i/overlay/lib/python3.9/site-packages/pkgconfig/pkgconfig.py", line 144, in cflags
      _raise_if_not_exists(package)
    File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-build-env-ti7oa28i/overlay/lib/python3.9/site-packages/pkgconfig/pkgconfig.py", line 103, in _raise_if_not_exists
      raise PackageNotFoundError(package)
  pkgconfig.pkgconfig.PackageNotFoundError: fflas-ffpack not found

comment:126 Changed 12 months ago by git

  • Commit changed from 796ef717d58d9f404ec5b6debfa7c16c951e5353 to 4af99dd81fd5d4adc1c33bed8aacbdaef9db6d50

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

676111fsage_setup.library_order: Take module list from new variables sage.env.default_{required,optional}_modules
e5ae08cMerge #32373
4b5cee7Revert "pkgs/sagemath-{objects,categories}/tox.ini: Remove use of requirements.txt"
5bff677pkgs/sagemath-{objects,categories}: Generate requirements.txt from ...m4 (for tox)
6f512efpkgs/sagemath-objects/setup.py: Do not require any pkgconfig modules
7f84f82pkgs/sagemath-objects/pyproject.toml.m4: Add gmpy2, cysignals
e3ec108sage.misc.misc.cputime: Make import from sage.interfaces.quit local to this function
d145883pkgs/sagemath-objects/tox.ini: Ignore doctest failures
bc767b1pkgs/sagemath-categories/MANIFEST.in: Generate from ....m4
4af99ddpkgs/sagemath-categories/tox.ini: Ignore doctest failures

comment:127 Changed 12 months ago by git

  • Commit changed from 4af99dd81fd5d4adc1c33bed8aacbdaef9db6d50 to bce252f7778504b6acb0a9f0fc5018e60459a98a

Branch pushed to git repo; I updated commit sha1. New commits:

bce252fMerge tag '9.4' into t/29865/t/29865-modularizarion-sage-objects

comment:128 Changed 12 months ago by git

  • Commit changed from bce252f7778504b6acb0a9f0fc5018e60459a98a to dda451f2ab192172405c70c09265ddae45515912

Branch pushed to git repo; I updated commit sha1. New commits:

dda451fRename all__sage_objects.py, all__sage_categories.py to all__sagemath_objects.py, all__sagemath_categories.py

comment:129 Changed 11 months ago by git

  • Commit changed from dda451f2ab192172405c70c09265ddae45515912 to 5bb6e0d523a89ca678fc3870d6a5b8a638039b5a

Branch pushed to git repo; I updated commit sha1. New commits:

5bb6e0dMerge tag '9.5.beta1' into t/29865/t/29865-modularizarion-sage-objects

comment:130 Changed 11 months ago by git

  • Commit changed from 5bb6e0d523a89ca678fc3870d6a5b8a638039b5a to 5cf5e4d8ad7c12bdb7fe5206bbf166a5372b3352

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

a23b1e1pkgs/sage-conf_pypi/MANIFEST.in: Exclude build artifacts
2f5be2dconfigure.ac, build/pkgs/python3/spkg-configure.m4: New default --with-sage-venv=auto
f700640configure.ac: In config.status, create convenience symlinks prefix, venv
b4a3845m4/sage_spkg_collect.m4: If we install python3 spkg, install it in SAGE_VENV
12cbbdaconfigure.ac: Keep old behavior of SAGE_VENV in incremental builds
117fe3abuild/make/Makefile.in (...-clean): Do not fail trying to uninstall if SAGE_VENV has not been created yet
ce1c344Merge #32442
e71b8a6pkgs/sage-conf_pypi/setup.py: Key SAGE_ROOT only to Sage version and architecture
9dcc189pkgs/sage-conf_pypi/setup.py: Use --with-sage-venv
5cf5e4dMerge #29039

comment:131 Changed 11 months ago by git

  • Commit changed from 5cf5e4d8ad7c12bdb7fe5206bbf166a5372b3352 to 96bcf030be1a22afb901cd1d4412060a38854faf

Branch pushed to git repo; I updated commit sha1. New commits:

d626aa8build/pkgs/pplpy/dependencies: Depend on sphinx only if SAGE_SPKG_INSTALL_DOCS!=no
82ce539configure.ac: If --disable-notebook and --disable-sagelib, do not build zeromq etc.
02505capkgs/sage-conf_pypi/MANIFEST.in: Update from #31396
aeca1a0Makefile (pypi-sdists): Add sage_setup
cd3dce9pkgs/sage-conf_pypi/setup.py: Update directory of configured sage_conf.py
c695921pkgs/sage-conf/sage_conf.py.in (SAGE_SPKG_WHEELS): Update so it works if SAGE_VENV != SAGE_LOCAL
96bcf03Merge #29039

comment:132 Changed 10 months ago by git

  • Commit changed from 96bcf030be1a22afb901cd1d4412060a38854faf to 9600217ce2fb166fbac5be915d72562439d3591e

Branch pushed to git repo; I updated commit sha1. New commits:

e9fc48dMerge tag '9.5.beta3' into t/29865/t/29865-modularizarion-sage-objects
f79f0f8pkgs/sagemath-objects/setup.py: On sdist or egg_info, do not run find_python_sources
9600217pkgs/sagemath-objects/tox.ini: passenv SAGE_NUM_THREADS*

comment:133 Changed 10 months ago by git

  • Commit changed from 9600217ce2fb166fbac5be915d72562439d3591e to 6bd807b4cce1a52faf5535d83a34baa0c0a9083c

Branch pushed to git repo; I updated commit sha1. New commits:

6bd807bpkgs/sagemath-categories/tox.ini: passenv SAGE_NUM_THREADS*

comment:134 Changed 10 months ago by mkoeppe

  • Cc gh-tobiasdiez added

comment:135 Changed 10 months ago by mkoeppe

  • Dependencies changed from #29039, #32373 to #29039

comment:136 Changed 10 months ago by mkoeppe

  • Description modified (diff)

comment:137 Changed 10 months ago by git

  • Commit changed from 6bd807b4cce1a52faf5535d83a34baa0c0a9083c to e068bd9d4e7d761500543f46dc3339250eed9b75

Branch pushed to git repo; I updated commit sha1. New commits:

cebcda3Merge tag '9.5.beta4' into t/29039/pip_installable_package_sage_bootstrap
0026892Merge tag '9.5.beta5' into t/29039/pip_installable_package_sage_bootstrap
e068bd9Merge #29039

comment:138 Changed 9 months ago by git

  • Commit changed from e068bd9d4e7d761500543f46dc3339250eed9b75 to 6187f93257e4ef8d0e63fcf5a53f72829b465242

Branch pushed to git repo; I updated commit sha1. New commits:

6187f93Merge tag '9.5.beta6' into t/29865/t/29865-modularizarion-sage-objects

comment:139 Changed 9 months ago by git

  • Commit changed from 6187f93257e4ef8d0e63fcf5a53f72829b465242 to 743e00403f52bbda533fa5a066bbe8f76261bee4

Branch pushed to git repo; I updated commit sha1. New commits:

a6cc585build/pkgs/sage_setup/install-requires.txt: Fix version
743e004pkgs/sagemath-objects/MANIFEST.in: Add sage.misc.namespace_package

comment:140 Changed 9 months ago by mkoeppe

  • Description modified (diff)

comment:141 Changed 9 months ago by git

  • Commit changed from 743e00403f52bbda533fa5a066bbe8f76261bee4 to f3ee49ba9c93a95b17ef252e2842e1709808f66d

Branch pushed to git repo; I updated commit sha1. New commits:

a72ee3bsrc/sage/all__sagemath_objects.py: Add some more imports
f3ee49bsrc/sage/all__sagemath_objects.py: Add definitions of Integer, RealNumber for doctesting

comment:142 Changed 9 months ago by git

  • Commit changed from f3ee49ba9c93a95b17ef252e2842e1709808f66d to 9ef0567f0dcbbe8b7143f1571ae57f693e6a90fd

Branch pushed to git repo; I updated commit sha1. New commits:

2a4a323Merge tag '9.5.beta7' into t/29039/pip_installable_package_sage_bootstrap
9ef0567Merge #29039

comment:143 Changed 9 months ago by mkoeppe

  • Cc klee added

Let's get this in please

comment:144 Changed 9 months ago by mkoeppe

  • Description modified (diff)

comment:145 follow-ups: Changed 9 months ago by klee

This command

./bootstrap && ./sage -sh -c '(cd build/pkgs/sagemath_objects/src && tox -v -v -e py39)'

results in lots of doctest failures. This is expected. Right?

Then this command

pkgs/sagemath-objects/.tox/py39/bin/sage

should run the sage with only modules installed by sagemath-objects. But then still with this sage, I get

sage: GF(9)
Finite Field in z2 of size 3^2

Is this normal? What code would fail?

comment:146 in reply to: ↑ 145 Changed 9 months ago by mkoeppe

Replying to klee:

This command

./bootstrap && ./sage -sh -c '(cd build/pkgs/sagemath_objects/src && tox -v -v -e py39)'

results in lots of doctest failures. This is expected. Right?

Yes.

comment:147 in reply to: ↑ 145 ; follow-up: Changed 9 months ago by mkoeppe

Replying to klee:

Then this command

pkgs/sagemath-objects/.tox/py39/bin/sage

should run the sage with only modules installed by sagemath-objects. But then still with this sage, I get

sage: GF(9)
Finite Field in z2 of size 3^2

Is this normal? What code would fail?

There was something wrong with which helper scripts are shipped as part of sagemath-objects. I am working on a fix

comment:148 Changed 9 months ago by klee

After testing with the two experimental distributions, I could confirm that there are no other doctest failures with the main sage than it already had on develop branch. Hence the two experimental distributions are at least safe to have.

Anyway the failed doctests are

sage -t --warn-long 70.5 --random-seed=328015936148055540834358934757959169042 src/sage/tests/cmdline.py
**********************************************************************
File "src/sage/tests/cmdline.py", line 325, in sage.tests.cmdline.test_executable
Failed example:
    ret
Expected:
    0
Got:
    4
**********************************************************************
File "src/sage/tests/cmdline.py", line 330, in sage.tests.cmdline.test_executable
Failed example:
    ret
Expected:
    0
Got:
    2

comment:149 in reply to: ↑ 147 Changed 9 months ago by mkoeppe

Replying to mkoeppe:

There was something wrong with which helper scripts are shipped as part of sagemath-objects. I am working on a fix

Opened #32933 as part of the fix

comment:150 Changed 9 months ago by mkoeppe

  • Dependencies changed from #29039 to #29039, #32933
  • Status changed from needs_review to needs_work

comment:151 Changed 9 months ago by git

  • Commit changed from 9ef0567f0dcbbe8b7143f1571ae57f693e6a90fd to 00024e6f775ee0f6e50afb9ccf432fbdbcfd6787

Branch pushed to git repo; I updated commit sha1. New commits:

e0399a1pkgs/sagemath-objects: Install a fixed set of scripts, not all of src/bin
7519048src/bin/sage[-env]: Put SAGE_ROOT/src/bin in front of path only if run out of this directory
00024e6Merge #32933

comment:152 Changed 9 months ago by mkoeppe

  • Status changed from needs_work to needs_review

It now correctly fails:

$ pkgs/sagemath-objects/.tox/py39/bin/sage -c 'GF(9)'
Traceback (most recent call last):
  File "/Users/mkoeppe/s/sage/sage-rebasing/pkgs/sagemath-objects/.tox/py39/bin/sage-eval", line 4, in <module>
    from sage.all import *
ModuleNotFoundError: No module named 'sage.all'

comment:153 Changed 9 months ago by git

  • Commit changed from 00024e6f775ee0f6e50afb9ccf432fbdbcfd6787 to bfc953b1b4d1049e3dfe052ffc337be8c8d850fa

Branch pushed to git repo; I updated commit sha1. New commits:

bfc953bsrc/sage/doctest/reporting.py: Indicate --environment if not default

comment:154 Changed 9 months ago by git

  • Commit changed from bfc953b1b4d1049e3dfe052ffc337be8c8d850fa to 36d6b097ab164189a244eb8169d2b8efb913972a

Branch pushed to git repo; I updated commit sha1. New commits:

36d6b09pkgs/sagemath-categories/setup.cfg.m4: Add scripts

comment:155 Changed 9 months ago by klee

I guess this is normal

$ pkgs/sagemath-objects/.tox/py39/bin/sage
Traceback (most recent call last):
  File "/Users/kwankyu/GitHub/sage-dev/pkgs/sagemath-objects/.tox/py39/bin/sage-ipython", line 9, in <module>
    from sage.misc.banner import banner
ModuleNotFoundError: No module named 'sage.misc.banner'

but this works well

$ pkgs/sagemath-objects/.tox/py39/bin/python3 
Python 3.9.7 (default, Oct 13 2021, 06:45:31) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sage.structure.sage_object import SageObject
>>> SageObject()
<sage.structure.sage_object.SageObject object at 0x10c977f60>
>>> a = SageObject()
>>> a.category()
Category of objects
>>> a
<sage.structure.sage_object.SageObject object at 0x10c977f50>
>>> a.dumps()
b'x\x9ck`J.NLO\xd5+.)*M.)-\x02\xb2\x80\xdc\xf8\xfc\xa4\xac\xd4\xe4\x12\xae` \xdb\x1f\xc2,d\xd0l,d\xd4\x03\x00\xb7P\x10\xef'
>>> a.parent()
<class 'sage.structure.sage_object.SageObject'>

comment:156 Changed 9 months ago by klee

Likewise this works well

$ pkgs/sagemath-categories/.tox/py39/bin/python3
Python 3.9.7 (default, Oct 13 2021, 06:45:31) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from sage.categories.category import Category
>>> from sage.categories.algebras import Algebras
>>> Algebras(QQ)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'QQ' is not defined
>>> Algebras(ZZ)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'ZZ' is not defined
>>> from sage.categories.groups import Groups
>>> Groups()
Category of groups
>>> c = Groups()
>>> c.example()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/kwankyu/GitHub/sage-dev/pkgs/sagemath-categories/.tox/py39/lib/python3.9/site-packages/sage/categories/groups.py", line 48, in example
    from sage.rings.rational_field import QQ
ModuleNotFoundError: No module named 'sage.rings.rational_field'
>>> from sage.rings.infinity import infinity    
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'sage.rings.infinity'
>>> from sage.rings.integer_ring import ZZ     
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'sage.rings.integer_ring'
>>> from sage.categories.rings import Rings
>>> r = Rings()
>>> r
Category of rings
>>> r.example()
NotImplemented

It seems that there is not much to do with just categories with no constructible objects. This is of course expected.

comment:157 Changed 9 months ago by mkoeppe

In #32432 I am adding a few more things to sagemath-categories so that some runtime testing becomes possible

comment:158 follow-up: Changed 9 months ago by klee

After I started to experiment with the branch of this ticket, I get

$ sage -tp --all
...
...
sage -t --warn-long 67.3 --random-seed=176797787270485350725074395342233660735 src/doc/ja/a_tour_of_sage/conf.py
    [0 tests, 0.00 s]
----------------------------------------------------------------------
sage -t --warn-long 67.3 --random-seed=176797787270485350725074395342233660735 src/sage/tests/cmdline.py  # 2 doctests failed
----------------------------------------------------------------------
Total time for all tests: 1819.6 seconds
    cpu time: 11313.2 seconds
    cumulative wall time: 13913.3 seconds
============================================================================ test session starts ============================================================================
platform darwin -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
rootdir: /Users/kwankyu/GitHub/sage-dev/src, configfile: tox.ini
collected 10 items / 1 error / 9 selected                                                                                                                                   

================================================================================== ERRORS ===================================================================================
____________________________________________________________ ERROR collecting sage/structure/sage_object_test.py ____________________________________________________________
ImportError while importing test module '/Users/kwankyu/GitHub/sage-dev/src/sage/structure/sage_object_test.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
src/sage/structure/sage_object_test.py:3: in <module>
    from .sage_object import SageObject
E   ImportError: attempted relative import with no known parent package
========================================================================== short test summary info ==========================================================================
ERROR src/sage/structure/sage_object_test.py
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
============================================================================= 1 error in 5.75s ==============================================================================

I have the doctest failures of src/sage/tests/cmdline.py on develop branch. So they seem not related with the present branch.

Then what are these messages starting with ===.... test session starts ...===, which shows some failure?

comment:159 in reply to: ↑ 158 ; follow-up: Changed 9 months ago by mkoeppe

Replying to klee:

Then what are these messages starting with ===.... test session starts ...===, which shows some failure?

At the end of sage -t, pytest is run; this is from #31003 and follow-up tickets. Tickets #32892 and #31924 are for fixing some of these unsightly messages

comment:160 in reply to: ↑ 159 Changed 9 months ago by klee

Would you explain this line from tox.ini?

[testenv]
deps = -rrequirements.txt 

What does -r do?

comment:161 Changed 9 months ago by mkoeppe

It instructs pip to install the packages listed in the file requirements.txt

comment:162 Changed 9 months ago by klee

I tested with the branch of this ticket, perhaps from a user point of view. I finds it works well, as advertised in the description. So I am positive with the branch.

But I am not capable of reading the code, most of which looks to me cryptic, to give any useful comments. So I leave this task to other reviewer well versed with sage build system and python build tools.

However, if no one gives more comments, then I will set positive review once we have a green bot, as this ticket needs to be closed before sage 9.5 release.

comment:163 Changed 9 months ago by klee

  • Reviewers set to Kwankyu Lee

comment:164 Changed 9 months ago by mkoeppe

Thank you!

comment:165 Changed 9 months ago by slelievre

Files in build/pkgs/sagemath_categories, build/pkgs/sagemath_objects, pkgs/sage-conf_pypi, pkgs/sagemath-categories, pkgs/sagemath-objects, could ideally end with a newline, even when they only have one line.

comment:166 Changed 9 months ago by mkoeppe

The files for which the diff shows this:

diff --git a/build/pkgs/sagemath_categories/SPKG.rst b/build/pkgs/sagemath_categories/SPKG.rst
new file mode 120000
index 00000000..b4545b4
--- /dev/null
+++ b/build/pkgs/sagemath_categories/SPKG.rst
@@ -0,0 +1 @@
+src/README.rst
\ No newline at end of file

are actually symbolic links, and adding a newline is not an option.

comment:167 Changed 9 months ago by slelievre

Never mind then! Sorry for the noise.

comment:168 Changed 9 months ago by klee

  • Status changed from needs_review to positive_review

Okay. Let's get this in.

comment:169 Changed 9 months ago by mkoeppe

Thanks!

comment:170 Changed 7 months ago by klee

  • Cc vbraun added

Why this is not yet merged?

comment:171 Changed 7 months ago by mkoeppe

  • Milestone changed from sage-9.5 to sage-9.6

comment:172 Changed 6 months ago by vbraun

  • Branch changed from u/mkoeppe/t/29865-modularizarion-sage-objects to 36d6b097ab164189a244eb8169d2b8efb913972a
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.