Opened 3 years ago

Closed 21 months ago

#28742 closed defect (invalid)

sage-python incremental build breakage

Reported by: vbraun Owned by:
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: build Keywords:
Cc: jhpalmieri Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description

The sage target in src/Makefile can be called if the previous build was incomplete, in particular if six has not been installed. But our setup.py implicitly depends on six:

[sagelib-9.0.beta5] cd . && export                                    \
[sagelib-9.0.beta5]     SAGE_ROOT=/doesnotexist                               \
[sagelib-9.0.beta5]     SAGE_SRC=/doesnotexist                                \
[sagelib-9.0.beta5]     SAGE_SRC_ROOT=/doesnotexist                           \
[sagelib-9.0.beta5]     SAGE_DOC_SRC=/doesnotexist                            \
[sagelib-9.0.beta5]     SAGE_BUILD_DIR=/doesnotexist                          \
[sagelib-9.0.beta5]     SAGE_PKGS=/var/lib/buildbot/slave/sage_git/build/build/pkgs                \
[sagelib-9.0.beta5] && sage-python -u setup.py --no-user-cfg build install
[sagelib-9.0.beta5] /var/lib/buildbot/slave/sage_git/build/src/bin/sage-env: line 130: cd: /doesnotexist: No such file or directory
[sagelib-9.0.beta5] Warning: overwriting SAGE_ROOT environment variable:
[sagelib-9.0.beta5] Old SAGE_ROOT=/doesnotexist
[sagelib-9.0.beta5] New SAGE_ROOT=
[sagelib-9.0.beta5] Traceback (most recent call last):
[sagelib-9.0.beta5]   File "setup.py", line 22, in <module>
[sagelib-9.0.beta5]     import fpickle_setup
[sagelib-9.0.beta5]   File "/var/lib/buildbot/slave/sage_git/build/src/fpickle_setup.py", line 8, in <module>
[sagelib-9.0.beta5]     from six.moves import copyreg
[sagelib-9.0.beta5] ModuleNotFoundError: No module named 'six'
[sagelib-9.0.beta5] Makefile:33: recipe for target 'sage' failed
[sagelib-9.0.beta5] make[4]: *** [sage] Error 1
[sagelib-9.0.beta5] make[4]: Leaving directory '/var/lib/buildbot/slave/sage_git/build/src'

Change History (15)

comment:1 Changed 3 years ago by jhpalmieri

six is a dependency for sagelib, so how does this happen?

comment:2 Changed 3 years ago by strogdon

I see this now, incremental build from 9.0.beta5 -> 9.0.beta6.

[sagelib-9.0.beta6] Traceback (most recent call last):
[sagelib-9.0.beta6]   File "setup.py", line 22, in <module>
[sagelib-9.0.beta6]     import fpickle_setup
[sagelib-9.0.beta6]   File "/64bitdev/storage/sage-git_develop/sage/src/fpickle_setup.py", line 8, in <module>
[sagelib-9.0.beta6]     from six.moves import copyreg
[sagelib-9.0.beta6] ModuleNotFoundError: No module named 'six'
[sagelib-9.0.beta6] make[4]: *** [Makefile:33: sage] Error 1
[sagelib-9.0.beta6] make[4]: Leaving directory '/64bitdev/storage/sage-git_develop/sage/src'

I looks like six is only installed for python2.7

comment:3 follow-up: Changed 3 years ago by jhpalmieri

Silly question: is this an incremental build which was originally based on Python 2, now trying to use Python 3?

comment:4 in reply to: ↑ 3 Changed 3 years ago by strogdon

Replying to jhpalmieri:

Silly question: is this an incremental build which was originally based on Python 2, now trying to use Python 3?

The original build was with Python 2. The failure resulted from

git pull
make

So I presume it's still Python 2.

comment:5 Changed 3 years ago by strogdon

But maybe with 9.0.beta6 Python 3 is the default.

comment:6 Changed 3 years ago by strogdon

Yes, the post has now appeared on sage-release. Python 3 is the default.

comment:7 follow-up: Changed 3 years ago by jhpalmieri

If the Python version switches in the middle of an incremental upgrade, that's not very graceful, but it will certainly cause problems. Is that what's going on? What does ./sage --sh -c 'echo $SAGE_PYTHON_VERSION' say?

comment:8 in reply to: ↑ 7 Changed 3 years ago by strogdon

Replying to jhpalmieri:

If the Python version switches in the middle of an incremental upgrade, that's not very graceful, but it will certainly cause problems. Is that what's going on? What does ./sage --sh -c 'echo $SAGE_PYTHON_VERSION' say?

From sage

make distclean
make

seemed to fix things here. I'm not anxious to continue with Python 2 and with the above Python 3 is being used. It seems a bit severe but perhaps what's needed.

Version 0, edited 3 years ago by strogdon (next)

comment:9 Changed 3 years ago by jhpalmieri

I just did a test with similar results: started a Python 2 build with 9.0.beta5, then did git trac pull develop and started make. Then ./sage --sh -c 'echo $SAGE_PYTHON_VERSION' reported 3, which is only going to lead to problems. This is due to #28660, I guess.

comment:10 Changed 3 years ago by jhpalmieri

I just posted this on #28660: in the case of building with Python 2, then merging this ticket and trying to an incremental upgrade, "we should detect the version mismatch and either keep using Python 2 or abort the make process, telling the user what the issue is."

comment:11 Changed 2 years ago by embray

  • Milestone changed from sage-9.0 to sage-9.1

Ticket retargeted after milestone closed

comment:12 Changed 2 years ago by mkoeppe

  • Milestone changed from sage-9.1 to sage-9.2

Moving tickets to milestone sage-9.2 based on a review of last modification date, branch status, and severity.

comment:13 Changed 21 months ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-duplicate/invalid/wontfix
  • Status changed from new to needs_review

This is likely outdated after the removal of python 2 support

comment:14 Changed 21 months ago by jhpalmieri

  • Status changed from needs_review to positive_review

comment:15 Changed 21 months ago by chapoton

  • Resolution set to invalid
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.