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

Move list of scripts and package_data from setup.py to setup.cfg #31386

Closed
mkoeppe opened this issue Feb 12, 2021 · 29 comments
Closed

Move list of scripts and package_data from setup.py to setup.cfg #31386

mkoeppe opened this issue Feb 12, 2021 · 29 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Feb 12, 2021

This will allow us to reduce the duplication between src/setup.py (which is currently used when ./configure --enable-editable is in use) and build/pkgs/sagelib/src/setup.py.

We also update the developer's guide on the topic of package_data.

Depends on #32899

CC: @kiwifb @dimpase @kliem @jhpalmieri @kwankyu @tobiasdiez

Component: build

Author: Matthias Koeppe

Branch/Commit: 81e9c9a

Reviewer: John Palmieri

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

@mkoeppe mkoeppe added this to the sage-9.3 milestone Feb 12, 2021
@mkoeppe mkoeppe changed the title Move list of scripts from setup.py to setup.cfg Move list of scripts and package_data from setup.py to setup.cfg Feb 12, 2021
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Feb 13, 2021

Changed dependencies from #31377 to #31377, #30913

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Feb 13, 2021
@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 10, 2021

comment:7

reduced scope of the ticket

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 18, 2021

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 18, 2021

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

4f827d0src/doc/en/developer/coding_basics.rst: Update section on SAGE_EXTCODE

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 18, 2021

Commit: 4f827d0

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 18, 2021

Author: Matthias Koeppe

@mkoeppe

This comment has been minimized.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 18, 2021

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

2807d1fsrc/setup.cfg.m4: Fix up

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 18, 2021

Changed commit from 4f827d0 to 2807d1f

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 18, 2021

Changed commit from 2807d1f to 43ca790

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 18, 2021

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

43ca790src/setup.cfg.m4: Fix syntax

@jhpalmieri
Copy link
Member

comment:15

The documentation doesn't build for me; the log file says

make[4]: warning: -jN forced in submake: disabling jobserver mode.
Traceback (most recent call last):
  File "/usr/local/Cellar/python@3.9/3.9.8/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 188, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/local/Cellar/python@3.9/3.9.8/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 147, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/local/Cellar/python@3.9/3.9.8/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 111, in _get_module_details
    __import__(pkg_name)
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage_docbuild/__init__.py", line 57, in <module>
    import sage.all
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/all.py", line 111, in <module>
    from sage.misc.all       import *         # takes a while
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/misc/all.py", line 90, in <module>
    from .functional import (additive_order,
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/misc/functional.py", line 26, in <module>
    from sage.rings.complex_double import CDF
  File "sage/rings/complex_double.pyx", line 113, in init sage.rings.complex_double (build/cythonized/sage/rings/complex_double.c:24979)
  File "sage/rings/complex_mpfr.pyx", line 210, in sage.rings.complex_mpfr.ComplexField (build/cythonized/sage/rings/complex_mpfr.c:5570)
  File "sage/rings/complex_mpfr.pyx", line 309, in sage.rings.complex_mpfr.ComplexField_class.__init__ (build/cythonized/sage/rings/complex_mpfr.c:5934)
  File "sage/rings/complex_mpfr.pyx", line 3390, in sage.rings.complex_mpfr.RRtoCC.__init__ (build/cythonized/sage/rings/complex_mpfr.c:29162)
  File "sage/categories/map.pyx", line 125, in sage.categories.map.Map.__init__ (build/cythonized/sage/categories/map.c:3623)
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/categories/homset.py", line 395, in Hom
    H = Hom(X, Y, category, check=False)
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/categories/homset.py", line 422, in Hom
    H = X._Hom_(Y, category)
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/categories/rings.py", line 422, in _Hom_
    from sage.rings.homset import RingHomset
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/homset.py", line 18, in <module>
    from . import quotient_ring
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/quotient_ring.py", line 113, in <module>
    import sage.rings.polynomial.multi_polynomial_ideal
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 235, in <module>
    from sage.interfaces.all import (singular as singular_default,
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/interfaces/all.py", line 23, in <module>
    from .maxima import maxima, Maxima
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/interfaces/maxima.py", line 1248, in <module>
    maxima = Maxima(init_code = ['display2d : false',
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/interfaces/maxima.py", line 541, in __init__
    raise RuntimeError('You must get the file sage-maxima.lisp')
RuntimeError: You must get the file sage-maxima.lisp
make -j6 doc-inventory--
make[5]: warning: -jN forced in submake: disabling jobserver mode.
cd /Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6 && ./sage --docbuild --no-pdf-links .o inventory 
Traceback (most recent call last):
  File "/usr/local/Cellar/python@3.9/3.9.8/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 188, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/local/Cellar/python@3.9/3.9.8/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 147, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/local/Cellar/python@3.9/3.9.8/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 111, in _get_module_details
    __import__(pkg_name)
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage_docbuild/__init__.py", line 57, in <module>
    import sage.all
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/all.py", line 111, in <module>
    from sage.misc.all       import *         # takes a while
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/misc/all.py", line 90, in <module>
    from .functional import (additive_order,
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/misc/functional.py", line 26, in <module>
    from sage.rings.complex_double import CDF
  File "sage/rings/complex_double.pyx", line 113, in init sage.rings.complex_double (build/cythonized/sage/rings/complex_double.c:24979)
  File "sage/rings/complex_mpfr.pyx", line 210, in sage.rings.complex_mpfr.ComplexField (build/cythonized/sage/rings/complex_mpfr.c:5570)
  File "sage/rings/complex_mpfr.pyx", line 309, in sage.rings.complex_mpfr.ComplexField_class.__init__ (build/cythonized/sage/rings/complex_mpfr.c:5934)
  File "sage/rings/complex_mpfr.pyx", line 3390, in sage.rings.complex_mpfr.RRtoCC.__init__ (build/cythonized/sage/rings/complex_mpfr.c:29162)
  File "sage/categories/map.pyx", line 125, in sage.categories.map.Map.__init__ (build/cythonized/sage/categories/map.c:3623)
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/categories/homset.py", line 395, in Hom
    H = Hom(X, Y, category, check=False)
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/categories/homset.py", line 422, in Hom
    H = X._Hom_(Y, category)
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/categories/rings.py", line 422, in _Hom_
    from sage.rings.homset import RingHomset
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/homset.py", line 18, in <module>
    from . import quotient_ring
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/quotient_ring.py", line 113, in <module>
    import sage.rings.polynomial.multi_polynomial_ideal
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 235, in <module>
    from sage.interfaces.all import (singular as singular_default,
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/interfaces/all.py", line 23, in <module>
    from .maxima import maxima, Maxima
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/interfaces/maxima.py", line 1248, in <module>
    maxima = Maxima(init_code = ['display2d : false',
  File "/Users/palmieri/Desktop/Sage/sage_builds/TESTING/sage-9.5.beta6/local/var/lib/sage/venv-python3.9/lib/python3.9/site-packages/sage/interfaces/maxima.py", line 541, in __init__
    raise RuntimeError('You must get the file sage-maxima.lisp')
RuntimeError: You must get the file sage-maxima.lisp
make[5]: *** [doc-inventory--.o] Error 1
make[4]: *** [doc-inventory-reference] Error 2

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 20, 2021

comment:16

I think you may have to run ./bootstrap manually

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 26, 2021

Changed dependencies from #31377, #30913 to #31377, #30913, #32899

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 26, 2021

Changed commit from 43ca790 to 81e9c9a

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 26, 2021

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

e5ad518pkgs/sagemath-standard/setup.py: Do not depend on sage_setup for sdist or egg_info
821d16esrc/doc/en/developer/packaging_sage_library.rst: Add bootstrap to testing instructions to avoid the trap of #32868
77c957fsrc/doc/en/developer/packaging_sage_library.rst: Put hierarchy section one level higher
9375ef8pkgs/sagemath-standard/tox.ini: Use SAGE_VENV or venv symlink to find wheels
c6fc111Prettier diagram
7d6a44cUse :mod: as markup for packages/modules
f83d424Improve ABC example
817a8d0src/doc/en/developer/packaging_sage_library.rst: More :mod: and :class: markup
b555735src/doc/en/developer/packaging_sage_library.rst: Link to pypi.org and to documentation of packaging metadata
81e9c9aMerge #32899

@dimpase
Copy link
Member

dimpase commented Nov 27, 2021

comment:20

Hmm, aren't setup.cfg outdated? Or YMMV?

@tobiasdiez
Copy link
Contributor

comment:21

I'm also in favor of using Pyproject.toml as much as possible. Setup.cfg will be deprecated eventually. See also pypa/setuptools#1688.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 27, 2021

comment:22

Replying to @dimpase:

Hmm, aren't setup.cfg outdated?

Nope. Part of current best practices when using setuptools.

@jhpalmieri
Copy link
Member

comment:23

[edit: sorry, forgot to run ./bootstrap again.]

@jhpalmieri
Copy link
Member

comment:24

Are there other concerns here? This works for me.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 12, 2021

Changed dependencies from #31377, #30913, #32899 to #32899

@jhpalmieri
Copy link
Member

Reviewer: John Palmieri

@jhpalmieri
Copy link
Member

comment:26

Let's merge this. Everyone should feel free to add their name to the list of reviewers.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 14, 2021

comment:27

Thanks!

@vbraun
Copy link
Member

vbraun commented Dec 23, 2021

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

5 participants