Diary 2021-09-18

By Max Woerner Chase

I thought I was going to have a chance to work on the hook for Korín, or put the notes I've been taking on MOTR into practice, but I guess I was too busy relaxing and I let time get away from me.

I'm really itching to get MOTR into a good enough state that I feel comfortable using it for other projects, because I feel a bit like I've let, if not the perfect, at least the better*, be the enemy of the good here. I think a good amount of sustained effort would get me there, but I don't know when I'll have the time to put all that effort in.

*This judgement has to be understood in the context of my motrfile being an evolution of my noxfile template. I prefer Nox to tox because I prefer Python to INI as a host language, but this loses me the potential for concurrency. Now, Nox has a barrier to adding concurrency, in that it tries to provide streaming output. But, my pytest failures have a tendency to generate such monstrous spews of output that there's no point in reading them from the terminal. So, MOTR sacrifices streaming output in order to obtain concurrency by default, without sacrificing quality of host language. It also provides means of selecting tasks that make more sense to me than how Nox and tox handle it.

(At some point after I stopped paying attention to tox, it introduced a dependency field, which enforces an ordering of all selected environments, which means you still need to know which environments to select. Also, I found I prefer to think of dependencies in terms of what a task provides and needs rather than "do this before this because of reasons".)

Time will tell if I end up wanting some more expressive means of specifying targets. My thinking, or rather hope, is that if just running everything is fast enough, then there's no need to get really fine-grained with the requirements. Unfortunately, it's kind of hard to tell if there's any way to make the current code much faster, since if I profile the main thread, the vast majority of the runtime is spent polling IO-bound tasks.

I guess I just need to put in the work to make this all work in general.

Anyway, it's later than I though, and I don't want to put off sleeping any longer.

Good night.