Opened 2 years ago
Closed 6 months ago
#29865 closed enhancement (fixed)
Modularization of sagelib: Break out separate packages sagemathobjects, sagemathcategories
Reported by:  mkoeppe  Owned by:  

Priority:  major  Milestone:  sage9.6 
Component:  refactoring  Keywords:  sd111 
Cc:  vdelecroix, tscrim, mjo, nthiery, ghtimokau, chapoton, ghtobiasdiez, 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: 
Description (last modified by )
This ticket creates two experimental packages https://pypi.org/project/sagemathobjects/ and https://pypi.org/project/sagemathcategories/, outlined in Metaticket #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/spkgsrc ./sage sh build/pkgs/sagemath_categories/spkgsrc
This creates a pipinstallable source distribution sagemathobjectsVERSION.tar.gz
(or sagemathcategoriesVERSION.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" pipinstallable packages.
The goal is for all modules of sagemathobjects and sagemathcategories 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)'
sagemathcategories is intended to have sagemathobjects as a prerequisite. However, currently, sagemathcategories is an independent distribution that provides a superset of the modules of sagemathobjects.
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 followup tickets.
Change History (172)
comment:1 Changed 2 years ago by
 Milestone changed from sage9.2 to sage9.3
comment:2 Changed 2 years ago by
 Description modified (diff)
comment:3 Changed 2 years ago by
 Description modified (diff)
comment:4 Changed 2 years ago by
 Branch set to u/mkoeppe/t/29865modularizarionsageobjects
comment:5 Changed 2 years ago by
 Commit set to dd3dc152460849430462a5c07be6c7683b72d7da
comment:6 Changed 2 years ago by
 Commit changed from dd3dc152460849430462a5c07be6c7683b72d7da to b72264efcbba9fe1e5015cff13da4c3d2fdb5ca1
comment:7 Changed 2 years ago by
 Cc vdelecroix added
 Description modified (diff)
comment:8 Changed 2 years ago by
 Commit changed from b72264efcbba9fe1e5015cff13da4c3d2fdb5ca1 to 23aaec1f4c404f039ae8da37b693c4032c120275
Branch pushed to git repo; I updated commit sha1. New commits:
23aaec1  Version with sage.structure, sage.categories that builds OK; uses gmpy2

comment:9 Changed 2 years ago by
 Dependencies changed from #29864 to #29864, #29869
comment:10 Changed 2 years ago by
 Commit changed from 23aaec1f4c404f039ae8da37b693c4032c120275 to 29e30a47cc14bacd62ea4ad17976cbe580a403c2
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
cbc5555  sage.misc.misc, sage.misc.persist, sage.structure.formal_sum: Make some imports local to functions

0b7e11f  On the way to get sage.structure.all importing

19f86dc  sage.env: Do not die if DOT_SAGE is None

a795d56  sage.structure.factorization: Make import of sage.rings.integer.Integer local to methods

0ce9916  sage.structure.sequence: Make import of sage.misc.latex local to the latex method

fa22e19  sage.structure.all: Import .formal_sum lazily to avoid pulling in sage.modules

acf1ba3  sage.structure.factorization: Make import of sage.misc.misc_c.prod local to methods

14b1e55  sage.structure.formal_sum, .parent_gens: Fixup: Remove imports

a5453bf  Fixup: Add src/sage/misc/call.py

29e30a4  Merge branch 't/29869/move_attrcall_and_friends_from_sage_misc_misc_to_new_module_sage_misc_call' into t/29865modularizarionsageobjects

comment:11 Changed 2 years ago by
import sage.structure.all
succeeds now
comment:12 Changed 2 years ago by
 Commit changed from 29e30a47cc14bacd62ea4ad17976cbe580a403c2 to c4a68e38994ad6bf72794470f4364bad8c21f553
Branch pushed to git repo; I updated commit sha1. New commits:
c4a68e3  build/pkgs/sage_objects/src/tox.ini: Add comments, test more

comment:13 Changed 2 years ago by
 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/sagerebasing/worktreealgebraic2018spring/build/pkgs/sage_objects/src/.tox/python/lib/python3.7/sitepackages/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
 Commit changed from c4a68e38994ad6bf72794470f4364bad8c21f553 to 7cca294065f31775b86dd3ebae35739039a14361
comment:15 Changed 2 years ago by
$ 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
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/sagerebasing/worktreealgebraic2018spring/build/pkgs/sage_objects/src/.tox/python/lib/python3.7/sitepackages/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/sagerebasing/worktreealgebraic2018spring/build/pkgs/sage_objects/src/.tox/python/lib/python3.7/sitepackages/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/sagerebasing/worktreealgebraic2018spring/build/pkgs/sage_objects/src/.tox/python/lib/python3.7/sitepackages/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
 Description modified (diff)
comment:18 Changed 2 years ago by
 Cc mjo added
comment:19 Changed 2 years ago by
 Commit changed from 7cca294065f31775b86dd3ebae35739039a14361 to 2c2ddb73b746a26f6109e0547922ae64dfd48af5
Branch pushed to git repo; I updated commit sha1. New commits:
2c2ddb7  build/pkgs/sage_objects/src/setup.py: Remove unused imports

comment:20 Changed 2 years ago by
 Work issues set to Rebase on top of only #29702 and #29869
comment:21 Changed 2 years ago by
 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
 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
 Commit changed from 2c2ddb73b746a26f6109e0547922ae64dfd48af5 to 719cb6df5dc3b7372bbed6a14e5b5bf348971b6c
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
5d697ce  sage.structure.sequence: Make import of sage.misc.latex local to the latex method

dcb7c73  sage.structure.all: Import .formal_sum lazily to avoid pulling in sage.modules

30d3647  sage.structure.factorization: Make import of sage.misc.misc_c.prod local to methods

24b26d8  sage.structure.formal_sum, .parent_gens: Fixup: Remove imports

5b98ba3  build/pkgs/sage_objects/src/tox.ini: Add comments, test more

21baff3  sage.categories.crystals: Make import of sage.misc.latex local to a method

90d3f6d  sage.categories: Make imports from sage.rings, .sets, .combinat, .plot, .matrix local to methods

e88ceb4  Now we can import sage.categories.all

ecc9415  build/pkgs/sage_objects/src/setup.py: Remove unused imports

719cb6d  build/pkgs/sage_objects/src/setup.py: Remove code for namespace packages and distribution filtering

comment:24 Changed 2 years ago by
 Description modified (diff)
 Milestone changed from sage9.3 to sage9.2
 Work issues Rebase on top of only #29702, #29701 and #29869 and perhaps #29847 deleted
comment:25 Changed 2 years ago by
 Dependencies changed from #29864, #29869 to #29702, #29701, #29869
comment:26 Changed 2 years ago by
 Description modified (diff)
comment:27 Changed 2 years ago by
 Description modified (diff)
comment:28 Changed 2 years ago by
 Commit changed from 719cb6df5dc3b7372bbed6a14e5b5bf348971b6c to b9d2a519021ec6680fe09cc5019bb43a7502ae1a
Branch pushed to git repo; I updated commit sha1. New commits:
b9d2a51  build/pkgs/sage_objects/: Add/update metadata

comment:29 Changed 2 years ago by
 Commit changed from b9d2a519021ec6680fe09cc5019bb43a7502ae1a to 354a07ff3228947e9afff0e66d94b5961acdf3e7
Branch pushed to git repo; I updated commit sha1. New commits:
354a07f  build/pkgs/sage_objects/src/README.md: Add doc links

comment:30 Changed 2 years ago by
 Commit changed from 354a07ff3228947e9afff0e66d94b5961acdf3e7 to 5ec60422cff0e536e913c8e6306de45147b2f129
Branch pushed to git repo; I updated commit sha1. New commits:
5ec6042  build/pkgs/sage_objects/spkginstall: Replace by the script from sage_tdlib

comment:31 Changed 2 years ago by
 Cc nthiery added
 Status changed from new to needs_review
comment:32 followup: ↓ 35 Changed 2 years ago by
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
 Cc ghtimokau added
comment:34 Changed 2 years ago by
 Dependencies changed from #29702, #29701, #29869 to #29702, #29701, #29869, #29873
comment:35 in reply to: ↑ 32 Changed 2 years ago by
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=e2dcdeeabb578c37bcf0361c0be3079315e9252cShould I put them on a separate ticket to facilitate review?
This is now #29873
comment:36 Changed 2 years ago by
Can all of the functions/methods in sageobjects 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
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
 Work issues set to rebase on top of new tickets
comment:39 Changed 2 years ago by
 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
 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
 Dependencies changed from #29702, #29701, #29869, #29873, #29892 to #29702, #29701, #29869, #29873, #29892, #29883
comment:42 Changed 2 years ago by
 Dependencies changed from #29702, #29701, #29869, #29873, #29892, #29883 to #29702, #29701, #29869, #29873, #29892, #29883, #16351
comment:43 Changed 2 years ago by
 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
 Commit changed from 5ec60422cff0e536e913c8e6306de45147b2f129 to 907c9f9533e145a3c929ce17cd4e2d36ccf294ce
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
3060ddd  On the way to get sage.structure.all importing

db1c595  sage.env: Do not die if DOT_SAGE is None

8b134c0  sage.structure.all: Import .formal_sum lazily to avoid pulling in sage.modules

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

ad502bb  Now we can import sage.categories.all

d030578  build/pkgs/sage_objects/src/setup.py: Remove unused imports

2cf8312  build/pkgs/sage_objects/src/setup.py: Remove code for namespace packages and distribution filtering

3790abe  build/pkgs/sage_objects/: Add/update metadata

d67d4ed  build/pkgs/sage_objects/src/README.md: Add doc links

907c9f9  build/pkgs/sage_objects/spkginstall: Replace by the script from sage_tdlib

comment:45 Changed 2 years ago by
 Commit changed from 907c9f9533e145a3c929ce17cd4e2d36ccf294ce to dc49119682b749be39537615922ef6e6c3aec55b
Branch pushed to git repo; I updated commit sha1. New commits:
dc49119  .github/workflows/toxoptional.yml: Test sage_objects

comment:46 Changed 2 years ago by
comment:47 Changed 2 years ago by
 Work issues changed from rebase on top of new tickets, add CI workflow to add tox dependency, add spkgcheck
comment:48 Changed 2 years ago by
 Commit changed from dc49119682b749be39537615922ef6e6c3aec55b to 152dac547044205fe2eb2eb72a450190eab23016
Branch pushed to git repo; I updated commit sha1. New commits:
3f5b6ea  Move sage.misc.misc.coeff_repr, repr_lincomb to new module sage.misc.repr

08fedfa  src/sage/combinat/root_system/type_dual.py: Remove unused variable to fix pyflakes warning

05efc11  sage.misc.repr.coeff_repr: Add doctest, adapted from sage.misc.latex.coeff_repr

34d38a5  Merge branch 't/29892/move_sage_misc_misc_coeff_repr__repr_lincomb_to_new_module_sage_misc_repr' into t/29865modularizarionsageobjects

97199dd  sage.structure.parent_gens: Remove imports

bb4c6a8  sage.structure.sequence: Make import of sage.misc.latex local to the latex method

0820283  sage.structure.factorization: Make import of sage.rings.integer.Integer local to methods

7991b64  sage.structure.factorization: Make import of sage.misc.misc_c.prod local to methods

8ec06f0  Merge branch 't/29883/sage_structure__remove_some_module_level_imports' into t/29865modularizarionsageobjects

152dac5  build/pkgs/sage_objects/dependencies: Add more

comment:49 Changed 2 years ago by
https://github.com/mkoeppe/sage/runs/785565655:
[sage_objects9.1.rc5] File "setup.py", line 6, in <module> [sage_objects9.1.rc5] from sage_setup.command.sage_build_cython import sage_build_cython [sage_objects9.1.rc5] File "/sage/build/pkgs/sage_objects/src/sage_setup/command/sage_build_cython.py", line 19, in <module> [sage_objects9.1.rc5] from sage_setup.library_order import library_order [sage_objects9.1.rc5] File "/sage/build/pkgs/sage_objects/src/sage_setup/library_order.py", line 54, in <module> [sage_objects9.1.rc5] m4ri_pc = pkgconfig.parse('m4ri') [sage_objects9.1.rc5] File "/sage/local/lib/python3.7/sitepackages/pkgconfig/pkgconfig.py", line 248, in parse [sage_objects9.1.rc5] _raise_if_not_exists(package) [sage_objects9.1.rc5] File "/sage/local/lib/python3.7/sitepackages/pkgconfig/pkgconfig.py", line 103, in _raise_if_not_exists [sage_objects9.1.rc5] raise PackageNotFoundError(package) [sage_objects9.1.rc5] pkgconfig.pkgconfig.PackageNotFoundError: m4ri not found [sage_objects9.1.rc5] Full log file: /sage/logs/pkgs/sage_objects9.1.rc5.log
comment:50 Changed 2 years ago by
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
 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
 Description modified (diff)
comment:53 Changed 2 years ago by
 Commit changed from 152dac547044205fe2eb2eb72a450190eab23016 to 12788ddfa46c838ca3146dcf6982339d4b814bb2
comment:54 followups: ↓ 67 ↓ 89 Changed 2 years ago by
 Summary changed from Modularization of sagelib: Break out a separate package sageobjects to Modularization of sagelib: Break out a separate packages sageobjects, sagecategories
I'll probably make sageobjects
smaller by only including sage.categories.category
rather than all of sage.categories
;
and add a package sagecategories
that is larger than the current version, including also sage.rings.ring
and similar abstract classes.
(On this ticket, sagecategories
would just be a larger package whose MANIFEST.in is a superset of that of sageobjects
. It will be done by dependencies later.)
comment:55 Changed 2 years ago by
 Commit changed from 12788ddfa46c838ca3146dcf6982339d4b814bb2 to b982fdca762e4248c03711ccc1300e79c97b663b
comment:56 Changed 2 years ago by
 Summary changed from Modularization of sagelib: Break out a separate packages sageobjects, sagecategories to Modularization of sagelib: Break out separate packages sageobjects, sagecategories
This will need #29916 (sage.structure
: Replace import of sage.categories.all
by more specific imports)
comment:57 Changed 2 years ago by
 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
 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
 Work issues add tox dependency, add spkgcheck deleted
comment:60 Changed 2 years ago by
 Commit changed from b982fdca762e4248c03711ccc1300e79c97b663b to 0a5ded72e54e6b71fef6192a7b8b3e6720664c75
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
94ec3c9  Add sage package updatelatest command

cb7a291  Fixup rebase

1d36a2e  build/bin/sagesystempython: Try python first

a91ecab  Merge branch 't/29890/build_bin_sage_system_python__try__python__first' into t/20104/automatic_updates_of_pip_type_packages

ba6fbb5  Merge 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 sagepackage

efb14c3  Suppress linebreaks

bd703e4  .github/workflows/toxoptional.yml: Do not test huge packages

d6e56e8  Merge branch 't/29901/_github_workflows___test_all_optional_packages__add_workflow_for_testing_all_experimental_packages' into t/29865modularizarionsageobjects

0a5ded7  build/pkgs/sage_categories: New (lightly edited copy of sage_objects)

comment:61 Changed 2 years ago by
 Commit changed from 0a5ded72e54e6b71fef6192a7b8b3e6720664c75 to 77cae45309eec747baeef181a5164b2867378256
Branch pushed to git repo; I updated commit sha1. New commits:
77cae45  build/pkgs/sage_objects: Only include the most basic categories

comment:62 Changed 2 years ago by
 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
 Commit changed from 77cae45309eec747baeef181a5164b2867378256 to f46acbdc001978d6202b80f66c8d546d3657a97b
comment:64 Changed 2 years ago by
 Commit changed from f46acbdc001978d6202b80f66c8d546d3657a97b to 386bf91201fe826c28eabf86ba4567b4fa8ac775
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
210c1a7  sage.plot: Import sage.misc.verbose

8a5e384  Fix remaining imports of *verbose*

5632556  src/sage/modular/modsym/relation_matrix_pyx.pyx: Fixup import

41d42e9  sage.misc.verbose: Fix imports

b3af9e2  sage.misc.verbose: Fix doctest

d8abdb0  Fixup various imports and uses of verbose

db40fd5  Fix pyflakes warnings regarding imports

b7da100  Merge branch 't/29895/move_sage_misc_misc__verbose__to_new_module_sage_misc_verbose' into t/29865modularizarionsageobjects

9f7f65c  Break out *.all__sage_objects from sage.all, sage.misc.all, sage.categories.all

386bf91  build/pkgs/sage_objects: WIP: Run doctester

comment:65 Changed 2 years ago by
 Commit changed from 386bf91201fe826c28eabf86ba4567b4fa8ac775 to 224ad51811f082f5dddfa3c26785683890e8a6a7
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
ad00b40  sage.doctest, src/bin/sageruntests: Remove handling of sagenb

faef943  Merge branch 't/29940/sage_doctest__remove_handling_of_sagenb' into t/29922/sage_doctest__make_imports_more_specific__make_global_environment_for_tests_customizable

67db00f  src/bin/sageruntests, sage.doctest: Handle option environment

9bf6f88  sage.doctest.control: Remove unused import

89988cf  sage.doctest.forker.init_sage: Actually handle the optional arg

2664865  sage.misc.package: Do not fail if SAGE_PKGS, SAGE_SPKG_INST do not exist

2a602df  sage.repl.display.fancy_repr: Do not fail if sage.matrix.matrix1 canno be imported

9e808da  Merge branch '29922'

bdb162d  src/sage: Move more to all__sage_objects.py

224ad51  build/pkgs/sage_objects: Make doctesting work

comment:66 Changed 2 years ago by
Doctesting sageobjects 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.
comment:67 in reply to: ↑ 54 Changed 2 years ago by
Replying to mkoeppe:
I'll probably make
sageobjects
smaller by only includingsage.categories.category
rather than all ofsage.categories
;
this is done (but I temporarily added modules to do doctesting)
and add a package
sagecategories
that is larger than the current version, including alsosage.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
 Commit changed from 224ad51811f082f5dddfa3c26785683890e8a6a7 to 5eafbc7561c40cb5e1181019434e55e6ea94f5e6
comment:69 Changed 2 years ago by
 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
 Commit changed from 5eafbc7561c40cb5e1181019434e55e6ea94f5e6 to 1e82b2da9ed33814a8c0166ea1e0f5db86e14b56
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
a5bc828  src/sage/misc/sageinspect.py: Fixup fixup

1baaa68  src/sage/misc/sageinspect.py: Remove unused import

6734969  Merge 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

5e9f00c  src/sage/rings/integer*.pyx: Remove 'libraries = ntl'

a9d4575  Merge branch 't/29911/sage_rings_integer__integer_ring__remove_dependencies_on_sage_libs_ntl' into t/29865modularizarionsageobjects

e00aaec  Add from sage_objects MANIFEST.in

739b401  Update from sage_objects tox.ini

8f78aa8  sage.rings.ideal: Do not import sage.interfaces.singular at load time

bac135f  build/pkgs/sage_categories/src/setup.cfg: Fix up

1e82b2d  build/pkgs/sage_categories/src/MANIFEST.in: Add a bit from sage.rings

comment:71 Changed 2 years ago by
 Commit changed from 1e82b2da9ed33814a8c0166ea1e0f5db86e14b56 to fd810248f413dab7775b9aabd857a03c21b912c6
comment:72 Changed 2 years ago by
Before we can add sage.rings.integer
, we need #30022 (sage.rings.integer
, rational
: Remove compiletime dependency on cypari2
and flint
).
comment:73 Changed 2 years ago by
 Commit changed from fd810248f413dab7775b9aabd857a03c21b912c6 to 42716797eb2b0776f4df9ef008b32ab3c0f09fb0
Branch pushed to git repo; I updated commit sha1. New commits:
4271679  Set up all__sage_categories.py

comment:74 Changed 2 years ago by
 Commit changed from 42716797eb2b0776f4df9ef008b32ab3c0f09fb0 to ef8b3a5a05aca0024839628ed92bcdfe0d868533
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
0915137  sage.rings.integer_ring.IntegerRing_class._coerce_ZZ: Remove, replaces uses by calls to ZZ_to_mpz

8468ad1  src/sage/rings/integer*.pyx: Remove 'libraries = ntl'

62e2aa9  Merge tag '9.2.beta6' into t/29911/sage_rings_integer__integer_ring__remove_dependencies_on_sage_libs_ntl

0f3cd7b  Merge branch 't/29911/sage_rings_integer__integer_ring__remove_dependencies_on_sage_libs_ntl' into t/29865/t/29865modularizarionsageobjects

d62da15  sage_setup.command.sage_build: Add the extensions to the distribution

06a3609  sage_setup.find.find_python_sources: Add benchmark doctest

174626c  Merge 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

034a7f7  Merge 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

d3c608b  Merge tag '9.2.beta3' into t/29701/replace_use_of_module_list_optionalextension

ef8b3a5  Merge branch 't/29701/replace_use_of_module_list_optionalextension' into t/29865/t/29865modularizarionsageobjects

comment:75 Changed 2 years ago by
 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
 Description modified (diff)
comment:77 Changed 2 years ago by
 Commit changed from ef8b3a5a05aca0024839628ed92bcdfe0d868533 to 4bdafb773e488be0b0b032747f1c3f94ff3f3c9f
Branch pushed to git repo; I updated commit sha1. New commits:
4bdafb7  build/pkgs/sage_{categories,objects}/src/MANIFEST.in: Add sage/misc/superseded

comment:78 Changed 2 years ago by
 Milestone changed from sage9.2 to sage9.3
comment:79 Changed 2 years ago by
 Commit changed from 4bdafb773e488be0b0b032747f1c3f94ff3f3c9f to 41f67fb72561500d85cf5a8c35f8f55f5fe9c261
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
e40b198  build/pkgs/sage_objects: Make doctesting work

1b64463  Add from sage_objects MANIFEST.in

9ed18dd  Update from sage_objects tox.ini

5627a0d  sage.rings.ideal: Do not import sage.interfaces.singular at load time

8b74269  build/pkgs/sage_categories/src/setup.cfg: Fix up

97fdb43  build/pkgs/sage_categories/src/MANIFEST.in: Add a bit from sage.rings

7a180bb  build/pkgs/sage_categories/src/bin: New symlink

691ebc0  build/pkgs/sage_categories/src/MANIFEST.in: More tweaks

e947edf  Set up all__sage_categories.py

41f67fb  build/pkgs/sage_{categories,objects}/src/MANIFEST.in: Add sage/misc/superseded

comment:80 Changed 2 years ago by
 Dependencies #29701, #29911 deleted
comment:81 Changed 2 years ago by
 Commit changed from 41f67fb72561500d85cf5a8c35f8f55f5fe9c261 to cd12d4c8fbd7699385102d3dd76869abaf63c4ee
Branch pushed to git repo; I updated commit sha1. New commits:
cd12d4c  build/pkgs/sage_objects/src/requirements.txt: Update

comment:82 Changed 2 years ago by
 Dependencies set to #30532
comment:83 Changed 22 months ago by
 Commit changed from cd12d4c8fbd7699385102d3dd76869abaf63c4ee to 6bfe8d7311a7577368cd13898ceb90eab3ba01ca
