-
Notifications
You must be signed in to change notification settings - Fork 69
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
Build directory for editable installations #370
Comments
I'd say The downside of Reusing
Hmm, that is an interesting point. |
I'd say that whatever we choose here is a private implementation detail though - the user has no business doing anything with it beyond adding it to |
Thinking about this some more:
tl;dr let's use |
I like |
I'd prefer to not special-case interpreters I think. Different builds can also happen with different compilers (e.g., using GCC and Clang in parallel), different sets of build dependencies (on SciPy testing with 2 numpy versions is much more interesting than testing with 2 cpython versions), and so on. Plus it does bring up questions like "what if we have regular and a debug 3.11 interpreters". Matrix'ed environment testing is for tools like tox/nox or custom scripts I'd say, and they can easily pass a |
This comment was marked as off-topic.
This comment was marked as off-topic.
Other possible option would be putting the build directory on the installation path, instead of the project source. This would also allow installations to different interpreters without any conflicts. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
Okay, you both agree on this, so let's go that way. For the other choices, how about I make an editorial decision here? Seems preferred over lots more discussion. |
I proposed tagging the build directory with the python interpreter API tag in some form because the editable wheel documentation page prominently warns (or at least I remember it this way) to the fact that being able to have editable wheels for multiple interpreters as a limitation. I thought that, if the limitation was felt so important, adding a tiny amount of complexity to allow it could have been a good compromise. However, I'm a big fan of keeping things simple unless necessary, thus I'm happy without this feature and a paragraph in the documentation that mentions how to achieve the same using the I'm fine with @rgommers picking the build directory name that he prefers. I opened this issue only because the nested directories are not required to exist anymore and I thought we could simplify what we present to the users before releasing editable wheel support in the next release. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
We can use the same trick that Meson uses and place a |
setuptools uses a |
Change the editable install build directory to a subdirectory named after the ABI tag for the target Python interpreter placed in the ``build`` directory in the project source directory. Add .gitignode and .hgignore files with catch all glob patterns to the ``build`` directory, if it is empty, to have the major VCS systems ignore it. Fixes mesonbuild#370, mesonbuild#380.
Change the editable install build directory to a subdirectory named after the ABI tag for the target Python interpreter placed in the ``build`` directory in the project source directory. Add .gitignode and .hgignore files with catch all glob patterns to the ``build`` directory, if it is empty, to have the major VCS systems ignore it. Fixes #370, #380.
The build directory for editable build is currently
.mesonpy/editable/build
in the source directory. I don't see a reason why the build directory is nested two levels deep into otherwise empty directories . A flatter directory structure could be used.While doing so, attaching a Python API tag to the build directory name would allow to have multiple parallel installations of the same package for different interpreters.
Isn't there prior art for choosing the name of the build directory? I don't like something specific to meson-python much. Python uses
__pycache__
for its cache. Is it allowed to add tool specific stuff in there? distutils uses abuild
folder, IIRC. What about other build backends?It would be nice to have this decided before we release a version with the editable support.
EDIT: reworded for politeness
The text was updated successfully, but these errors were encountered: