Skip to content

Rethink verbosity and developer experience for all commands #179

@nmetulev

Description

@nmetulev

Today, most commands spit out a various log of work performed, spamming the output, even when verbosity is set to default. This makes it dificult to understand what each command does spams the console window.

To fix this:

  1. all commands should print the bare minimum by default. A single line for most will be enough
  2. We should use progress rings that show the details of work happening, and then clearing the details to indicate the work was completed
  3. show relevant errors and logs only if something fails. if something fails, we should then hint to the user to run the command with more verbosity to get more logs or details

For example, the init command could have the following stages:

Init example

Starting initialization

> winapp init
  ✔ Created config file: D:\temp\cli-temp\app1\winapp.yaml
  ❯ Installing SDK dependencies (WinAppSDK, WindowsSDK, CppWinRT, BuildTools)
      ✔ Microsoft.WindowsAppSDK 1.8.251106002 downloaded
      ⠸ Downloading Microsoft.Windows.ImplementationLibrary

Once packages are downloaded

> winapp init
  ✔ Created config file: D:\temp\cli-temp\app1\winapp.yaml
  ✔ Installed SDK dependencies (WindowsAppSDK, WindowsSDK, CppWinRT, BuildTools)
  ❯ Generating C++/WinRT projections
      ✔ Generated C++/WinRT projections with cppwinrt
      ⠸ Copying headers to D:\temp\cli-temp\app1\.winapp\inlcude

Completed initialization

> winapp init
  ✔ Created config file: .\winapp.yaml
  ✔ Installed SDK dependencies (WindowsAppSDK, WindowsSDK, CppWinRT, BuildTools)
  ✔ Generated C++/WinRT projections in .\.winapp
  ✔ Created manifest: .\appxmanifest.xml
  ✔ Created dev certificate for package signing: .\devcert.pfx
  ✔ Installed Windows App Runtime
  ✔ Enabled dev mode
  ✔ Installed Visual Studio build tools
  ✔ Added .winapp and devcert.pfx to .gitignore
>

Commands that need to be updated:

  • init
  • restore
  • pack
  • update
  • create-debug-identity
  • node add-electron-debug-identity
  • node create-addon all templates

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions