<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 29, 2017, at 5:16 PM, Steve Dower <<a href="mailto:steve.dower@python.org" class="">steve.dower@python.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">I'm happy enough with this approach, my only problem with it is that I don't want to be maintaining two versions (the new one that we want people to change to, and the old one so that people keep working with new versions of Python without having to change to the new one).</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">If we don't make a very clear statement that "distutils is no longer being maintained, it probably won't build valid extensions on 3.[7/8/whatever], and we mean it this time" then it doesn't count. I insist on at least removing the distutils tests from the test suite, since as long as those need to pass I can never stop maintaining the stdlib version. And that puts this in the realm of python-dev, which means a PEP to formally deprecate distutils (that I'm happy to co-author) and recommend an alternative, as well as the alternative path needed to build the core extension modules on non-Windows platforms.</span></div></blockquote></div><br class=""><div class="">As long as CPython itself depends on distutils I don’t think we can break or remove distutils, but we can move make it a shim over something that is better architecturally and easier to maintain. The tests should still pass in this case because they’d essentially be testing that our shim is functioning correctly.</div><div class=""><br class=""></div><div class="">I also don’t think we can spin distutils out of the stdlib as long as CPython depends on it.</div><div class=""><br class=""></div><div class="">I see two paths forward:</div><div class=""><br class=""></div><div class="">1) We come up with something better *in the standard library*, implement it, move CPython to using that in the build process, and then deprecate/remove distutils from the stdlib and have it maintained outside.</div><div class=""><br class=""></div><div class="">2) We come up with something better outside of the standard library, implement it, vendor it into distutils/_whatevercoollib, and turn the relevant distutils APIs into shims over the new API.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Of the two, I think that (2) is going to be the least painful for users.</div></body></html>