Branch pushed to git repo; I updated commit sha1. New commits:
6bfe8d7  Merge tag '9.2' into t/29865/t/29865modularizarionsageobjects

comment:84 Changed 22 months ago by
 Commit changed from 6bfe8d7311a7577368cd13898ceb90eab3ba01ca to 1f6bc4cb3b4d17836cdf740d0085b0e6ca18912c
comment:85 Changed 21 months ago by
 Keywords sd111 added
comment:86 Changed 20 months ago by
 Description modified (diff)
 Work issues set to rename sage... to sagemath...
comment:87 Changed 20 months ago by
 Summary changed from Modularization of sagelib: Break out separate packages sageobjects, sagecategories to Modularization of sagelib: Break out separate packages sagemathobjects, sagemathcategories
comment:88 Changed 19 months ago by
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
Replying to mkoeppe:
I'll probably make
sageobjects
smaller by only includingsage.categories.category
rather than all ofsage.categories
; and add a packagesagecategories
that is larger than the current version, including alsosage.rings.ring
and similar abstract classes. (On this ticket,sagecategories
would just be a larger package whose MANIFEST.in is a superset of that ofsageobjects
. It will be done by dependencies later.)
Okay. I was going to say, it seems like sageobjects still depends too heavily on too much of sage.categories
. For my purposes I would want it to be as lightweight 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 Clevel 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
 Commit changed from 1f6bc4cb3b4d17836cdf740d0085b0e6ca18912c to 9d3df2067d950084f8e0b4703e3ff208c3a73314
Branch pushed to git repo; I updated commit sha1. New commits:
9d3df20  Merge tag '9.3.beta6' into t/29865/t/29865modularizarionsageobjects

comment:91 Changed 19 months ago by
 Milestone changed from sage9.3 to sage9.4
Yes, I also hope that sagemathobjects
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
 Dependencies #30532 deleted
comment:93 Changed 19 months ago by
 Description modified (diff)
comment:94 Changed 19 months ago by
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
Thanks, Nicolas!
comment:96 Changed 19 months ago by
 Commit changed from 9d3df2067d950084f8e0b4703e3ff208c3a73314 to 91559df4dfc9ad5e77c3e2edff5987cc0cd86b97
Branch pushed to git repo; I updated commit sha1. New commits:
91559df  build/pkgs/sage_objects/src/setup.py: Add macOS multiprocessing fix from src/setup.py

comment:97 Changed 19 months ago by
 Commit changed from 91559df4dfc9ad5e77c3e2edff5987cc0cd86b97 to 2cf7b04de11836a7503937bb4b508366be807a17
Branch pushed to git repo; I updated commit sha1. New commits:
2cf7b04  Rename sage_objects, sage_categories to sagemath_objects, sagemath_categories, update metadata

comment:98 Changed 19 months ago by
 Commit changed from 2cf7b04de11836a7503937bb4b508366be807a17 to 991e547710753961e7327236a71a47b66ed5c58b
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
991e547  Rename sage_objects, sage_categories to sagemath_objects, sagemath_categories, update metadata

comment:99 Changed 19 months ago by
 Description modified (diff)
 Work issues rename sage... to sagemath... deleted
comment:100 Changed 19 months ago by
 Commit changed from 991e547710753961e7327236a71a47b66ed5c58b to 86024cda44422797fcc37b8e10acdc8ce21405e1
Branch pushed to git repo; I updated commit sha1. New commits:
86024cd  build/pkgs/sagemath_{objects,categories}/src/MANIFEST.in: Prune/exclude more

comment:101 Changed 19 months ago by
 Commit changed from 86024cda44422797fcc37b8e10acdc8ce21405e1 to 8366cfdf6ab32139491355ac0ec3bf8bb4cf4b62
Branch pushed to git repo; I updated commit sha1. New commits:
8366cfd  build/pkgs/sagemath_{objects,categories}: Update README

comment:102 Changed 16 months ago by
what's the status here?
comment:103 Changed 16 months ago by
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
 Commit changed from 8366cfdf6ab32139491355ac0ec3bf8bb4cf4b62 to a94f39e53911cfda21cad0096ff489157de6f97b
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
a1d1bb0  sage.misc.misc, sage.misc.persist, sage.structure.formal_sum: Make some imports local to functions

3236920  sage.categories.all: Resolve a circular import

4b33873  src/sage: Move more to all__sage_objects.py

0a7f177  build/pkgs/sage_objects: Make doctesting work

e1be016  Set up all__sage_categories.py

1850deb  build/pkgs/sage_{categories,objects}/src/MANIFEST.in: Add sage/misc/superseded

a4a29f5  build/pkgs/sage_objects/src/setup.py: Add macOS multiprocessing fix from src/setup.py

d242689  Rename sage_objects, sage_categories to sagemath_objects, sagemath_categories, update metadata

6df33cd  build/pkgs/sagemath_{objects,categories}/src/MANIFEST.in: Prune/exclude more

a94f39e  build/pkgs/sagemath_{objects,categories}: Update README

comment:105 Changed 14 months ago by
 Commit changed from a94f39e53911cfda21cad0096ff489157de6f97b to e1961d8f00461a3f33b0f371f442c43af9da1646
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
9a6a4b2  sage.env: Do not die if DOT_SAGE is None

206a6dc  sage.misc.misc, sage.misc.persist, sage.structure.formal_sum: Make some imports local to functions

edb00b2  build/pkgs/sage_objects: New

83ed0ca  sage.structure.all: Import .formal_sum lazily to avoid pulling in sage.modules

d876c55  src/sage: Move more to all__sage_objects.py

6ebf4f3  build/pkgs/sage_objects: Make doctesting work

7e1d731  Set up all__sage_categories.py

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

e1961d8  Move source trees from build/pkgs/sagemath_*/src to pkgs/sagemath*

comment:106 Changed 14 months ago by
 Commit changed from e1961d8f00461a3f33b0f371f442c43af9da1646 to ae1f4efd1713c65afef4e7fa5787a1ef3c89d52c
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
ae1f4ef  Move source trees from build/pkgs/sagemath_*/src to pkgs/sagemath*

comment:107 Changed 14 months ago by
 Commit changed from ae1f4efd1713c65afef4e7fa5787a1ef3c89d52c to 8209be8b13fe5a845f0261b75e3f289c25629b9d
comment:108 Changed 14 months ago by
 Dependencies set to #31333
 Status changed from needs_work to needs_review
comment:109 Changed 12 months ago by
 Milestone changed from sage9.4 to sage9.5
comment:110 Changed 12 months ago by
 Commit changed from 8209be8b13fe5a845f0261b75e3f289c25629b9d to 1e80ee1387430794bc7c48192dbadcb7b8cf63a0
Branch pushed to git repo; I updated commit sha1. New commits:
1e80ee1  Merge tag '9.4.rc1' into t/29865/t/29865modularizarionsageobjects

comment:111 Changed 12 months ago by
 Dependencies #31333 deleted
comment:112 Changed 12 months ago by
 Commit changed from 1e80ee1387430794bc7c48192dbadcb7b8cf63a0 to df35a7cf996af1494d32a1472bf05b2c344f0b79
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
df35a7c  Merge tag '9.4.rc1' into t/29865/t/29865modularizarionsageobjects

comment:113 Changed 12 months ago by
 Dependencies set to #29039
comment:114 Changed 12 months ago by
 Commit changed from df35a7cf996af1494d32a1472bf05b2c344f0b79 to 4695948cf4f19c3aa79c36f4f2d672dd15e2616f
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
3299937  Makefile (pypisdists): Build sagemath_objects, sagemath_categories sdists

290fa2f  build/pkgs/sagelib/src: Restore lost symlink

478ffcd  Merge #32046

b011389  Merge 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

d800eea  Merge #29039

bf09386  build/pkgs/sagemath_categories/spkgsrc: Replace sagepython23 by python3

5ab4e7c  pkgs/sagemath{objects,categories}: Generate pyproject.toml, setup.cfg with m4; remove requirements.txt

e38644a  Makefile (pypisdists): Add sage_setup

e6b731c  Merge #29039

4695948  pkgs/sagemathobjects/pyproject.toml.m4: Remove sageconf from buildsystem requires

comment:115 Changed 12 months ago by
 Commit changed from 4695948cf4f19c3aa79c36f4f2d672dd15e2616f to 61ef2de49566237c4309402b23a9be51578ad4bb
Branch pushed to git repo; I updated commit sha1. New commits:
61ef2de  Merge tag '9.4.rc2' into t/29865/t/29865modularizarionsageobjects

comment:116 Changed 12 months ago by
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
 Commit changed from 61ef2de49566237c4309402b23a9be51578ad4bb to 037ed2bda3015876bf95c8dc0f8a75a4487dd538
comment:118 Changed 12 months ago by
File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pipreqbuild_o5ymrt1/sage_setup/library_order.py", line 14, in <module> aliases = cython_aliases() File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pipreqbuild_o5ymrt1/sage/env.py", line 451, in cython_aliases import pkgconfig ModuleNotFoundError: No module named 'pkgconfig'
comment:119 Changed 12 months ago by
 Commit changed from 037ed2bda3015876bf95c8dc0f8a75a4487dd538 to 8bdb61ed2d30eaf1bf9c27e1763cbfaef695ad42
comment:120 Changed 12 months ago by
 Commit changed from 8bdb61ed2d30eaf1bf9c27e1763cbfaef695ad42 to c66d5fc63f7bc59be9714d2e147d0cb9bb7ed3a1
Branch pushed to git repo; I updated commit sha1. New commits:
c66d5fc  pkgs/sagemath{objects,categories}/MANIFEST.in: include VERSION.txt, remove vendoring of sage_setup

comment:121 Changed 12 months ago by
 Commit changed from c66d5fc63f7bc59be9714d2e147d0cb9bb7ed3a1 to 20f29be15c76fc47b618ced7b54738acc16e75b7
Branch pushed to git repo; I updated commit sha1. New commits:
20f29be  pkgs/sagemath{objects,categories}/sage_setup: Restore symlink  needed for the tox sdist phase

comment:122 Changed 12 months ago by
File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pipbuildenvf9779kgd/overlay/lib/python3.9/sitepackages/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/pipbuildenvf9779kgd/overlay/lib/python3.9/sitepackages/sage_setup/library_order.py", line 14, in <module> aliases = cython_aliases() File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pipreqbuild8_9lsvo_/sage/env.py", line 472, in cython_aliases aliases[var + "CFLAGS"] = pkgconfig.cflags(lib).split() File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pipbuildenvf9779kgd/overlay/lib/python3.9/sitepackages/pkgconfig/pkgconfig.py", line 144, in cflags _raise_if_not_exists(package) File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pipbuildenvf9779kgd/overlay/lib/python3.9/sitepackages/pkgconfig/pkgconfig.py", line 103, in _raise_if_not_exists raise PackageNotFoundError(package) pkgconfig.pkgconfig.PackageNotFoundError: fflasffpack not found
comment:123 Changed 12 months ago by
 Dependencies changed from #29039 to #29039, #32373
comment:124 Changed 12 months ago by
 Commit changed from 20f29be15c76fc47b618ced7b54738acc16e75b7 to 796ef717d58d9f404ec5b6debfa7c16c951e5353
