This whole thing is a totally random digression. I was hoping we could come to a general agreement about narrowly scoping and then discuss the implementation details, but I am now firmly in the camp of the original option 2 - zero options for the bootstrapper. pyproject.toml
looks like this (requirements is not required to be empty):
[build-backend]
requires=[]
build-backend="<bootstrap>"
At which point the front-end will select __build_backend__.py
(located in the source root) as the build backend. It MAY add the source root to sys.path
but is not required to do so.
I see no reason to complicate things any more than this. It’s incredibly simple to implement this and to explain how it works.