Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Modularization of sagelib: Break out a separate package sagemath-meataxe #30151

Closed
mkoeppe opened this issue Jul 15, 2020 · 61 comments
Closed

Modularization of sagelib: Break out a separate package sagemath-meataxe #30151

mkoeppe opened this issue Jul 15, 2020 · 61 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Jul 15, 2020

... in analogy of #29864 (sage-tdlib).

To try: make sagemath_meataxe

(or ./configure --enable-sagemath_meataxe && make build)

This is part of #29705: Meta-ticket: Modularize sagelib into separate distributions (distutils packages)

Depends on #34346

CC: @simon-king-jena @kiwifb @jhpalmieri @dimpase

Component: packages: optional

Keywords: sd111

Work Issues: Rebase, rename "sage-..." -> "sagemath-..."

Branch/Commit: u/mkoeppe/modularization_of_sagelib__break_out_a_separate_package_sage_meataxe @ ebe1dd6

Reviewer: Dima Pasechnik

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

@mkoeppe mkoeppe added this to the sage-9.3 milestone Jul 15, 2020
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 16, 2020

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 16, 2020

Commit: b040746

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 16, 2020

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

16c60casrc/setup.py: Remove meataxe - now taken care of by package sage_meataxe
b040746fixup

@simon-king-jena
Copy link
Member

comment:3

Can you elaborate on what is supposed to be done to use meataxe --- both as a C library, as collection of executables, and as optional Cython extension module?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 16, 2020

comment:4

spkg meataxe stays as is. It installs the C library and executables. No dependency on anything from Sage.

spkg sagelib will no longer conditionally build the Cython extension module.

Instead, the new spkg sage_meataxe will build the Cython extension module. It declares both sagelib and meataxe as a dependency.

sage_meataxe, in the implementation of this ticket, does not have a source tarball (note there is no checksums.ini). Instead, it is a "script" package, whose sources lie in build/pkgs/sage_meataxe/src. It has the structure of a Python package (distribution), with setup.py doing the build and installation. The actual Cython sources remain in the src/sage tree (using symlinks). (It is possible to build a pip-installable source distribution tarball as well, using the spkg-src script. Eventually, we will upload it to PyPI.)

@simon-king-jena
Copy link
Member

comment:5

Replying to @mkoeppe:

spkg sagelib will no longer conditionally build the Cython extension module.

Instead, the new spkg sage_meataxe will build the Cython extension module. It declares both sagelib and meataxe as a dependency.

So, in order to use it, one has to do make sage_meataxe, right? It would automatically install its dependency meataxe, would build the corresponding Cython extension module, AND would also build the documentation of the Cython extension module? And sage -testall would run the doctests from the corresponding Cython extension module if and only if sage_meataxe is installed, so that there is no need to mark all its tests as "optional"?

If the documentation and test suite would be taken care of, it would indeed be very helpful.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 16, 2020

comment:6

Replying to @simon-king-jena:

Replying to @mkoeppe:

spkg sagelib will no longer conditionally build the Cython extension module.

Instead, the new spkg sage_meataxe will build the Cython extension module. It declares both sagelib and meataxe as a dependency.

So, in order to use it, one has to do make sage_meataxe, right? It would automatically install its dependency meataxe, would build the corresponding Cython extension module, AND would also build the documentation of the Cython extension module?

Yes.

And sage -testall would run the doctests from the corresponding Cython extension module if and only if sage_meataxe is installed, so that there is no need to mark all its tests as "optional"?

Yes, I would hope so. I have just created #30778 for this idea.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

Changed commit from b040746 to 1e03fef

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

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

b060462sage_setup.find.find_python_sources: Handle native namespace packages, 'nonamespace' files
d42aa12is_package_or_namespace_package_dir: New, recognize namespace packages by file 'namespace', monkeypatch into Cython
29ca24bMake sage.graphs, sage.matrix, sage.libs, sage.interfaces namespace packages
1957acdsrc/sage_setup/clean.py: Update comment
8b37214WIP
92f1145sage_install_and_clean: If all_distributions is a list, do not clean files that do not belong to this list
44a4456src/sage_setup/command/sage_install.py: Also handle modules in namespace packages
706bf59Merge branch 't/28925/modify_find_python_sources__clean_stale_files_to_support_modularization_of_sagelib_by_native_namespace_packages__pep_420_' into t/30151/modularization_of_sagelib__break_out_a_separate_package_sage_meataxe
f096870build/pkgs/sage_meataxe: New
1e03fefsrc/setup.py: Remove meataxe - now taken care of by package sage_meataxe

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

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

