Opened 4 years ago
Closed 2 years ago
#25828 closed enhancement (invalid)
Replace OptionalExtension(...., package='bliss') by condition=BlissLibrary().is_present()
Reported by:  Timo Kaufmann  Owned by:  

Priority:  major  Milestone:  sageduplicate/invalid/wontfix 
Component:  build  Keywords:  
Cc:  Jeroen Demeyer, Antonio Rojas, François Bissey, Dima Pasechnik, Erik Bray, Isuru Fernando  Merged in:  
Authors:  Reviewers:  Dima Pasechnik  
Report Upstream:  N/A  Work issues:  
Branch:  u/mkoeppe/optionalextensionfeatures (Commits, GitHub, GitLab)  Commit:  b5e205f8abccc2dd933bad59045c9ab174b6c3d7 
Dependencies:  Stopgaps: 
Description (last modified by )
The last remaining (after #25825) piece of code that uses is_package_installed
is OptionalExtension
. Since it only provides the package
kwarg for convenience, I thought it would make sense to just move to condition
and add feature checks to use in module_list.py
.
Moreover, OptionalExtension(..., package=....)
does not take system packages checked for by spkgconfigure.m4
(#27330) into account.
setup.py build_cython
is extended by an option requirefeatures
for the benefit of distribution builders who want to ensure a predictable build. For example:
./sage sh c "cd src && sagepython u setup.py build_cython requirefeatures=sage.features.databases.DatabaseCremona" .... sage.features.FeatureNotPresentError: Cremona's database of elliptic curves is not available. 'cremona/cremona.db' not found in any of ['/Users/mkoeppe/s/sage/sagerebasing/local/share'] To install Cremona's database of elliptic curves you can try to run 'sage i database_cremona_ellcurve'. Further installation instructions might be available at https://github.com/JohnCremona/ecdata.
On the branch is one module for which a feature test is already available (bliss).
See also:
Change History (49)
comment:1 Changed 4 years ago by
Cc:  Jeroen Demeyer added 

comment:3 Changed 4 years ago by
Cc:  Antonio Rojas added 

comment:4 followup: 5 Changed 4 years ago by
I think #2 (two steps) would probably be the cleaner solution. Creating and then deleting a stub during installation would be pretty hacky.
I tried implementing that but having basically no experience with distutils I'm confused. ext_modules
is imported from module_list
but then never used. Instead some magic self.distribution.ext_modules
that appears out of nowhere is used.
Do you think #1 is feasible?
comment:5 Changed 4 years ago by
Replying to ghtimokau:
ext_modules
is imported frommodule_list
but then never used.
Please read the very last line of src/setup.py
comment:6 Changed 4 years ago by
Oh right, thanks.
So ext_modules
is a distutils concept and they expect one single list of modules? If that is the case some pretty ugly hacks would probably be needed to cythonize the extensions in two sets.
comment:7 Changed 3 years ago by
Milestone:  sage8.3 → sage9.0 

I'd suggest to use #28791 (Implement Feature without using sage.misc.cachefunc, sage.structure.unique_representation)  I have an implementation that does the caching by hand and implements a TrivialUniqueRepresentation
in a few lines to remove the dependencies.
comment:8 Changed 3 years ago by
When implementing this ticket, one should watch out to preserve what was intended in #21288.
comment:9 Changed 3 years ago by
I don't currently have time to work on this, so if anyone wants to take over that would be great.
comment:10 Changed 3 years ago by
Cc:  François Bissey Dima Pasechnik added 

Dependencies:  → #28791 
Description:  modified (diff) 
Summary:  Move OptionalExtension to features → Move OptionalExtension to features, don't pass SAGE_PKGS to src/setup.py 
comment:11 followup: 13 Changed 3 years ago by
A move away to the current use of is_package_installed
is welcome. My only issue with the current implementation example is that it is automagical. The extension is automatically built on detection. Packagers usually prefer enable and then check availability. The default position of sage has always been to build on presence but as a packager I want to be able to have some control mechanism where I can disable the feature even if the necessary bits are present.
This would be a major step in avoid sage's packaging system at build time. Testing time remains an issue as it calls list_packages
but nothing short of an overall of the option system in doctest may be able to get rid of it.
comment:12 Changed 3 years ago by
Branch:  u/ghtimokau/optionalextensionfeatures → u/mkoeppe/optionalextensionfeatures 

comment:13 Changed 3 years ago by
Commit:  ecf8693e20bed10cf377ad8c880f6c892142dc14 → e9738acf59f5cca24513c89c3ff96a8033ebb593 

Replying to fbissey:
My only issue with the current implementation example is that it is automagical. The extension is automatically built on detection. Packagers usually prefer enable and then check availability. The default position of sage has always been to build on presence but as a packager I want to be able to have some control mechanism where I can disable the feature even if the necessary bits are present.
Great point. We could add options to setup.py build
such as requirefeature=sage.features.bliss.BlissLibrary
. If this setup.py build
is invoked with this option but the feature is not found, an error would be signaled.
New commits:
5543692  Replace is_package_installed("bliss") by features

24921a0  Implement Feature without using sage.misc.cachefunc, sage.structure.unique_representation

e9738ac  Merge branch 't/28791/feature_without_using_sage_modules' into t/25828/optionalextensionfeatures

comment:14 Changed 3 years ago by
Commit:  e9738acf59f5cca24513c89c3ff96a8033ebb593 → 4392be34cd78d95e7fdd7999400328639eb2600d 

Branch pushed to git repo; I updated commit sha1. New commits:
4392be3  ./setup.py build_cython requirefeatures=sage.features.bliss.BlissLibrary

comment:15 Changed 3 years ago by
Commit:  4392be34cd78d95e7fdd7999400328639eb2600d → 0575b96f0717dc4daaeb0dff1d1af942b2e0d960 

Branch pushed to git repo; I updated commit sha1. New commits:
0575b96  WIP: Disable bliss Feature test

comment:16 followup: 20 Changed 3 years ago by
As a prototype it looks promising but the option is quite complicated. Even when adding proper documentation of the available features. We may want to have some kind of dictionary matching simple option names to features. But that has to come later when we add more stuff.
comment:17 Changed 3 years ago by
Description:  modified (diff) 

comment:18 Changed 3 years ago by
I would need help from a distutils
expert on how to make the option requirefeatures also usable with build
, rather than just build_cython
.
comment:19 followup: 25 Changed 3 years ago by
In the ticket description I have added an example sage.features.databases.DatabaseCremona
, which is a StaticFile
feature.
Supporting CythonFeature
(such as the previously mentioned sage.features.bliss.BlissLibrary
) needs more work because it pulls in other modules that are not available at build time:
running build_cython Enabling Cython debugging support ************************************************************************ Traceback (most recent call last): File "setup.py", line 887, in <module> ext_modules = ext_modules) File "/Users/mkoeppe/s/sage/sagerebasing/local/lib/python3.7/distutils/core.py", line 148, in setup dist.run_commands() File "/Users/mkoeppe/s/sage/sagerebasing/local/lib/python3.7/distutils/dist.py", line 966, in run_commands self.run_command(cmd) File "/Users/mkoeppe/s/sage/sagerebasing/local/lib/python3.7/distutils/dist.py", line 984, in run_command cmd_obj.ensure_finalized() File "/Users/mkoeppe/s/sage/sagerebasing/local/lib/python3.7/distutils/cmd.py", line 107, in ensure_finalized self.finalize_options() File "setup.py", line 296, in finalize_options feature.require() File "/Users/mkoeppe/s/sage/sagerebasing/src/sage/features/__init__.py", line 189, in require presence = self.is_present() File "/Users/mkoeppe/s/sage/sagerebasing/src/sage/features/__init__.py", line 161, in is_present res = self._is_present() File "/Users/mkoeppe/s/sage/sagerebasing/src/sage/features/__init__.py", line 551, in _is_present with open(tmp_filename(ext=".pyx"), 'w') as pyx: File "/Users/mkoeppe/s/sage/sagerebasing/src/sage/misc/temporary_file.py", line 149, in tmp_filename from sage.misc.misc import SAGE_TMP File "/Users/mkoeppe/s/sage/sagerebasing/src/sage/misc/misc.py", line 51, in <module> import sage.misc.prandom as random File "/Users/mkoeppe/s/sage/sagerebasing/src/sage/misc/prandom.py", line 58, in <module> from sage.misc.randstate import current_randstate ModuleNotFoundError: No module named 'sage.misc.randstate'
comment:20 Changed 3 years ago by
Replying to fbissey:
As a prototype it looks promising but the option is quite complicated. Even when adding proper documentation of the available features. We may want to have some kind of dictionary matching simple option names to features. But that has to come later when we add more stuff.
Yes, I agree, of course we can make it more userfriendly later.
comment:21 Changed 3 years ago by
Cc:  Erik Bray added 

comment:22 Changed 3 years ago by
Description:  modified (diff) 

comment:23 Changed 3 years ago by
Commit:  0575b96f0717dc4daaeb0dff1d1af942b2e0d960 → 4af7b45c8933b831ae53d0a09e9afdd1c8649578 

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
ac45c74  CythonFeature._is_present: Use version of tmp_filename without dependence on SAGE_TMP

8ca2e68  src/sage/misc/misc.py: Move import of sage.misc.prandom to functions that need it

1cee8f1  sage.misc.cython.cython: New options capture_stderr=True, target_dir=None

8b85b4d  sage.misc.cython: Move global imports into the functions where they are used

4a85117  sage.features.CythonFeature._is_present: Use tempfile.mkdtemp for cython test file and build

fdd4ab7  sage.features.CythonFeature._is_present: Improve error reporting in FeatureTestResult

4af7b45  sage.misc.cython.cython: Replace imported sage_makedirs, restore_cwd by local copies

comment:24 Changed 3 years ago by
Authors:  → Matthias Koeppe, Timo Kaufmann 

Status:  new → needs_review 
comment:25 Changed 3 years ago by
Replying to mkoeppe:
Supporting
CythonFeature
(such as the previously mentionedsage.features.bliss.BlissLibrary
) needs more work because it pulls in other modules that are not available at build time
Done
comment:26 Changed 3 years ago by
Description:  modified (diff) 

Summary:  Move OptionalExtension to features, don't pass SAGE_PKGS to src/setup.py → Replace OptionalExtension(...., package='bliss') by condition=BlissLibrary().is_present() 
comment:27 Changed 3 years ago by
Description:  modified (diff) 

comment:28 Changed 3 years ago by
Commit:  4af7b45c8933b831ae53d0a09e9afdd1c8649578 → aa87fab54db20d73d11d3edfe7c9cd30daea1a97 

Branch pushed to git repo; I updated commit sha1. New commits:
aa87fab  Merge tag '9.0.beta10' into t/25828/optionalextensionfeatures

comment:29 Changed 3 years ago by
Milestone:  sage9.0 → sage9.1 

comment:30 Changed 3 years ago by
Description:  modified (diff) 

comment:31 Changed 3 years ago by
Commit:  aa87fab54db20d73d11d3edfe7c9cd30daea1a97 → 2c7108300d66473a2bfeedd5a3fd68a2ac9b9db8 

comment:32 Changed 3 years ago by
Cc:  Isuru Fernando added 

Dependencies:  #28791 
Rebased on top of current beta.
comment:33 Changed 3 years ago by
I get an error while trying to build this branch, from scratch.
Something to do with sage.misc.randstate
not ready at the moment BlissLibrary().is_present()
is called:
... cp /home/scratch2/dimpase/sage/sage/src/ext/gap/sage.g /home/scratch2/dimpase/sage/sage/local/share/sage/ext/gap/sage.g cp /home/scratch2/dimpase/sage/sage/src/ext/gap/joyner/hurwitz_crv_rr_sp.gap /home/scratch2/dimpase/sage/sage/local/share/sage/ext/gap/joyner/hurwitz_crv_rr_sp.gap cp /home/scratch2/dimpase/sage/sage/src/ext/gap/joyner/modular_crv_rr_sp.gap /home/scratch2/dimpase/sage/sage/local/share/sage/ext/gap/joyner/modular_crv_rr_sp.gap if [ z "$SAGE_INSTALL_FETCH_ONLY" ]; then \ cd /home/scratch2/dimpase/sage/sage/src && source bin/sageenv && \ sagelogger p 'time make sage' '/home/scratch2/dimpase/sage/sage/logs/pkgs/sagelib9.1.beta0.log'; \ fi [sagelib9.1.beta0] make[4]: Entering directory '/home/scratch2/dimpase/sage/sage/src' [sagelib9.1.beta0] cd . && export \ [sagelib9.1.beta0] SAGE_ROOT=/doesnotexist \ [sagelib9.1.beta0] SAGE_SRC=/doesnotexist \ [sagelib9.1.beta0] SAGE_SRC_ROOT=/doesnotexist \ [sagelib9.1.beta0] SAGE_DOC_SRC=/doesnotexist \ [sagelib9.1.beta0] SAGE_BUILD_DIR=/doesnotexist \ [sagelib9.1.beta0] SAGE_PKGS=/home/scratch2/dimpase/sage/sage/build/pkgs \ [sagelib9.1.beta0] && sagepython u setup.py nousercfg build install [sagelib9.1.beta0] /home/scratch2/dimpase/sage/sage/src/bin/sageenv: line 130: cd: /doesnotexist: No such file or directory [sagelib9.1.beta0] Warning: overwriting SAGE_ROOT environment variable: [sagelib9.1.beta0] Old SAGE_ROOT=/doesnotexist [sagelib9.1.beta0] New SAGE_ROOT= [sagelib9.1.beta0] ************************************************************************ [sagelib9.1.beta0] Traceback (most recent call last): [sagelib9.1.beta0] File "setup.py", line 72, in <module> [sagelib9.1.beta0] from module_list import ext_modules, library_order [sagelib9.1.beta0] File "/home/scratch2/dimpase/sage/sage/src/module_list.py", line 406, in <module> [sagelib9.1.beta0] condition = BlissLibrary().is_present()), [sagelib9.1.beta0] File "/home/scratch2/dimpase/sage/sage/src/sage/features/__init__.py", line 161, in is_present [sagelib9.1.beta0] res = self._is_present() [sagelib9.1.beta0] File "/home/scratch2/dimpase/sage/sage/src/sage/features/__init__.py", line 551, in _is_present [sagelib9.1.beta0] with open(tmp_filename(ext=".pyx"), 'w') as pyx: [sagelib9.1.beta0] File "/home/scratch2/dimpase/sage/sage/src/sage/misc/temporary_file.py", line 149, in tmp_filename [sagelib9.1.beta0] from sage.misc.misc import SAGE_TMP [sagelib9.1.beta0] File "/home/scratch2/dimpase/sage/sage/src/sage/misc/misc.py", line 51, in <module> [sagelib9.1.beta0] import sage.misc.prandom as random [sagelib9.1.beta0] File "/home/scratch2/dimpase/sage/sage/src/sage/misc/prandom.py", line 58, in <module> [sagelib9.1.beta0] from sage.misc.randstate import current_randstate [sagelib9.1.beta0] ModuleNotFoundError: No module named 'sage.misc.randstate' [sagelib9.1.beta0] ************************************************************************ [sagelib9.1.beta0] Error building the Sage library [sagelib9.1.beta0] ************************************************************************ [sagelib9.1.beta0] Please email sagedevel (http://groups.google.com/group/sagedevel) [sagelib9.1.beta0] explaining the problem and including the relevant part of the log file [sagelib9.1.beta0] /home/scratch2/dimpase/sage/sage/logs/pkgs/sagelib9.1.beta0.log [sagelib9.1.beta0] Describe your computer, operating system, etc. [sagelib9.1.beta0] ************************************************************************ [sagelib9.1.beta0] Error in atexit._run_exitfuncs: [sagelib9.1.beta0] Traceback (most recent call last): [sagelib9.1.beta0] File "<frozen importlib._bootstrap>", line 983, in _find_and_load [sagelib9.1.beta0] File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked [sagelib9.1.beta0] File "<frozen importlib._bootstrap>", line 677, in _load_unlocked [sagelib9.1.beta0] File "<frozen importlib._bootstrap_external>", line 728, in exec_module [sagelib9.1.beta0] File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed [sagelib9.1.beta0] File "/home/scratch2/dimpase/sage/sage/src/sage/misc/misc.py", line 51, in <module> [sagelib9.1.beta0] import sage.misc.prandom as random [sagelib9.1.beta0] File "/home/scratch2/dimpase/sage/sage/src/sage/misc/prandom.py", line 58, in <module> [sagelib9.1.beta0] from sage.misc.randstate import current_randstate [sagelib9.1.beta0] ModuleNotFoundError: No module named 'sage.misc.randstate' [sagelib9.1.beta0] make[4]: *** [Makefile:33: sage] Error 1 [sagelib9.1.beta0] make[4]: Leaving directory '/home/scratch2/dimpase/sage/sage/src' [sagelib9.1.beta0] [sagelib9.1.beta0] real 0m0.369s [sagelib9.1.beta0] user 0m0.313s [sagelib9.1.beta0] sys 0m0.056s make[3]: *** [Makefile:1981: sagelib] Error 2 make[3]: Leaving directory '/home/scratch2/dimpase/sage/sage/build/make' make[2]: *** [Makefile:1842: allstart] Error 2 make[2]: Leaving directory '/home/scratch2/dimpase/sage/sage/build/make'
comment:34 Changed 3 years ago by
Reviewers:  → Dima Pasechnik 

Status:  needs_review → needs_work 
comment:36 Changed 3 years ago by
Commit:  2c7108300d66473a2bfeedd5a3fd68a2ac9b9db8 → ef1219e1493d418ae33bfb93d836b7eda91f8c9e 

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
4392be3  ./setup.py build_cython requirefeatures=sage.features.bliss.BlissLibrary

ac45c74  CythonFeature._is_present: Use version of tmp_filename without dependence on SAGE_TMP

8ca2e68  src/sage/misc/misc.py: Move import of sage.misc.prandom to functions that need it

1cee8f1  sage.misc.cython.cython: New options capture_stderr=True, target_dir=None

8b85b4d  sage.misc.cython: Move global imports into the functions where they are used

4a85117  sage.features.CythonFeature._is_present: Use tempfile.mkdtemp for cython test file and build

fdd4ab7  sage.features.CythonFeature._is_present: Improve error reporting in FeatureTestResult

4af7b45  sage.misc.cython.cython: Replace imported sage_makedirs, restore_cwd by local copies

aa87fab  Merge tag '9.0.beta10' into t/25828/optionalextensionfeatures

ef1219e  Merge tag '9.1.beta0' into HEAD

comment:38 Changed 3 years ago by
Status:  needs_work → needs_review 

comment:39 followup: 41 Changed 3 years ago by
something does not work with the build (docs get built, but then sage won't start)
This is running make ptest
(without bliss installed, I think)
... [dochtml] [thematic_] ... done (4882 js index entries) [dochtml] [thematic_] The HTML pages are in local/share/doc/sage/html/en/thematic_tutorials. [dochtml] Build finished. The built documents can be found in /home/scratch2/dimpase/sage/sage/local/share/doc/sage/html/en/thematic_tutorials [dochtml] Elapsed time: 486.8 seconds. [dochtml] Done building the documentation! make[3]: Leaving directory '/home/scratch2/dimpase/sage/sage/build/make' make j12 '/home/scratch2/dimpase/sage/sage/local/etc/sagestarted.txt' make[3]: Entering directory '/home/scratch2/dimpase/sage/sage/build/make' make[3]: warning: jN forced in submake: disabling jobserver mode. if [ z "$SAGE_INSTALL_FETCH_ONLY" ]; then \ cd /home/scratch2/dimpase/sage/sage/src && source bin/sageenv && \ sagelogger p 'time make j12 sage' '/home/scratch2/dimpase/sage/sage/logs/pkgs/sagelib9.1.beta0.log'; \ fi [sagelib9.1.beta0] make[4]: Entering directory '/home/scratch2/dimpase/sage/sage/src' [sagelib9.1.beta0] make[4]: warning: jN forced in submake: disabling jobserver mode. [sagelib9.1.beta0] cd . && export \ [sagelib9.1.beta0] SAGE_ROOT=/doesnotexist \ [sagelib9.1.beta0] SAGE_SRC=/doesnotexist \ [sagelib9.1.beta0] SAGE_SRC_ROOT=/doesnotexist \ [sagelib9.1.beta0] SAGE_DOC_SRC=/doesnotexist \ [sagelib9.1.beta0] SAGE_BUILD_DIR=/doesnotexist \ [sagelib9.1.beta0] SAGE_PKGS=/home/scratch2/dimpase/sage/sage/build/pkgs \ [sagelib9.1.beta0] && sagepython u setup.py nousercfg build install [sagelib9.1.beta0] /home/scratch2/dimpase/sage/sage/src/bin/sageenv: line 130: cd: /doesnotexist: No such file or directory [sagelib9.1.beta0] Warning: overwriting SAGE_ROOT environment variable: [sagelib9.1.beta0] Old SAGE_ROOT=/doesnotexist [sagelib9.1.beta0] New SAGE_ROOT= [sagelib9.1.beta0] /tmp/tmp_sage_cython_featuref0w8sij7/target/featuretest.cpp:652:10: fatal error: bliss/graph.hh: No such file or directory [sagelib9.1.beta0] #include "bliss/graph.hh" [sagelib9.1.beta0] ^~~~~~~~~~~~~~~~ [sagelib9.1.beta0] compilation terminated. [sagelib9.1.beta0] Discovering Python/Cython source code.... [sagelib9.1.beta0] Discovered Python/Cython sources, time: 0.01 seconds. [sagelib9.1.beta0] running build [sagelib9.1.beta0] Generating autogenerated sources [sagelib9.1.beta0] Building interpreters for fast_callable [sagelib9.1.beta0] running build_cython [sagelib9.1.beta0] Enabling Cython debugging support [sagelib9.1.beta0] Updating Cython code.... [sagelib9.1.beta0] Finished Cythonizing, time: 1.49 seconds. [sagelib9.1.beta0] running build_py [sagelib9.1.beta0] running build_ext [sagelib9.1.beta0] Executing 0 commands (using 1 thread) [sagelib9.1.beta0] Time to execute 0 commands: 0.11 seconds. [sagelib9.1.beta0] Total time spent compiling C/C++ extensions: 0.14 seconds. [sagelib9.1.beta0] running install [sagelib9.1.beta0] running install_lib [sagelib9.1.beta0] running install_egg_info [sagelib9.1.beta0] Removing /home/scratch2/dimpase/sage/sage/local/lib/python3.7/sitepackages/sage9.1.beta0py3.7.egginfo [sagelib9.1.beta0] Writing /home/scratch2/dimpase/sage/sage/local/lib/python3.7/sitepackages/sage9.1.beta0py3.7.egginfo [sagelib9.1.beta0] Cleaning up stale installed files.... [sagelib9.1.beta0]  cleaning build/lib.linuxx86_643.7 [sagelib9.1.beta0]  cleaning /home/scratch2/dimpase/sage/sage/local/lib/python3.7/sitepackages [sagelib9.1.beta0] Finished cleaning, time: 0.15 seconds. [sagelib9.1.beta0] if [ "$UNAME" = "CYGWIN" ]; then \ [sagelib9.1.beta0] sagerebase.sh "$SAGE_LOCAL" 2>/dev/null; \ [sagelib9.1.beta0] fi [sagelib9.1.beta0] make[4]: Leaving directory '/home/scratch2/dimpase/sage/sage/src' [sagelib9.1.beta0] [sagelib9.1.beta0] real 0m3.029s [sagelib9.1.beta0] user 0m2.510s [sagelib9.1.beta0] sys 0m0.419s "/home/scratch2/dimpase/sage/sage/local/bin/sagestarts" Testing that Sage starts... [20200114 15:30:54] SageMath version 9.1.beta0, Release Date: 20200110 Yes, Sage starts. make[3]: Leaving directory '/home/scratch2/dimpase/sage/sage/build/make' make[2]: Leaving directory '/home/scratch2/dimpase/sage/sage/build/make' real 46m41.281s user 276m31.335s sys 13m36.772s Sage build/upgrade complete! make[1]: Leaving directory '/home/scratch2/dimpase/sage/sage' ./sage t p all logfile=logs/ptest.log Traceback (most recent call last): File "/home/scratch2/dimpase/sage/sage/src/bin/sageruntests", line 177, in <module> from sage.doctest.control import DocTestController File "/home/scratch2/dimpase/sage/sage/local/lib/python3.7/sitepackages/sage/doctest/control.py", line 33, in <module> from .sources import FileDocTestSource, DictAsObject File "/home/scratch2/dimpase/sage/sage/local/lib/python3.7/sitepackages/sage/doctest/sources.py", line 33, in <module> from .parsing import SageDocTestParser File "/home/scratch2/dimpase/sage/sage/local/lib/python3.7/sitepackages/sage/doctest/parsing.py", line 66, in <module> from sage.all import RealIntervalField ImportError: cannot import name 'RealIntervalField' from 'sage.all' (unknown location) make: *** [Makefile:172: ptest] Error 1
I guess
[sagelib9.1.beta0] /tmp/tmp_sage_cython_featuref0w8sij7/target/featuretest.cpp:652:10: fatal error: bliss/graph.hh: No such file or directory
points somewhere...
comment:41 Changed 3 years ago by
Replying to dimpase:
something does not work with the build
ImportError: cannot import name 'RealIntervalField' from 'sage.all' (unknown location) make: *** [Makefile:172: ptest] Error 1
Yes, I also end up with a broken build. I'll look into it more.
I guess
[sagelib9.1.beta0] /tmp/tmp_sage_cython_featuref0w8sij7/target/featuretest.cpp:652:10: fatal error: bliss/graph.hh: No such file or directorypoints somewhere...
No, that is just the output of the feature test. I will try to make it look less scary.
$ ./sage c 'from sage.features.bliss import BlissLibrary; print(BlissLibrary().is_present())' /var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/tmp_sage_cython_featurempyw50ji/target/featuretest.cpp:653:10: fatal error: 'bliss/graph.hh' file not found #include "bliss/graph.hh" ^~~~~~~~~~~~~~~~ 1 error generated. FeatureTestResult('Bliss', False)
comment:42 Changed 3 years ago by
Status:  needs_review → needs_work 

comment:43 Changed 3 years ago by
Milestone:  sage9.1 → sage9.2 

comment:44 Changed 3 years ago by
Commit:  ef1219e1493d418ae33bfb93d836b7eda91f8c9e → b5e205f8abccc2dd933bad59045c9ab174b6c3d7 

Branch pushed to git repo; I updated commit sha1. New commits:
b5e205f  WIP: Add progress output

comment:45 Changed 2 years ago by
Milestone:  sage9.2 → sagewishlist 

comment:46 Changed 2 years ago by
Authors:  Matthias Koeppe, Timo Kaufmann 

Milestone:  sagewishlist → sageduplicate/invalid/wontfix 
Reviewers:  Dima Pasechnik 
Status:  needs_work → needs_review 
OptionalExtension
is no longer used. Let's close this ticket.
comment:47 Changed 2 years ago by
Reviewers:  → Dima Pasechnik 

comment:48 Changed 2 years ago by
Status:  needs_review → positive_review 

comment:49 Changed 2 years ago by
Resolution:  → invalid 

Status:  positive_review → closed 
Jeroen, according to
git log
you seem most experienced with what is going on insetup.py
(second just to William Stein in number of commits). Do you have a opinion?