spring-projects / spring-cli

A CLI focused on developer productivity
Apache License 2.0
95 stars 37 forks source link

Rationalize project creation #104

Open snicoll opened 10 months ago

snicoll commented 10 months ago

In the current reference guide, the spring boot new command is described as:

The spring boot new command makes it easy to create Spring Boot applications.

Then later on there is the "initializr" command that is described as:

Shell style project creation mimics how project is created from an UI[...]

I don't really expect those two commands to merge as they're operating with different assumptions. However, I expect the "Spring CLI" to present how to create a new project consistently. Right now the doc has one front and center section for the "boot new" command and what seems to be a generic command doc for the "initializr" one.

Somewhat related and this can be a separate issue if needed, the "initializr" term does not look a great candidate for this IMO. The project code name has a typo "on purpose" but I think it would be confusing for users that are not aware of that (and, frankly, I don't think they should). Using init would also be a natural way for users migrating from the Spring (Boot) CLI.

In summary, the CLI offers two ways of creating a new project and no guidance of when to chose one over the other.

jvalkeal commented 10 months ago

Ups, had a wrong commit reference, reopen.

jvalkeal commented 10 months ago

We've been struggling with "initializr" for reasons you also mentioned and secondly as it's "typoed" it's hard to write. It's definitely going to get renamed/merged with something else. Naming is hard...

jvalkeal commented 4 months ago

What I'd really like to see is having spring init <type> command.

spring init catalog
spring init start

We're essentially getting something from a catalog or from an initializer.

markpollack commented 4 months ago

spring boot start where start refers to start.spring.io Alternatively, spring boot start-spring-io which is longer, though tab completion helps that, but is more descriptive.

FWIW, there may eventually be spring boot run command that could create confusion with a start command, but since folks are used to the nomenclature start.spring.io and mvn spring-boot:run I hope the difference would be understood easily.

This suggestion would align with current naming and then fit naturally in the help command that groups together spring boot new, spring boot add and spring boot start

Thoughts?