Hah, yes! Full test coverage, and a few minor bugfixes thanks to those thorough tests. I've published version 0.1.2 of MOTR, and it's much nicer in a bunch of little ways that don't really fit into "features" per se.
(I removed an errant newline from the output, and did the previously-mentioned reliability improvements.)
There are two basic directions to go from here:
- Refactor and improve the code
- Revisit my ideas about organization, with an eye towards using limit-coverage.
I'll need both before I'm comfortable releasing 1.0. The refactorings are probably easier, but getting limit-coverage set up is really appealing to me, because it's needed for the mutation testing paradigm that I want to support.
Here's a thought: maybe if I got the documentation together, I'd have a better idea of how I want to organize the code. So, I need to do some of the improvements (like exposing the Input type in the api module so that you can actually call a bunch of the functions that the module exposes) so that the code that I'm documenting is closer to how I want the code to end up.
Getting documentation soon is good, but I'd like to first try to move code out of the config file and into the application. That'll allow me to prototype stuff like a high-level Sphinx action without the motrfile ending up hopelessly cluttered.
So, the best course of action is probably:
- Add some of the features that would make the high-level Flit action more straightforward
- Add the features that I need for my other project layouts
- Adapt the existing high-level code to work with those features
- Start pulling stuff into the application, starting with the Pip high-level feature.
This should get me into a state where I can start collapsing the configuration file into a few dozen lines.
Something else I ought to look into is supporting other build backends. I think supporting poetry, enscons, and setuptools in addition to Flit would get me most of the way there. I kind of need to think about each one separately because I need to know where to look for the wheel that it builds.
Anyway, I think I'll take a bit of a break before getting to work on that. I'm happy with where I've gotten this so far, but I want to come back to it a little fresher. For now, I really need to get to bed.