On 17 June 2017 at 08:07, Nathaniel Smith <n...@pobox.com> wrote: > Proposal: "NotImplemented" is a legal return value from build_sdist > (similar to dunder methods), and should trigger whatever fallback > behavior the frontend would do if the hook was simply undefined.
The PEP currently allows build_sdist to fail, but frontends don't have much option do do anything other than present that failure direct to the user. Not because there isn't a special "fall back to something else" return value, but because the PEP provides no guarantee that any fallback is possible. We've been very careful to *not* require anything of source trees than what the hooks offer, as I understand it, so it seems like we're doing a bit of a U-turn now if we say "if the hook fails, front ends will fall back" and don't provide any information as to what front ends are allowed to assume as part of that fallback. You mention falling back to copying, but the PEP doesn't even specify that source trees must be copyable. I'd probably have to work quite hard to come up with a scenario where they aren't, but if we want to make that guarantee, let's just be explicit about it. A single sentence "backend operations on source trees must behave the same if the source tree is copied to a different filesystem location, and front ends are free to copy source trees if needed" is easy to add, if that's what we want to guarantee. Personally, I prefer not adding constraints on source trees, and leaving the PEP as it is, with no fallback required or expected if a hook fails. Paul _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig