Pain Points with git worktree #550
-
A few months ago pandas moved to using meson for builds and I have found it does not play nicely with my git worktree-heavy workflow. In particular, if I have multiple branches checked out in multiple directories, and a terminal window for each of them, then trying to build (with I'm kind of hoping this is a user problem where I'm doing something dumb that can easily be changed. bc IIUC changing meson's behavior here would be really tough. Please advise. |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 3 replies
-
Thanks for the report @jbrockmendel. It looks like the issue here is that you are using editable installs in multiple separate repos, but in the same environment. Is that correct? If so, I would not expect that to work indeed - but I wouldn't expect it to work with any build system. If not, then I'm puzzled. |
Beta Was this translation helpful? Give feedback.
-
I'll also note that for |
Beta Was this translation helpful? Give feedback.
-
I think that's accurate. IIUC meson is symlinking [mumble] into site-packages, which didn't use to happen with |
Beta Was this translation helpful? Give feedback.
-
meson-python editable installs do not symlink anything into site-packages. meson-python editable installs produce wheels that contain a custom Python module loader that loads code from the project build and source directory. Only one editable wheel for a given package can be installed in an a Python environment. Therefore you can have only one editable build linked into a Python environment. The solution is to use a different venv for each version of the code you want to test.
In-place builds and editable installs are not the same thing. meson-python does not support in-place build. Modern setuptools does not support them anymore either. |
Beta Was this translation helpful? Give feedback.
meson-python editable installs do not symlink anything into site-packages. meson-python editable installs produce wheels that contain a custom Python module loader that loads code from the project build and source directory. Only one editable wheel for a given package can be installed in an a Python environment. Therefore you can have only one editable build linked into a Python environment.
The solution is to use a different venv for each version of the code you want to test.
In-place builds and editable installs are not the same thing. meson-python does not suppo…