-
Couldn't load subscription status.
- Fork 712
Description
The current PublishingActivityReporter API and steps/tasks UI have a lot of constraints that make the API difficult to use for custom deployment scenarios and difficult to scale as we work towards modeling deployment steps in a pipeline in the object model. The notable constraints are:
- Steps are always sequential and it is not possible to run multiple steps concurrently. This presents a problem when we eventually want to support processing arbitrary steps in a pipeline, some of which might be happening concurrently.
- The Tasks API that is used in Spectre for the interactive progress components does not scale well to non-interactive UIs (e.g. CI/CD pipelines) making it hard to capture meaningful logs.
- Limited options exists for being able to show logs from tasks outside of the gray ghost text on tasks.
We want to refactor the API and UI to optimize for concurrent steps and non-interactive rendering.
On the API side, we'll need to remove a lot of the logic that assumes only one step can be in progress at a time and restrict when prompting can happen.
On the UI side, we want something that allows us to visualize the events that are occuring as a continous, sequential stream while still:
- Showing the parent-child relationships between steps and tasks
- Allowing multiple steps/tasks to be interleaved amongst each other
- Make it obvious that deployment is in progress even if there are no active steps
- UI is not optimized for steps with no tasks beneath them (e.g. the Azure CLI authentication check)
Ideally, we'd build out a single UI that works well in both interactive and non-interactive scenarios. The strawman proposal for the updated UX:
For comparison's sake, here's the current UX as of Aspire 9.5:
EDIT: Feedback items that are captured from the new design:
- The new design makes it difficult to see that operations are in progress and not just hanging. We might consider adding a spinner or
...indicator at the end o the command to indicate that events are in progress. The example above has been updated with a spinner at the bottom to showcase ongoing progress.