comment:125 Changed 12 months ago by
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/pipreqbuildz0x28qby/sage_setup/command/sage_build_cython.py", line 225, in run aliases=cython_aliases(), File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pipreqbuildz0x28qby/sage/env.py", line 472, in cython_aliases aliases[var + "CFLAGS"] = pkgconfig.cflags(lib).split() File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pipbuildenvti7oa28i/overlay/lib/python3.9/sitepackages/pkgconfig/pkgconfig.py", line 144, in cflags _raise_if_not_exists(package) File "/private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pipbuildenvti7oa28i/overlay/lib/python3.9/sitepackages/pkgconfig/pkgconfig.py", line 103, in _raise_if_not_exists raise PackageNotFoundError(package) pkgconfig.pkgconfig.PackageNotFoundError: fflasffpack not found
comment:126 Changed 12 months ago by
 Commit changed from 796ef717d58d9f404ec5b6debfa7c16c951e5353 to 4af99dd81fd5d4adc1c33bed8aacbdaef9db6d50
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
676111f  sage_setup.library_order: Take module list from new variables sage.env.default_{required,optional}_modules

e5ae08c  Merge #32373

4b5cee7  Revert "pkgs/sagemath{objects,categories}/tox.ini: Remove use of requirements.txt"

5bff677  pkgs/sagemath{objects,categories}: Generate requirements.txt from ...m4 (for tox)

6f512ef  pkgs/sagemathobjects/setup.py: Do not require any pkgconfig modules

7f84f82  pkgs/sagemathobjects/pyproject.toml.m4: Add gmpy2, cysignals

e3ec108  sage.misc.misc.cputime: Make import from sage.interfaces.quit local to this function

d145883  pkgs/sagemathobjects/tox.ini: Ignore doctest failures

bc767b1  pkgs/sagemathcategories/MANIFEST.in: Generate from ....m4

4af99dd  pkgs/sagemathcategories/tox.ini: Ignore doctest failures

comment:127 Changed 12 months ago by
 Commit changed from 4af99dd81fd5d4adc1c33bed8aacbdaef9db6d50 to bce252f7778504b6acb0a9f0fc5018e60459a98a
Branch pushed to git repo; I updated commit sha1. New commits:
bce252f  Merge tag '9.4' into t/29865/t/29865modularizarionsageobjects

comment:128 Changed 12 months ago by
 Commit changed from bce252f7778504b6acb0a9f0fc5018e60459a98a to dda451f2ab192172405c70c09265ddae45515912
Branch pushed to git repo; I updated commit sha1. New commits:
dda451f  Rename all__sage_objects.py, all__sage_categories.py to all__sagemath_objects.py, all__sagemath_categories.py

comment:129 Changed 11 months ago by
 Commit changed from dda451f2ab192172405c70c09265ddae45515912 to 5bb6e0d523a89ca678fc3870d6a5b8a638039b5a
Branch pushed to git repo; I updated commit sha1. New commits:
5bb6e0d  Merge tag '9.5.beta1' into t/29865/t/29865modularizarionsageobjects

comment:130 Changed 11 months ago by
 Commit changed from 5bb6e0d523a89ca678fc3870d6a5b8a638039b5a to 5cf5e4d8ad7c12bdb7fe5206bbf166a5372b3352
Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
a23b1e1  pkgs/sageconf_pypi/MANIFEST.in: Exclude build artifacts

2f5be2d  configure.ac, build/pkgs/python3/spkgconfigure.m4: New default withsagevenv=auto

f700640  configure.ac: In config.status, create convenience symlinks prefix, venv

b4a3845  m4/sage_spkg_collect.m4: If we install python3 spkg, install it in SAGE_VENV

12cbbda  configure.ac: Keep old behavior of SAGE_VENV in incremental builds

117fe3a  build/make/Makefile.in (...clean): Do not fail trying to uninstall if SAGE_VENV has not been created yet

ce1c344  Merge #32442

e71b8a6  pkgs/sageconf_pypi/setup.py: Key SAGE_ROOT only to Sage version and architecture

9dcc189  pkgs/sageconf_pypi/setup.py: Use withsagevenv

5cf5e4d  Merge #29039

comment:131 Changed 11 months ago by
 Commit changed from 5cf5e4d8ad7c12bdb7fe5206bbf166a5372b3352 to 96bcf030be1a22afb901cd1d4412060a38854faf
Branch pushed to git repo; I updated commit sha1. New commits:
d626aa8  build/pkgs/pplpy/dependencies: Depend on sphinx only if SAGE_SPKG_INSTALL_DOCS!=no

82ce539  configure.ac: If disablenotebook and disablesagelib, do not build zeromq etc.

02505ca  pkgs/sageconf_pypi/MANIFEST.in: Update from #31396

aeca1a0  Makefile (pypisdists): Add sage_setup

cd3dce9  pkgs/sageconf_pypi/setup.py: Update directory of configured sage_conf.py

c695921  pkgs/sageconf/sage_conf.py.in (SAGE_SPKG_WHEELS): Update so it works if SAGE_VENV != SAGE_LOCAL

96bcf03  Merge #29039

comment:132 Changed 10 months ago by
 Commit changed from 96bcf030be1a22afb901cd1d4412060a38854faf to 9600217ce2fb166fbac5be915d72562439d3591e
comment:133 Changed 10 months ago by
 Commit changed from 9600217ce2fb166fbac5be915d72562439d3591e to 6bd807b4cce1a52faf5535d83a34baa0c0a9083c
Branch pushed to git repo; I updated commit sha1. New commits:
6bd807b  pkgs/sagemathcategories/tox.ini: passenv SAGE_NUM_THREADS*

comment:134 Changed 10 months ago by
 Cc ghtobiasdiez added
comment:135 Changed 10 months ago by
 Dependencies changed from #29039, #32373 to #29039
comment:136 Changed 10 months ago by
 Description modified (diff)
comment:137 Changed 10 months ago by
 Commit changed from 6bd807b4cce1a52faf5535d83a34baa0c0a9083c to e068bd9d4e7d761500543f46dc3339250eed9b75
comment:138 Changed 9 months ago by
 Commit changed from e068bd9d4e7d761500543f46dc3339250eed9b75 to 6187f93257e4ef8d0e63fcf5a53f72829b465242
Branch pushed to git repo; I updated commit sha1. New commits:
6187f93  Merge tag '9.5.beta6' into t/29865/t/29865modularizarionsageobjects

