booster icon indicating copy to clipboard operation
booster copied to clipboard

Remove most of the parameters from new:project command and other developer experience improvements

Open adrian-lorenzo opened this issue 2 years ago • 6 comments

Feature Request

Description

After these months of creating a bunch of projects using Booster, our team feels that the project creation project could be shorter and faster

The only parameter that makes sense to request is the provider, the rest feel completely unnecessary for any greenfield project. Our team usually skips most of the parameters when we're creating an application in Booster. I don't believe they are providing value to the user right away, so I think we should remove them and make the process faster.

The process of creating a Booster project would be reduced from eight steps to just two:

  1. Submitting the new:project command
  2. Selecting the provider

Also, I would also suggest moving the tags from the providers to the beginning of the line and also using coloured text to make it easier to read for users, since the name of the package is not crucial for their knowledge.

We could even remove the name of the package. I don't believe it is providing much value.

adrian-lorenzo avatar Oct 11 '22 10:10 adrian-lorenzo

I've been discussing with @Fecony via PM, and I'm not sure (like really I have no idea, not favoring one approach or another) if having an interactive wizard improves DX or not.

One thing that I've seen is for example the Haskell build tool, Cabal, has a --non-interactive flag to skip these steps. But at the same time I think that could be an extra step that reduces DX.

Thoughts?

NickSeagull avatar Oct 28 '22 10:10 NickSeagull

Maybe the opposite? We could provide an --interactive flag and by default require the project name and the provider package as parameters. It could fail if the provider package is not present:

$ boost new:project my-project-name --runtime @boostercloud/framework-provider-aws

  // No prompts, the project is generated and initialized for AWS

Or

$ boost new:project my-project-name --interactive

  // Current behavior

What do you think?

javiertoledo avatar Nov 30 '22 21:11 javiertoledo

Also, would it make sense to skip package installation by default and provide an --autoinstall-packages flag or require the package manager name now that we support many?

$ boost new:project my-project-name --runtime @boostercloud/framework-provider-aws --package-manager pnpm --autoinstall-packages

javiertoledo avatar Nov 30 '22 21:11 javiertoledo

Oh, just saw that we already have a --skipinstall flag 🤡

javiertoledo avatar Nov 30 '22 21:11 javiertoledo

so we might not need this feature anymore?

hannahbrooks avatar Nov 30 '22 21:11 hannahbrooks

Hi @hannahbrooks do you know if this issue was completely covered by your PR #1263 ?

glammers1 avatar Mar 31 '23 10:03 glammers1