Opened 2 years ago

Last modified 4 weeks ago

#29864 new enhancement

Modularization of sagelib: Create modular packages sage-core, sage-tdlib — at Version 15

Reported by: Matthias Köppe Owned by:
Priority: major Milestone: sage-9.8
Component: build Keywords: sd111
Cc: Tobias Diez Merged in:
Authors: Matthias Koeppe Reviewers:
Report Upstream: N/A Work issues: rebase; create sage-core; don't change sagelib
Branch: u/mkoeppe/modularization-sage-tdlib (Commits, GitHub, GitLab) Commit: 16a9b2e757be1505ad3c7d714175a24757082420
Dependencies: #28925, #29500, #29847 Stopgaps:

Status badges

Description (last modified by Matthias Köppe)

The new package sage-tdlib represents the old OptionalExtension sage.graphs.graph_decompositions.tdlib (building upon #29701, #28925). We use it as an example package for the modularization.

See build/pkgs/sage_tdlib/spkg-install for an overview of the intended implementation targeting Sage 9.3.

sage-core is a version of sagelib - as of this ticket, consisting of everything in sagelib except for sage.graphs.graph_decompositions.tdlib.

sage-core and sage_tdlib do not use the incremental install mechanism of sagelib (sage_setup.command.sage_install.sage_install_and_clean). They use a simple setuptools build system.

Ideally, they would use a shared src/setup.py and provide the distribution info via their own setup.cfg.

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

Change History (15)

comment:1 Changed 2 years ago by Matthias Köppe

Branch: u/mkoeppe/modularization-sage-tdlib

comment:2 Changed 2 years ago by Matthias Köppe

Commit: 2ccf6b72ab85e3818053608514350b6049a9ca31
Milestone: sage-9.2sage-9.3

Last 10 new commits:

7dd469fWIP: Add sage_tdlib package, use symlinks for sagelib package
24e9b30build/pkgs/sage_tdlib/src/MANIFEST.in: New
9b59435fixup symlinks
c3593b2build/pkgs/sage_tdlib/src/sage_setup: Remove, we use the installed one
2612091Use setup.py install --single-version-externally-managed
458d851build/pkgs/sage_tdlib/spkg-src: New
5d4e8e7build/pkgs/sage_tdlib/dependencies: Add sagelib, python toolchain
7042564build/pkgs/sagelib/spkg-src: New
90b33d8Install sagelib, sage_tdlib via sdist defined by MANIFEST.in
2ccf6b7Merge tag '9.2.beta1' into t/29705/META-modularize-sagelib

comment:3 Changed 2 years ago by Matthias Köppe

Work issues: rebase

comment:4 Changed 2 years ago by Matthias Köppe

Work issues: rebaserebase; create sage-core; don't change sagelib

comment:5 Changed 2 years ago by Matthias Köppe

Dependencies: #29702, #29701, #28197, #28925, #29803#28925
Description: modified (diff)

comment:6 Changed 2 years ago by Matthias Köppe

Description: modified (diff)
Summary: Modularization of sagelib: Break out a separate package sage-tdlibModularization of sagelib: Create modular packages sage-core, sage-tdlib

comment:7 Changed 2 years ago by Matthias Köppe

Cc: Tobias Diez added
Dependencies: #28925#28925, #29847

comment:8 Changed 2 years ago by Matthias Köppe

Description: modified (diff)

comment:9 Changed 2 years ago by Tobias Diez

Just for clarification, was is sage-lib and what sage-core?

comment:10 Changed 2 years ago by git

Commit: 2ccf6b72ab85e3818053608514350b6049a9ca31bf1c01196ad763691e8afc8f454720950f3f6fda

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

e8d1a23src/setup.py: from setuptools import setup
c99dab5Add src/setup.cfg
67189baWIP: Add sage_tdlib package, use symlinks for sagelib package
5d85487build/pkgs/sage_tdlib/src/MANIFEST.in: New
bf5dddcfixup symlinks
6d5e4f5build/pkgs/sage_tdlib/src/sage_setup: Remove, we use the installed one
4cd5176Use setup.py install --single-version-externally-managed
577f338build/pkgs/sage_tdlib/spkg-src: New
8b972d7build/pkgs/sage_tdlib/dependencies: Add sagelib, python toolchain
bf1c011Install sagelib, sage_tdlib via sdist defined by MANIFEST.in

comment:11 Changed 2 years ago by git

Commit: bf1c01196ad763691e8afc8f454720950f3f6fda59a33def20d5fb672b039f1513ae2643fe315ce5

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

2e61adasage.numerical.backends: Make it a namespace package by removing __init__.py (which was empty)
26b1ca0Mark src and src/sage/ext_data as directories that are not namespace packages
a733af5sage_setup.find.find_python_sources: Handle native namespace packages, 'nonamespace' files
c08c511is_package_or_namespace_package_dir: New, recognize namespace packages by file 'namespace', monkeypatch into Cython
4407e5esage_setup.command.sage_install.sage_install: Rename to sage_install_and_clean, update use it in src/setup.py; refactor through new class sage_install
a13c126Make sage.graphs, sage.matrix, sage.libs, sage.interfaces namespace packages
a967acaWIP
c746965sage_setup/command/sage_install.py: WIP: Disable cleaning
6ba4212WIP: Add sage_tdlib package, use symlinks for sagelib package
59a33deInstall sagelib, sage_tdlib via sdist defined by MANIFEST.in

comment:12 Changed 2 years ago by Matthias Köppe

Dependencies: #28925, #29847#28925, #29500, #29847
Description: modified (diff)

comment:13 Changed 2 years ago by git

Commit: 59a33def20d5fb672b039f1513ae2643fe315ce516a9b2e757be1505ad3c7d714175a24757082420

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

a315ba6Merge branch 't/28925/modify_find_python_sources__clean_stale_files_to_support_modularization_of_sagelib_by_native_namespace_packages__pep_420_' into t/29864/modularization-sage-tdlib
4a30688WIP: Add sage_tdlib package, use symlinks for sagelib package
16a9b2eInstall sagelib, sage_tdlib via sdist defined by MANIFEST.in

comment:14 Changed 2 years ago by Matthias Köppe

Rebased on top of #28925, cleaned out a lot of old code.

Next step: Finish #28925 (see "work issues" there).

comment:15 Changed 2 years ago by Matthias Köppe

Description: modified (diff)
Note: See TracTickets for help on using tickets.