bpo-32430: Rename Modules/Setup.dist to Modules/Setup by pitrou · Pull Request #8229 · python/cpython (original) (raw)

There are a few potential problems, whether they are show-stoppers, I don't know.

  1. If you want to customize Setup, you have to modify the Setup file in the source directory, not in the build directory. That's counter to the main idea of separate source/build directories, IMHO. Ideally (broken at this point for Python, I think), the source directory should be able to be read-only. All build files would be in the build directory. By removing the build directory, you should be to back to a clean source tree. Also, you should be able to have multiple builds, with different configurations, all using the same source tree. Because Setup is being taken from the source dir, that doesn't work after this change, assuming you want to customize Setup.
  2. As mentioned previously, if you create Modules/Setup in the build directory, it will be ignored. 3rd party build systems that do this will have to be fixed. That's not a big deal but it seems like breakage for no strong reason. What are we gaining vs bpo-32430: During 'configure', don't copy Setup.dist to Setup. #8260? I guess makesetup is simpler in this PR. Is there another benefit?

I guess both of these points apply only if you are using separate build directories. I gather that Antoine and Victor don't use them. In fact, I suspect the majority of Python core developers don't use them because over the years the build has gotten broken in that respect and it seems no one notices for a while. Supporting a separate build directory adds a large amount of complexity to the build. So, even though it is my preferred way to build Python, I'm sympathetic to the idea of throwing it out as complication we don't need. However, we either should support it properly or not at all.

Another thing is to consider who the end user of the build system will be. Obviously core Python devs use it all the time. However, I expect at this time, the average Python user does not build themselves. So, aside from core devs, most of the end users of the build system are 3rd party distributors like Red Hat, Google, Enthought, etc. I would expect many of these builders do use a customized Setup file. So, aside from core developers, we could be impacting a lot of the people using the Python build system. We should not change how the build works in this respect without getting their feedback, IMHO.