Skip to content
This repository has been archived by the owner on Mar 26, 2019. It is now read-only.

Version 3.0: Roadmap & Features

Joe Amenta edited this page Sep 10, 2017 · 1 revision

Now that I've got an apparently reasonably stable StepperUpper to use as an example, I think it's time to look at solving some of the key problems with it:

  1. Too much of the process is defined in a linear fashion throughout Program.Main, making it prohibitive to do things like #8, #9, #25, and even just to do a good job with #15.
  2. All pack files need to assume they're starting from a clean slate. This makes it difficult add support for advanced features like in-place version updates (where applicable), post-hoc "expansions" (e.g., installing STEP Core on Monday, then adding STEP Extended to it on Wednesday), and probably anything I haven't thought of yet.
  3. No tasks from a later pack may start until all tasks from all earlier packs are finished (not even if they don't touch the same folders), because there's no way for a later pack to take a dependency on tasks in the earlier pack.
  4. The way it's designed, no matter how clever I get with the archive manipulation, earlier packs that use the same archive file that a later pack uses have to extract the same stuff separately (or just "know" that the later pack might want it, and map the contents anyway). And I'd have to get really clever with it to be able to skip extracting too much even in the cases where it's not impossible.
  5. Each pack file needs to include all the information about how to build every part of the output folders.
  6. Maintaining the pack files is pretty annoying, and creating new ones is a nightmare.

The existing "design" was good for getting something up and running quickly, but I'd rather not try to build big ideas on a shaky foundation. So I'm going to try to do a redesign from scratch, using the experience I've gained from this, so I can solve the above problems and more. Other things I'd like to be able to do:

  1. Interact with Mod Picker wherever it makes sense to do so. e.g., it looks like Mod Picker can list plugin errors, so I could just query that and use its suggestions for how to clean. Also mod lists...
  2. Make it so you don't need to have a file with a predetermined MD5 checksum in order to proceed, so long as you have a file with a compatible structure. i.e., make it so that if a mod developer does an update, you don't have to wait for me (or someone) to update the database.
  3. Other things I will definitely think of...