All right, here's the deal. I spent all day doing other stuff like unlocking stuff in Nova Drift and rereading webcomics. I'm going to try to write up working on Seed, live-ish.
I've got some electronic music playing, and my first priority is on writing up the feature list. Okay, I did that. I got just a few entries added, but I'll add more as I think of them. For now, let's see about implementing some of this.
I took some time to drill into what the "fork" command needs to do, and how it might accomplish it. The current design requires "src" and "dest" arguments, which are required, and currently must be local paths that are siblings. Given those, there are many tasks that must then be done:
- The repository must be cloned to a temporary directory
- The set of patches with no children must be extracted
- Said set must be put in a canonical order, such as through alphabetization, and converted to a toml table containing a single key with an array of strings value
- The seed.toml must be read from the clone, and the table substituted in
- The substituted toml must be presented to the user for editing
- The edited toml must be parsed, its data applied to the clone, and then overwritten on top of the clone's toml.
- The clone must test green
- Cut the 0.1.0 version
- Make the clone available from dest
- Fork a dev branch from master in dest, using global settings.
I will surely be able to implement this stuff when I'm not busy roasting in the summer heat. I'm struggling to stay awake now. Good night.