-
-
Notifications
You must be signed in to change notification settings - Fork 481
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
Make src/setup.py respect --build-base and --inplace, independent of SAGE_CYTHONIZED #21535
Comments
comment:1
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 In any case, these are subjective preferences for development practice, and I think either way should work--eliminating dependency on |
comment:2
Replying to @embray:
I also like to keep the source tree clean, which is why I usually use VPATH builds. I have created #21469 for that.
Thanks for pointing out |
This comment has been minimized.
This comment has been minimized.
comment:4
#21682 might help with this one--it makes SAGE_CYTHONIZED mostly irrelevant IMO. |
This comment has been minimized.
This comment has been minimized.
comment:6
I should be able to fix this with or without #21682, though I think it helps. |
comment:7
Wouldn't it be easier to fix with #21682, given that you are adding a |
comment:8
Yes, it would be easier. |
comment:9
So what would be the impact of removing SAGE_CYTHONIZED entirely? As far as I can tell it is only really used by setup.py/sage_setup. Implementing this ticket makes it pretty pointless I think--it makes SAGE_CYTHONIZED not even make sense, really. Would it be a problem to outright remove it? Or does it need to still be supported somehow? |
comment:10
+1 for getting rid of SAGE_CYTHONIZED completely if you can. |
comment:11
Erik and Jeroen, given that #21682 ( |
comment:12
I'd be all for that. Do you need me to work on it? |
comment:13
As a small first step, see #23744. |
comment:14
Replying to @embray:
That would be great! By the way, in my current attempt at #21469 I noticed that This line in
is probably a leftover from my earlier changes, and should probably be removed. The variable |
Branch: u/jdemeyer/no_SAGE_CYTHONIZED |
Author: Jeroen Demeyer |
comment:16
Here is a branch getting rid of New commits:
|
Commit: |
comment:17
Hmm--one idea might be for |
comment:18
Replying to @jdemeyer:
Commit 33746a2 is good, but I think some of the changes in 769de13 are not going in the right direction.
diff --git a/src/setup.py b/src/setup.py
index 6354427..be4036d 100755
--- a/src/setup.py
+++ b/src/setup.py
@@ -52,12 +52,16 @@ sys.excepthook = excepthook
build_base = 'build' # the distutils default. Changing it is not supported by this setup.sh.
+# Directory to store Cython-generated files
+SAGE_CYTHONIZED = os.path.join(build_base, "cythonized")
+
|
comment:19
Replying to @embray:
Yes, I think this is a good idea. Basically this is part of #21707 (Split |
comment:21
I see. The variable |
comment:22
Working on this... |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
comment:24
This should address the concerns about |
comment:26
Replying to @mkoeppe:
I'm not actively concerned about any of my existing open tickets addressing issues in the setup.py. I'd like to get back to that at some point but if any of those tickets still end up being useful I'll rework them. |
comment:27
Hi Erik, there's no problem; to the contrary, as a result of these changes that are already merged, |
comment:28
Indeed. What this ticket does is also use the |
Reviewer: Matthias Koeppe |
Changed branch from u/jdemeyer/no_SAGE_CYTHONIZED to |
This is a follow-up on #21480, which put
src/setup.py
in charge of allsagelib
building and removed dependencies on various environment variables, as a step towards the goal of makingsagelib
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 bysetup.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
.Depends on #21480
Depends on #21600
Depends on #21604
Depends on #23744
CC: @jdemeyer @embray
Component: build
Author: Jeroen Demeyer
Branch/Commit:
bd91b43
Reviewer: Matthias Koeppe
Issue created by migration from https://trac.sagemath.org/ticket/21535
The text was updated successfully, but these errors were encountered: