Open mkoeppe opened 3 years ago
Description changed:
---
+++
@@ -1,2 +1,6 @@
+... except for a minimal set of libraries such as `cysignals` and `gmpy2` (see #29865).
+
+(from #30371): See #29705 under the items titled "Deploy mildly modularized distributions", "Further modularization" for a sketch of such distributions. Basically, one distribution for each major C/C++ library (such as sage-ntl) - but some libraries come in packs that would not make much sense to separate (such as sage-flint-arb-e_antic).
+
This is preparation for Meta-ticket #29705 (Modularization) and #30371.
Description changed:
---
+++
@@ -2,5 +2,15 @@
(from #30371): See #29705 under the items titled "Deploy mildly modularized distributions", "Further modularization" for a sketch of such distributions. Basically, one distribution for each major C/C++ library (such as sage-ntl) - but some libraries come in packs that would not make much sense to separate (such as sage-flint-arb-e_antic).
+List of distributions:
+
+- `sage-giac` (ex `giacpy_sage` in `sage.libs.giac` + dependency on `libgiac`)
+- `sage-brial` (ex `sage-brial` in `sage.rings.polynomial.pbori` + `sage.libs.polybori`, `sage.crypto.boolean_function`)
+- `sage-ntl`
+- `sage-flint-arb-e_antic`
+- `sage-ecl` (`sage.libs.ecl`)
+- `sage-singular`
+- `sage-pynac`
+
This is preparation for Meta-ticket #29705 (Modularization) and #30371.
Description changed:
---
+++
@@ -1,4 +1,4 @@
-... except for a minimal set of libraries such as `cysignals` and `gmpy2` (see #29865).
+... except for a minimal set of "core" libraries such as `cysignals` and `gmpy2` (see #29865), which would require
(from #30371): See #29705 under the items titled "Deploy mildly modularized distributions", "Further modularization" for a sketch of such distributions. Basically, one distribution for each major C/C++ library (such as sage-ntl) - but some libraries come in packs that would not make much sense to separate (such as sage-flint-arb-e_antic).
Description changed:
---
+++
@@ -1,4 +1,4 @@
-... except for a minimal set of "core" libraries such as `cysignals` and `gmpy2` (see #29865), which would require
+Basically, we are making all external libraries optional, except for a minimal set of "core" libraries such as `cysignals` and `gmpy2` (see #29865).
(from #30371): See #29705 under the items titled "Deploy mildly modularized distributions", "Further modularization" for a sketch of such distributions. Basically, one distribution for each major C/C++ library (such as sage-ntl) - but some libraries come in packs that would not make much sense to separate (such as sage-flint-arb-e_antic).
Good idea to separate this into a new ticket.
While working on #30371, I noticed that most cython files using singular cannot be compiled without pynac. So maybe these should be combined.
Also, I think, there should be distributions for GAP, CCObject, linbox, ratpoints, zn_poly and mari.
What do you think about renaming sage_setup: distribution to sage_setup: dependency? I think this better reflects the purpose. The distribution is then generated based on which dependencies are available. Another idea would be to use distutils: libraries
which already contains some of the dependencies anyway (e.g. arb, gmp, flint).
Replying to @tobiasdiez:
While working on #30371, I noticed that most cython files using singular cannot be compiled without pynac. So maybe these should be combined.
I think they should be separate because I really want to be able to make singular optional. pynac, on the other hand, is essential for our symbolics implementation.
Also, I think, there should be distributions for GAP, CCObject, linbox, ratpoints, zn_poly and mari.
Yes, please add to the list in the ticket description with explanation (what is CCObject?)
What do you think about renaming sage_setup: distribution to sage_setup: dependency?
No, I wouldn't like that. As soon as you start with declaring "dependencies", there will be combinatorial explosion from the combinations of such dependencies. I really want a well-designed partition of the source files into (relatively few) disjoint distributions. This is crucial for the modularization -- each distribution will eventually be separately compilable and installable package on PyPI.
Description changed:
---
+++
@@ -11,6 +11,11 @@
- `sage-ecl` (`sage.libs.ecl`)
- `sage-singular`
- `sage-pynac`
+- `sage-gap` (see #30371 setup.py for which files need GAP)
+- `sage-linbox` (see #30371 setup.py for which files need linbox)
+- `sage-ratpoints` (see #30371 setup.py for which files need ratpoints)
+- `sage-znpoly` (see #30371 setup.py for which files need zn_poly)
+- `sage-mari` (see #30371 setup.py for which files need mari)
This is preparation for Meta-ticket #29705 (Modularization) and #30371.
Ok, makes sense. Which distribution should be assigned to files that have two dependencies (e.g use pynac and singular)?
My idea was that the cython file declares which dependencies it has, and in the setup.py file you have a list of distributions and their dependencies. If all dependencies are met, that particular distribution is built. E.g. distribution "sage-singular" relies on "pynac" and "singular". (That's only a feeling, but it feels strange to have distributions determined by dependencies and not by a theme or subject, e.g. "sage-singular" vs "sage-symbolic calculation". But you have a better overview, so I trust you there.)
I've added the above distributions to the list. (Forget about CCObject, it was a missing import in #30371 that confused me.)
Replying to @tobiasdiez:
Which distribution should be assigned to files that have two dependencies (e.g use pynac and singular)?
Distributions can certainly depend on other distributions. sage-singular
could depend on sage-pynac
. Let's include this in the ticket description. (In the modularized build, sage-singular
's setup.py
or setup.cfg
would have install_requires = sage-pynac
.)
Also, often it is relatively easy to remove some of these dependencies by small changes to a few source files, moving a few methods around. See for example #29911. We can take work on this in follow-up tickets.
it feels strange to have distributions determined by dependencies and not by a theme or subject, e.g. "sage-singular" vs "sage-symbolic calculation".
Perhaps, but there is actually an important "political" (open source community) reason for this design too. By naming these components after major libraries that provide the features, we make these libraries and their important role for Sage more visible to end users. Attribution tends to be an important motivating factor to developers of these libraries.
To expand on this a little bit: I wouldn't rule out distributions named after topics. The present ticket only provides a "skeleton" of distributions that are (1) technically needed to take care of compile-time dependencies, (2) provides attribution. Later on (in follow-up tickets), for example, there could be a distribution sage-feature-padics
or something like this that has sage-ntl
as a dependency and packages sage.rings.padics
.
Description changed:
---
+++
@@ -8,14 +8,87 @@
- `sage-brial` (ex `sage-brial` in `sage.rings.polynomial.pbori` + `sage.libs.polybori`, `sage.crypto.boolean_function`)
- `sage-ntl`
- `sage-flint-arb-e_antic`
+ - 'sage/libs/arb/arith.pyx',
+ - 'sage/matrix/matrix_complex_ball_dense.pyx',
+ - 'sage/rings/complex_arb.pyx',
+ - 'sage/rings/number_field/number_field_element_quadratic.pyx',
+ - 'sage/rings/polynomial/polynomial_complex_arb.pyx',
+ - 'sage/rings/real_arb.pyx'
- `sage-ecl` (`sage.libs.ecl`)
-- `sage-singular`
+- `sage-singular`: (some of these files actually may be better put in the pynac distribution)
+ - 'sage/algebras/letterplace/free_algebra_element_letterplace.pyx',
+ - 'sage/algebras/letterplace/free_algebra_letterplace.pyx',
+ - 'sage/algebras/letterplace/letterplace_ideal.pyx',
+ - 'sage/libs/pynac/constant.pyx',
+ - 'sage/libs/pynac/pynac.pyx',
+ - 'sage/libs/singular/function.pyx',
+ - 'sage/libs/singular/groebner_strategy.pyx',
+ - 'sage/libs/singular/option.pyx',
+ - 'sage/libs/singular/polynomial.pyx',
+ - 'sage/libs/singular/ring.pyx',
+ - 'sage/libs/singular/singular.pyx',
+ - 'sage/matrix/matrix_mpolynomial_dense.pyx',
+ - 'sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx',
+ - 'sage/rings/polynomial/multi_polynomial_libsingular.pyx',
+ - 'sage/rings/polynomial/plural.pyx',
+ - 'sage/symbolic/comparison.pyx',
+ - 'sage/symbolic/constants_c.pyx',
+ - 'sage/symbolic/expression.pyx',
+ - 'sage/symbolic/function.pyx',
+ - 'sage/symbolic/getitem.pyx',
+ - 'sage/symbolic/ring.pyx',
+ - 'sage/symbolic/series.pyx',
+ - 'sage/symbolic/substitution_map.pyx',
- `sage-pynac`
-- `sage-gap` (see #30371 setup.py for which files need GAP)
-- `sage-linbox` (see #30371 setup.py for which files need linbox)
-- `sage-ratpoints` (see #30371 setup.py for which files need ratpoints)
+- `sage-gap`:
+ - 'sage/coding/codecan/codecan.pyx',
+ - 'sage/combinat/enumeration_mod_permgroup.pyx',
+ - 'sage/combinat/root_system/reflection_group_c.pyx',
+ - 'sage/combinat/root_system/reflection_group_element.pyx',
+ - 'sage/graphs/spanning_tree.pyx',
+ - 'sage/groups/libgap_wrapper.pyx',
+ - 'sage/groups/matrix_gps/group_element.pyx',
+ - 'sage/groups/perm_gps/permgroup_element.pyx',
+ - 'sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx',
+ - 'sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx',
+ - 'sage/groups/perm_gps/partn_ref/data_structures.pyx',
+ - 'sage/groups/perm_gps/partn_ref/double_coset.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_binary.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_graphs.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_lists.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_matrices.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_python.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_sets.pyx',
+ - 'sage/groups/perm_gps/partn_ref2/refinement_generic.pyx',
+ - 'sage/libs/gap/element.pyx',
+ - 'sage/libs/gap/libgap.pyx',
+ - 'sage/libs/gap/util.pyx',
+ - 'sage/matrix/matrix_gap.pyx',
+ - 'sage/sets/disjoint_set.pyx'
+- `sage-linbox`:
+ - 'sage/libs/linbox/linbox_flint_interface.pyx',
+ - 'sage/matrix/matrix_integer_sparse.pyx',
+ - 'sage/matrix/matrix_modn_dense_double.pyx',
+ - 'sage/matrix/matrix_modn_dense_float.pyx',
+ - 'sage/matrix/matrix_modn_sparse.pyx'
+- `sage-ratpoints`: 'sage/libs/ratpoints.pyx', 'sage/schemes/elliptic_curves/descent_two_isogeny.pyx'
- `sage-znpoly` (see #30371 setup.py for which files need zn_poly)
-- `sage-mari` (see #30371 setup.py for which files need mari)
+ - 'sage/modular/modsym/p1list.pyx',
+ - 'sage/modular/pollack_stevens/dist.pyx',
+ - 'sage/rings/fraction_field_FpT.pyx',
+ - 'sage/rings/polynomial/polynomial_zmod_flint.pyx',
+ - 'sage/schemes/hyperelliptic_curves/hypellfrob.pyx',
+- `sage-mari` (also requiring pbori and pbori-groebner):
+ - 'sage/matrix/matrix_gf2e_dense.pyx',
+ - 'sage/matrix/matrix_integer_dense.pyx',
+ - 'sage/matrix/matrix_mod2_dense.pyx',
+ - 'sage/matrix/matrix_rational_dense.pyx',
+ - 'sage/modules/vector_mod2_dense.pyx',
+ - 'sage/rings/polynomial/pbori/pbori.pyx',
+ - 'sage/rings/polynomial/polynomial_gf2x.pyx'
+- `sage-magma`: requires sage-ecl
+- `sage-giac`: 'sage/libs/giac/giac.pyx'
+- `sage-homfly`: 'sage/libs/homfly.pyx'
This is preparation for Meta-ticket #29705 (Modularization) and #30371.
Description changed:
---
+++
@@ -8,6 +8,7 @@
- `sage-brial` (ex `sage-brial` in `sage.rings.polynomial.pbori` + `sage.libs.polybori`, `sage.crypto.boolean_function`)
- `sage-ntl`
- `sage-flint-arb-e_antic`
+ - 'sage/libs/arb/arb_version.pyx',
- 'sage/libs/arb/arith.pyx',
- 'sage/matrix/matrix_complex_ball_dense.pyx',
- 'sage/rings/complex_arb.pyx',
Replying to @mkoeppe:
Replying to @tobiasdiez:
While working on #30371, I noticed that most cython files using singular cannot be compiled without pynac. So maybe these should be combined.
I think they should be separate because I really want to be able to make singular optional. pynac, on the other hand, is essential for our symbolics implementation.
When I wrote this, I didn't recall that singular's libfactory
is actually a dependency of pynac. So I think you are right, it's best to have pynac and singular in one distribution (for now, at least).
Changed keywords from none to sd111
Description changed:
---
+++
@@ -1,13 +1,14 @@
Basically, we are making all external libraries optional, except for a minimal set of "core" libraries such as `cysignals` and `gmpy2` (see #29865).
-(from #30371): See #29705 under the items titled "Deploy mildly modularized distributions", "Further modularization" for a sketch of such distributions. Basically, one distribution for each major C/C++ library (such as sage-ntl) - but some libraries come in packs that would not make much sense to separate (such as sage-flint-arb-e_antic).
+(from #30371): See #29705 under the items titled "Deploy mildly modularized distributions", "Further modularization" for a sketch of such distributions. Basically, one distribution for each major C/C++ library (such as `sagemath-ntl`) - but some libraries come in packs that would not make much sense to separate (such as `sagemath-flint-arb-e_antic`).
List of distributions:
-- `sage-giac` (ex `giacpy_sage` in `sage.libs.giac` + dependency on `libgiac`)
-- `sage-brial` (ex `sage-brial` in `sage.rings.polynomial.pbori` + `sage.libs.polybori`, `sage.crypto.boolean_function`)
-- `sage-ntl`
-- `sage-flint-arb-e_antic`
+- `sagemath-giac` (ex `giacpy_sage` in `sage.libs.giac` + dependency on `libgiac`)
+ - sage/libs/giac/giac.pyx
+- `sagemath-brial` (ex `sage-brial` in `sage.rings.polynomial.pbori` + `sage.libs.polybori`, `sage.crypto.boolean_function`)
+- `sagemath-ntl`
+- `sagemath-flint-arb-e_antic`
- 'sage/libs/arb/arb_version.pyx',
- 'sage/libs/arb/arith.pyx',
- 'sage/matrix/matrix_complex_ball_dense.pyx',
@@ -15,8 +16,9 @@
- 'sage/rings/number_field/number_field_element_quadratic.pyx',
- 'sage/rings/polynomial/polynomial_complex_arb.pyx',
- 'sage/rings/real_arb.pyx'
-- `sage-ecl` (`sage.libs.ecl`)
-- `sage-singular`: (some of these files actually may be better put in the pynac distribution)
+- `sagemath-ecl` (`sage.libs.ecl`)
+- `sagemath-maxima`: requires sage-ecl
+- `sagemath-singular`: (some of these files actually may be better put in the pynac distribution)
- 'sage/algebras/letterplace/free_algebra_element_letterplace.pyx',
- 'sage/algebras/letterplace/free_algebra_letterplace.pyx',
- 'sage/algebras/letterplace/letterplace_ideal.pyx',
@@ -40,8 +42,8 @@
- 'sage/symbolic/ring.pyx',
- 'sage/symbolic/series.pyx',
- 'sage/symbolic/substitution_map.pyx',
-- `sage-pynac`
-- `sage-gap`:
+- `sagemath-pynac`
+- `sagemath-gap`:
- 'sage/coding/codecan/codecan.pyx',
- 'sage/combinat/enumeration_mod_permgroup.pyx',
- 'sage/combinat/root_system/reflection_group_c.pyx',
@@ -66,20 +68,20 @@
- 'sage/libs/gap/util.pyx',
- 'sage/matrix/matrix_gap.pyx',
- 'sage/sets/disjoint_set.pyx'
-- `sage-linbox`:
+- `sagemath-linbox`:
- 'sage/libs/linbox/linbox_flint_interface.pyx',
- 'sage/matrix/matrix_integer_sparse.pyx',
- 'sage/matrix/matrix_modn_dense_double.pyx',
- 'sage/matrix/matrix_modn_dense_float.pyx',
- 'sage/matrix/matrix_modn_sparse.pyx'
-- `sage-ratpoints`: 'sage/libs/ratpoints.pyx', 'sage/schemes/elliptic_curves/descent_two_isogeny.pyx'
-- `sage-znpoly` (see #30371 setup.py for which files need zn_poly)
+- `sagemath-ratpoints`: 'sage/libs/ratpoints.pyx', 'sage/schemes/elliptic_curves/descent_two_isogeny.pyx'
+- `sagemath-znpoly` (see #30371 setup.py for which files need zn_poly)
- 'sage/modular/modsym/p1list.pyx',
- 'sage/modular/pollack_stevens/dist.pyx',
- 'sage/rings/fraction_field_FpT.pyx',
- 'sage/rings/polynomial/polynomial_zmod_flint.pyx',
- 'sage/schemes/hyperelliptic_curves/hypellfrob.pyx',
-- `sage-mari` (also requiring pbori and pbori-groebner):
+- `sagemath-mari` (also requiring pbori and pbori-groebner):
- 'sage/matrix/matrix_gf2e_dense.pyx',
- 'sage/matrix/matrix_integer_dense.pyx',
- 'sage/matrix/matrix_mod2_dense.pyx',
@@ -87,9 +89,7 @@
- 'sage/modules/vector_mod2_dense.pyx',
- 'sage/rings/polynomial/pbori/pbori.pyx',
- 'sage/rings/polynomial/polynomial_gf2x.pyx'
-- `sage-magma`: requires sage-ecl
-- `sage-giac`: 'sage/libs/giac/giac.pyx'
-- `sage-homfly`: 'sage/libs/homfly.pyx'
+- `sagemath-homfly`: 'sage/libs/homfly.pyx'
This is preparation for Meta-ticket #29705 (Modularization) and #30371.
Dependencies: #31031
Setting new milestone based on a cursory review of ticket status, priority, and last modification date.
Description changed:
---
+++
@@ -4,11 +4,7 @@
List of distributions:
-- `sagemath-giac` (ex `giacpy_sage` in `sage.libs.giac` + dependency on `libgiac`)
- - sage/libs/giac/giac.pyx
-- `sagemath-brial` (ex `sage-brial` in `sage.rings.polynomial.pbori` + `sage.libs.polybori`, `sage.crypto.boolean_function`)
-- `sagemath-ntl`
-- `sagemath-flint-arb-e_antic`
+- **sagemath-flint-arb**
- 'sage/libs/arb/arb_version.pyx',
- 'sage/libs/arb/arith.pyx',
- 'sage/matrix/matrix_complex_ball_dense.pyx',
@@ -16,6 +12,14 @@
- 'sage/rings/number_field/number_field_element_quadratic.pyx',
- 'sage/rings/polynomial/polynomial_complex_arb.pyx',
- 'sage/rings/real_arb.pyx'
+ - etc.
+- **sagemath-homfly**: 'sage/libs/homfly.pyx'
+- **sagemath-giac** (ex `giacpy_sage` in `sage.libs.giac` + dependency on `libgiac`)
+ - sage/libs/giac/giac.pyx
+
+
+- `sagemath-brial` (ex `sage-brial` in `sage.rings.polynomial.pbori` + `sage.libs.polybori`, `sage.crypto.boolean_function`)
+- `sagemath-ntl`
- `sagemath-ecl` (`sage.libs.ecl`)
- `sagemath-maxima`: requires sage-ecl
- `sagemath-singular`: (some of these files actually may be better put in the pynac distribution)
@@ -74,8 +78,7 @@
- 'sage/matrix/matrix_modn_dense_double.pyx',
- 'sage/matrix/matrix_modn_dense_float.pyx',
- 'sage/matrix/matrix_modn_sparse.pyx'
-- `sagemath-ratpoints`: 'sage/libs/ratpoints.pyx', 'sage/schemes/elliptic_curves/descent_two_isogeny.pyx'
-- `sagemath-znpoly` (see #30371 setup.py for which files need zn_poly)
+- `sagemath-znpoly` (subject to removal in #32841?)
- 'sage/modular/modsym/p1list.pyx',
- 'sage/modular/pollack_stevens/dist.pyx',
- 'sage/rings/fraction_field_FpT.pyx',
@@ -89,7 +92,6 @@
- 'sage/modules/vector_mod2_dense.pyx',
- 'sage/rings/polynomial/pbori/pbori.pyx',
- 'sage/rings/polynomial/polynomial_gf2x.pyx'
-- `sagemath-homfly`: 'sage/libs/homfly.pyx'
This is preparation for Meta-ticket #29705 (Modularization) and #30371.
New commits:
3f3bfef | Mark files # sage_setup: distribution = sagemath-flint-arb |
Description changed:
---
+++
@@ -16,6 +16,31 @@
- **sagemath-homfly**: 'sage/libs/homfly.pyx'
- **sagemath-giac** (ex `giacpy_sage` in `sage.libs.giac` + dependency on `libgiac`)
- sage/libs/giac/giac.pyx
+- **sagemath-gap**:
+ - 'sage/coding/codecan/codecan.pyx',
+ - 'sage/combinat/enumeration_mod_permgroup.pyx',
+ - 'sage/combinat/root_system/reflection_group_c.pyx',
+ - 'sage/combinat/root_system/reflection_group_element.pyx',
+ - 'sage/graphs/spanning_tree.pyx',
+ - 'sage/groups/libgap_wrapper.pyx',
+ - 'sage/groups/matrix_gps/group_element.pyx',
+ - 'sage/groups/perm_gps/permgroup_element.pyx',
+ - 'sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx',
+ - 'sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx',
+ - 'sage/groups/perm_gps/partn_ref/data_structures.pyx',
+ - 'sage/groups/perm_gps/partn_ref/double_coset.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_binary.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_graphs.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_lists.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_matrices.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_python.pyx',
+ - 'sage/groups/perm_gps/partn_ref/refinement_sets.pyx',
+ - 'sage/groups/perm_gps/partn_ref2/refinement_generic.pyx',
+ - 'sage/libs/gap/element.pyx',
+ - 'sage/libs/gap/libgap.pyx',
+ - 'sage/libs/gap/util.pyx',
+ - 'sage/matrix/matrix_gap.pyx',
+ - 'sage/sets/disjoint_set.pyx'
- `sagemath-brial` (ex `sage-brial` in `sage.rings.polynomial.pbori` + `sage.libs.polybori`, `sage.crypto.boolean_function`)
@@ -47,31 +72,6 @@
- 'sage/symbolic/series.pyx',
- 'sage/symbolic/substitution_map.pyx',
- `sagemath-pynac`
-- `sagemath-gap`:
- - 'sage/coding/codecan/codecan.pyx',
- - 'sage/combinat/enumeration_mod_permgroup.pyx',
- - 'sage/combinat/root_system/reflection_group_c.pyx',
- - 'sage/combinat/root_system/reflection_group_element.pyx',
- - 'sage/graphs/spanning_tree.pyx',
- - 'sage/groups/libgap_wrapper.pyx',
- - 'sage/groups/matrix_gps/group_element.pyx',
- - 'sage/groups/perm_gps/permgroup_element.pyx',
- - 'sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx',
- - 'sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx',
- - 'sage/groups/perm_gps/partn_ref/data_structures.pyx',
- - 'sage/groups/perm_gps/partn_ref/double_coset.pyx',
- - 'sage/groups/perm_gps/partn_ref/refinement_binary.pyx',
- - 'sage/groups/perm_gps/partn_ref/refinement_graphs.pyx',
- - 'sage/groups/perm_gps/partn_ref/refinement_lists.pyx',
- - 'sage/groups/perm_gps/partn_ref/refinement_matrices.pyx',
- - 'sage/groups/perm_gps/partn_ref/refinement_python.pyx',
- - 'sage/groups/perm_gps/partn_ref/refinement_sets.pyx',
- - 'sage/groups/perm_gps/partn_ref2/refinement_generic.pyx',
- - 'sage/libs/gap/element.pyx',
- - 'sage/libs/gap/libgap.pyx',
- - 'sage/libs/gap/util.pyx',
- - 'sage/matrix/matrix_gap.pyx',
- - 'sage/sets/disjoint_set.pyx'
- `sagemath-linbox`:
- 'sage/libs/linbox/linbox_flint_interface.pyx',
- 'sage/matrix/matrix_integer_sparse.pyx',
Description changed:
---
+++
@@ -42,6 +42,7 @@
- 'sage/matrix/matrix_gap.pyx',
- 'sage/sets/disjoint_set.pyx'
+In follow-up tickets:
- `sagemath-brial` (ex `sage-brial` in `sage.rings.polynomial.pbori` + `sage.libs.polybori`, `sage.crypto.boolean_function`)
- `sagemath-ntl`
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
619c8c8 | Mark files # sage_setup: distribution = sagemath-flint-arb |
71b5921 | Mark files # sage_setup: distribution = sagemath-homfly |
fe08ab2 | Mark files # sage_setup: distribution = sagemath-giac |
640aa74 | Mark files # sage_setup: distribution = sagemath-gap |
d1ef655 | Do not mark *.h files with # sage-setup: distribution |
8c46aab | pkgs/sagemath-gap, build/pkgs/sagemath_gap: New |
6db9b01 | pkgs/sagemath-homfly, build/pkgs/sagemath_homfly: New |
390ebb8 | build/pkgs/sagemath_{gap,homfly}/spkg-install: Symlink to sagemath_objects spkg-install |
9f26fb8 | pkgs/sagemath-gap/MANIFEST.in: Add VERSION.txt |
Branch pushed to git repo; I updated commit sha1. New commits:
13f030c | src/sage/libs/gap: Add # sage_setup: distribution to more files |
a73b489 | Add src/sage/**/all__sagemath_gap.py |
30112b2 | pkgs/sagemath-gap: WIP setup.py |
cae814a | src/sage/groups/perm_gps/partn_ref/data_structures.pyx: Remove cimport from sage.libs.flint (only used by doctesting helper functions) |
5fda124 | Add src/sage/**/all__sagemath_gap.py |
a2feea0 | Add src/sage/**/all__sagemath_gap.py |
665d01c | pkgs/sagemath-gap/tox.ini: New |
963fa77 | pkgs/sagemath-gap/MANIFEST.in: Add deps for sage/coding/codecan |
Description changed:
---
+++
@@ -41,6 +41,11 @@
- 'sage/libs/gap/util.pyx',
- 'sage/matrix/matrix_gap.pyx',
- 'sage/sets/disjoint_set.pyx'
+
+To test:
+
+- `make SAGE_WHEELS=yes SAGE_CHECK=yes sagemath_gap`
+
In follow-up tickets:
Branch pushed to git repo; I updated commit sha1. New commits:
96b863c | pkgs/sagemath-gap: Update description |
Branch pushed to git repo; I updated commit sha1. New commits:
b73a929 | build/pkgs/sagemath_gap/dependencies: Update |
Branch pushed to git repo; I updated commit sha1. New commits:
513fc3f | Add tox.ini |
Branch pushed to git repo; I updated commit sha1. New commits:
0f198ca | Makefile: Add to PYPI_WHEEL_PACKAGES |
Basically, we are making all external libraries optional, except for a minimal set of "core" libraries such as
cysignals
andgmpy2
(see #29865).(from #30371): See #29705 under the items titled "Deploy mildly modularized distributions", "Further modularization" for a sketch of such distributions. Basically, one distribution for each major C/C++ library (such as
sagemath-ntl
) - but some libraries come in packs that would not make much sense to separate (such assagemath-flint-arb-e_antic
).List of distributions:
giacpy_sage
insage.libs.giac
+ dependency onlibgiac
)To test:
make SAGE_WHEELS=yes SAGE_CHECK=yes sagemath_flint_arb
make SAGE_WHEELS=yes SAGE_CHECK=yes sagemath_gap
make SAGE_WHEELS=yes SAGE_CHECK=yes sagemath_giac
make SAGE_WHEELS=yes SAGE_CHECK=yes sagemath_homfly
In follow-up tickets:
sagemath-brial
(exsage-brial
insage.rings.polynomial.pbori
+sage.libs.polybori
,sage.crypto.boolean_function
)sagemath-ntl
sagemath-ecl
(sage.libs.ecl
)sagemath-maxima
: requires sage-eclsagemath-singular
: (some of these files actually may be better put in the pynac distribution)sagemath-pynac
sagemath-linbox
:sagemath-znpoly
(subject to removal in #32841?)sagemath-mari
(also requiring pbori and pbori-groebner):This is preparation for Meta-ticket #29705 (Modularization) and #30371.
Depends on #31031 Depends on #34855 Depends on #34839
CC: @tobiasdiez @dimpase
Component: refactoring
Keywords: sd111
Author: Matthias Koeppe
Reviewer: Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/30666