comment:139 Changed 9 months ago by
 Commit changed from 6187f93257e4ef8d0e63fcf5a53f72829b465242 to 743e00403f52bbda533fa5a066bbe8f76261bee4
comment:140 Changed 9 months ago by
 Description modified (diff)
comment:141 Changed 9 months ago by
 Commit changed from 743e00403f52bbda533fa5a066bbe8f76261bee4 to f3ee49ba9c93a95b17ef252e2842e1709808f66d
comment:142 Changed 9 months ago by
 Commit changed from f3ee49ba9c93a95b17ef252e2842e1709808f66d to 9ef0567f0dcbbe8b7143f1571ae57f693e6a90fd
comment:144 Changed 9 months ago by
 Description modified (diff)
comment:145 followups: ↓ 146 ↓ 147 Changed 9 months ago by
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/sagemathobjects/.tox/py39/bin/sage
should run the sage with only modules installed by sagemathobjects
. 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
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 ; followup: ↓ 149 Changed 9 months ago by
Replying to klee:
Then this command
pkgs/sagemathobjects/.tox/py39/bin/sageshould run the sage with only modules installed by
sagemathobjects
. But then still with this sage, I getsage: GF(9) Finite Field in z2 of size 3^2Is this normal? What code would fail?
There was something wrong with which helper scripts are shipped as part of sagemathobjects. I am working on a fix
comment:148 Changed 9 months ago by
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 warnlong 70.5 randomseed=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
comment:150 Changed 9 months ago by
 Dependencies changed from #29039 to #29039, #32933
 Status changed from needs_review to needs_work
comment:151 Changed 9 months ago by
 Commit changed from 9ef0567f0dcbbe8b7143f1571ae57f693e6a90fd to 00024e6f775ee0f6e50afb9ccf432fbdbcfd6787
comment:152 Changed 9 months ago by
 Status changed from needs_work to needs_review
It now correctly fails:
$ pkgs/sagemathobjects/.tox/py39/bin/sage c 'GF(9)' Traceback (most recent call last): File "/Users/mkoeppe/s/sage/sagerebasing/pkgs/sagemathobjects/.tox/py39/bin/sageeval", line 4, in <module> from sage.all import * ModuleNotFoundError: No module named 'sage.all'
comment:153 Changed 9 months ago by
 Commit changed from 00024e6f775ee0f6e50afb9ccf432fbdbcfd6787 to bfc953b1b4d1049e3dfe052ffc337be8c8d850fa
Branch pushed to git repo; I updated commit sha1. New commits:
bfc953b  src/sage/doctest/reporting.py: Indicate environment if not default

comment:154 Changed 9 months ago by
 Commit changed from bfc953b1b4d1049e3dfe052ffc337be8c8d850fa to 36d6b097ab164189a244eb8169d2b8efb913972a
Branch pushed to git repo; I updated commit sha1. New commits:
36d6b09  pkgs/sagemathcategories/setup.cfg.m4: Add scripts

comment:155 Changed 9 months ago by
I guess this is normal
$ pkgs/sagemathobjects/.tox/py39/bin/sage Traceback (most recent call last): File "/Users/kwankyu/GitHub/sagedev/pkgs/sagemathobjects/.tox/py39/bin/sageipython", line 9, in <module> from sage.misc.banner import banner ModuleNotFoundError: No module named 'sage.misc.banner'
but this works well
$ pkgs/sagemathobjects/.tox/py39/bin/python3 Python 3.9.7 (default, Oct 13 2021, 06:45:31) [Clang 13.0.0 (clang1300.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
Likewise this works well
$ pkgs/sagemathcategories/.tox/py39/bin/python3 Python 3.9.7 (default, Oct 13 2021, 06:45:31) [Clang 13.0.0 (clang1300.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/sagedev/pkgs/sagemathcategories/.tox/py39/lib/python3.9/sitepackages/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
In #32432 I am adding a few more things to sagemathcategories
so that some runtime testing becomes possible
comment:158 followup: ↓ 159 Changed 9 months ago by
After I started to experiment with the branch of this ticket, I get
$ sage tp all ... ... sage t warnlong 67.3 randomseed=176797787270485350725074395342233660735 src/doc/ja/a_tour_of_sage/conf.py [0 tests, 0.00 s]  sage t warnlong 67.3 randomseed=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, pytest6.2.5, py1.10.0, pluggy1.0.0 rootdir: /Users/kwankyu/GitHub/sagedev/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/sagedev/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 ; followup: ↓ 160 Changed 9 months ago by
comment:160 in reply to: ↑ 159 Changed 9 months ago by
Would you explain this line from tox.ini
?
[testenv] deps = rrequirements.txt
What does r
do?
comment:161 Changed 9 months ago by
It instructs pip
to install the packages listed in the file requirements.txt
comment:162 Changed 9 months ago by
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
 Reviewers set to Kwankyu Lee
comment:164 Changed 9 months ago by
Thank you!
comment:165 Changed 9 months ago by
Files in build/pkgs/sagemath_categories
,
build/pkgs/sagemath_objects
,
pkgs/sageconf_pypi
, pkgs/sagemathcategories
,
pkgs/sagemathobjects
,
could ideally end with a newline,
even when they only have one line.
comment:166 Changed 9 months ago by
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
Never mind then! Sorry for the noise.
comment:168 Changed 9 months ago by
 Status changed from needs_review to positive_review
Okay. Let's get this in.
comment:169 Changed 9 months ago by
Thanks!
comment:171 Changed 7 months ago by
 Milestone changed from sage9.5 to sage9.6
comment:172 Changed 6 months ago by
 Branch changed from u/mkoeppe/t/29865modularizarionsageobjects to 36d6b097ab164189a244eb8169d2b8efb913972a
 Resolution set to fixed
 Status changed from positive_review to closed
Branch pushed to git repo; I updated commit sha1. New commits:
sage.env.sage_include_directories: Do not fail if numpy cannot be imported
build/pkgs/sage_objects: Add dependencies, get minimal tox working