Coding 2023-01-20
I forget how or whether I prioritized things for MOTR recently. Now that I've got a round of renames done, I was like "what do I feel like working on?" and the answer was apparently "remove the usages of pyrsistent that aren't PMaps". Which, I wanted to do that at some point. It might have been prudent to do it on the "future" side, since the merges were all gross, but, eh... Offhand, I can remember a few other things to look into:
- Reduce the dependence of tests on subprocesses.
- Rework the artifact.Output layout and creation workflow.
- Work on splitting up the API into logical layers.
Looking over these, the first is good to do when I feel like it, since it shouldn't involve a bunch of soul-searching or wide-ranging changes, and getting it done should shave a few seconds off of the run time of the tests, which is several percent improvement.
The other options both take some careful planning, and I wouldn't be surprised if they caused interesting things to happen in terms of merges.
...
Wait a sec, I was going by memory for the expected speedup, and it's more like, if I can get just one test to run at a similar speed to nearly every other test, the tests will be nearly three times faster?!?! However, it's right in the middle of "future" changes. At the same time, getting the logic relevant to this test mocked would make it easier to increase coverage, so I think implementing the mocking twice, more or less, would be less painful than trying to legitimately force a failure state to trigger the unused branches.
All right, this is clearly the play. It speeds up iteration, and gets me closer to full coverage. Then I can work on these other changes. Probably planning out the different layers as I feel like it, but focusing on the artifact rework.
Anyway, I should get ready for bed.
Good night.