Azure / azure-dev

A developer CLI that reduces the time it takes for you to get started on Azure. The Azure Developer CLI (azd) provides a set of developer-friendly commands that map to key stages in your workflow - code, build, deploy, monitor, repeat.
https://aka.ms/azd
MIT License
410 stars 198 forks source link

[Issue] `azd deploy` no longer reports deployment sub status #1317

Closed wbreza closed 1 year ago

wbreza commented 1 year ago

With the refactoring of the new UX updates for the azd deploy command the user no longer sees additional sub status information about the phase of the deployment.

I feel like the sub status information is really important and provides the user with more incremental feedback about the phase of the deploy operations from building, packaging, uploading, etc.  

Expected: | ==== | Deploying service api (Creating deployment package)

or

| ==== | Deploying service api (Pushing container image)

Actual: | ==== | Deploying service api

vhvb1989 commented 1 year ago

I would consider using a single step for each sub-status, instead of just temporal labels within the parenthesis.

Something like:

(X)  Creating deployment package
(X)  Pushing container image
| ====   | Deploying service api

This is similar to provision operation. This way, the user can be all the sub-steps at the end.

Austinauth commented 1 year ago

A few proposals to consider @wbreza @vhvb1989

I think the decision comes down to how important it is to see the completion status for every single sub-step (the list could get very long). If it's important to have that level of granularity like we do with the provisioning I suggest option 3. If it's not as important for the status of the sub-step to persist I suggest options 1 or 2. @savannahostrowski thoughts?

Option 1: Temporal

image Pros: Simple. Takes minimal vertical space. Cons: Sub-step status does not persist (is this bad?).

Option 2: Temporal (Broken out by service)

image Pros: Simple. Takes minimal vertical space. Slightly more detailed than option 1. You can map failure to a specific service. Cons: Sub-step status does not persist (is this bad?).

Option 3: Progress list + Prefix

image Pros: Detailed (is this a good thing?). Can see what service a sub-step maps to. Troubleshoot when a step fails. Cons: All sub-steps grouped into a single list, hard to map to a specific service. Longest.

savannahostrowski commented 1 year ago

I personally like option 1. We should think about surfacing output that strikes a balance between approachable + enough info to help debug if something goes wrong.

We should think about this from the end user perspective as well as our perspective:

Austinauth commented 1 year ago

Thanks @savannahostrowski that's great feedback.

To your point about ensuring we think about this from multiple perspectives, I may be able to better accomplish this if I had a few different specific deployment related use cases I could mockup for discussion. The error/failure cases in particular.

savannahostrowski commented 1 year ago

I think this is a great idea.

So I think mocking up the following would be helpful:

Austinauth commented 1 year ago

@savannahostrowski, @wbreza, @vhvb1989

After meeting with Wallace yesterday, I'm proposing we go with something like this:

Image

A few callouts:

Use Case 1: azd up

Command success screen Image

Use Case 2: azd deploy

To view prototype (steps 1-5) click here.

Command success screen Image

Use Case 3: azd deploy error

Note: Does not include error for Docker output step, will update in issue #898.

‼️ Feedback requested on the error/warning messages.

Command error screen Image

rajeshkamal5050 commented 1 year ago

@vhvb1989 please take a look at the above mockups. Will keep it for the April fit-n-finish iteration.

vhvb1989 commented 1 year ago

Closing this. We ended up implementing the temporal status w/o keeping those in the list of completed steps (only with parenthesis as part of the progress)