Weekly report for the fourth week of the Google Summer of Code, sent to our mailing list last Thursday and copied here a bit late
Last week I have completed the configure command. It accepts the same options¹ as build and install and writes them to a file that is read back after configuration files and before command-line options.
(The –force option is renamed to –force-build and –force-install since it does not mean the same thing for both commands.)
Failing Tests Are Great
Writing tests was not as simple as expected, but still easy. Taking inspiration from existing tests, I tried using Distribution and configure objects directly, but couldn’t get them to work; I temporarily settled for running Python (sys.executable) in a subprocess. The second test I wrote helped me find a bug. Yay for tests!
I am one week late on my original schedule. The command is where I wanted it to be last Monday, yet it’s not entirely finished. It lacks tests, which I’ll add in the next weeks in parallel to other tasks, but there is another more important thing. As it is now, the configure command just records options without checking for conflicts (e.g. using both –prefix and –user for install). While not in the original description of the task, I think that it should be added. Prior art like 4Suite’s config command or a prototype for configure done by Tarek that I discovered only today support this idea. If you have an opinion on that, please express it in the comments on on Python #8254.
Even if I think the command still needs improvements and tests, its basic implementation is done, so I’m going to ask for review and pull. I’ll still work on it, but not exclusively. Now is the time for killing setup scripts!