ad9402fsage_setup.command.sage_install: Fixup: Remove cleaning code (moved to sage_install_and_clean)
88455dcMerge branch 't/30780/sage_setup__separate_installing_and_cleaning' into t/28925/modify_find_python_sources__clean_stale_files_to_support_modularization_of_sagelib_by_native_namespace_packages__pep_420_
aacec42Merge branch 't/28925/modify_find_python_sources__clean_stale_files_to_support_modularization_of_sagelib_by_native_namespace_packages__pep_420_' into t/30151/modularization_of_sagelib__break_out_a_separate_package_sage_meataxe

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

Changed commit from 1e03fef to aacec42

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

Changed commit from aacec42 to ac10389

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

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

800f740Merge branch 't/28925/modify_find_python_sources__clean_stale_files_to_support_modularization_of_sagelib_by_native_namespace_packages__pep_420_' into t/30151/modularization_of_sagelib__break_out_a_separate_package_sage_meataxe
3823197build/pkgs/sage_meataxe: New
ac10389build/pkgs/sagelib/src/setup.py: Remove meataxe - now taken care of by package sage_meataxe

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

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

12b22d9fixup

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

Changed commit from ac10389 to 12b22d9

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

Changed commit from 12b22d9 to 500635d

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

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

500635dfixup

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

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

3d3cc42build/pkgs/sage_meataxe/spkg-install: Install via bdist_wheel

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

Changed commit from 500635d to 3d3cc42

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

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

99f3cc7build/pkgs/sage_meataxe/src/setup.py: Set built_distributions
a9933b6sage_build_cython: Pass built_distributions to find_extra_files
10e2432Merge branch 't/28925/modify_find_python_sources__clean_stale_files_to_support_modularization_of_sagelib_by_native_namespace_packages__pep_420_' into t/30151/modularization_of_sagelib__break_out_a_separate_package_sage_meataxe

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2020

Changed commit from 3d3cc42 to 10e2432

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 17, 2020

comment:14

The installation seems to work, but Sage cannot start because of a circular import related from sage.matrix.args. This needs a bit more work.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 17, 2020

Author: Matthias Koeppe

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@simon-king-jena
Copy link
Member

Changed dependencies from #28925 to #28925 #28711

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 9, 2020

Changed work issues from Rebase to Rebase, rename "sage-..." -> "sagemath-..."

@mkoeppe mkoeppe changed the title Modularization of sagelib: Break out a separate package sage-meataxe Modularization of sagelib: Break out a separate package sagemath-meataxe Dec 9, 2020
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 9, 2020

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

a6e8447Merge tag '9.3.beta3' into t/28925/modify_find_python_sources__clean_stale_files_to_support_modularization_of_sagelib_by_native_namespace_packages__pep_420_
ebe1dd6Merge branch 't/28925/modify_find_python_sources__clean_stale_files_to_support_modularization_of_sagelib_by_native_namespace_packages__pep_420_' into t/30151/modularization_of_sagelib__break_out_a_separate_package_sage_meataxe

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Dec 9, 2020

Changed commit from 7cedb3d to ebe1dd6

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Feb 13, 2021

comment:36

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Feb 13, 2021
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jul 19, 2021

comment:37

Setting a new milestone for this ticket based on a cursory review.

@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 14, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 Apr 2, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Aug 6, 2022
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 16, 2022

Changed dependencies from #28925 to #34346

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 16, 2022

Changed author from Matthias Koeppe to none

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 16, 2022

comment:41

This is now done in #34346.

@mkoeppe mkoeppe removed this from the sage-9.8 milestone Nov 16, 2022
@dimpase
Copy link
Member

dimpase commented Nov 16, 2022

Reviewer: Dima Pasechnik

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants