inseven / incontext

Multimedia-focused static site builder for macOS
https://incontext.app
MIT License
1 stars 0 forks source link

Improve build progress reporting #156

Open jbmorley opened 1 year ago

jbmorley commented 1 year ago

The current progress reporting for builds simply logs the name of a file when the import job first starts. Since we're using Swift's async/await concurrency for multi-threaded builds this gives the user very little meaningful feedback as to the actual progress of builds. Especially for larger site builds, and for the InContext Helper app, it would be really nice to show a progress bar by default.

In order to achieve this, I think we're going to need to flesh out the current Session and Tracker (these really need renaming) protocols to allow the creation of individual tasks which can then make progress themselves. Since async/await seems to immediately preempt / re-queue commands whenever they encounter another async call meaning that all commands appear to complete simultaneously, the only way to get an idea of overall progress is to allow each task to report its own progress based on steps it knows it has to make.