Opened 3 years ago

Last modified 2 years ago

#21535 closed enhancement

Make src/setup.py respect --build-base and --inplace, independent of SAGE_CYTHONIZED — at Version 5

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-8.1
Component: build Keywords:
Cc: jdemeyer, embray Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: #21480, #21600, #21604 Stopgaps:

Description (last modified by mkoeppe)

This is a follow-up on #21480, which put src/setup.py in charge of all sagelibbuilding and removed dependencies on various environment variables, as a step towards the goal of making sagelib an ordinary Python package (#21507).

However, there is still a dependency on $SAGE_CYTHONIZED, which needs to be set in a way that matches the build-base (set by setup.py build --build-base).

This dependency should be removed.

Also, --inplace should be supported. (See also: #12659: build the sage library in place)

See also #21508 on other cleanup issues of src/setup.py.

Change History (5)

comment:1 follow-up: Changed 3 years ago by embray

I think I've brought this up with jdemeyer before, who had some objections (I think where I brought it up originally was in the context of cysignals, but same applies to sage itself). Ultimately what it came down to is that he prefers the source tree to always be clean of build artifacts, which I can certainly respect. But I don't personally have a problem like that, and like to be able to use ./setup.py build_ext --inplace for in-place testing, which I find cuts down on time spent in the "edit-build-install" cycle.

In any case, these are subjective preferences for development practice, and I think either way should work--eliminating dependency on $SAGE_CYTHONIZED should be a step in the right direction.

comment:2 in reply to: ↑ 1 Changed 3 years ago by mkoeppe

Replying to embray:

Ultimately what it came down to is that [jdemeyer] prefers the source tree to always be clean of build artifacts, which I can certainly respect. But I don't personally have a problem like that, and

I also like to keep the source tree clean, which is why I usually use VPATH builds. I have created #21469 for that.

like to be able to use ./setup.py build_ext --inplace for in-place testing, which I find cuts down on time spent in the "edit-build-install" cycle.

Thanks for pointing out --inplace. I'll look into this.

comment:3 Changed 3 years ago by mkoeppe

  • Cc jdemeyer embray added
  • Dependencies set to #21480, #21600, #21604
  • Description modified (diff)
  • Summary changed from Make src/setup.py independent of SAGE_CYTHONIZED to Make src/setup.py respect --build-base and --inplace, independent of SAGE_CYTHONIZED

comment:4 Changed 3 years ago by embray

#21682 might help with this one--it makes SAGE_CYTHONIZED mostly irrelevant IMO.

comment:5 Changed 3 years ago by mkoeppe

  • Description modified (diff)
  • Milestone changed from sage-7.4 to sage-7.5
Note: See TracTickets for help on using tickets.