Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install/Setup/Update UX improvements #46

Closed
3 tasks done
acburdine opened this issue Sep 30, 2016 · 1 comment
Closed
3 tasks done

Install/Setup/Update UX improvements #46

acburdine opened this issue Sep 30, 2016 · 1 comment

Comments

@acburdine
Copy link
Member

acburdine commented Sep 30, 2016

(goes side-by-side with #3)

At the moment, the UX of ghost install is somewhat lacking in functionality and ease-of-use. The biggest issues at the moment are:

  • There is no way to bypass the prompts in ghost install - making running the install command autonomously impossible
  • Recovering after a failed update or install is difficult (& confusing) because of some of the checks that ghost update and ghost install have
  • Ghost install is rather complex in what it all covers, and it is impossible to not run various steps, e.g. the config setup and the "Do you want to start Ghost" prompt
  • Viewing any of the internal things that the CLI is doing is difficult (while this is not necessary for general users, it can be helpful for developers when debugging install issues)

There are several steps that need to be taken to solve these three issues:

  • Addition of a --force command line option for ghost update

The biggest problem with failed updates is when npm fails to correctly install. When that happens, there are occasionally leftover artifacts that need to be removed (for example: a package.json file or node_modules directory in the main install root, or a version of Ghost that wasn't symlinked/installed correctly).

A force option would clear all of these potential leftover artifacts and then proceed with a normal install or update. What it would not do is clear any of the content folder or configuration - there could potentially be other commands to do that but we want to preserve all of the user's data. Plus, the content folder normally doesn't cause install or update failures, so there's no need to clear it 😄

  • Split up ghost install into ghost install and ghost setup with a --no-setup flag in ghost-install

ghost install currently sets up the ghost-cli necessary folders, then downloads and installs ghost from npm, then prompts for config & start parameters. In the future, there will need to be more things setup such as an nginx/apache config or ssl configuration. Doing all of this inside of ghost install will be tricky, especially when it becomes necessary to disable any user interaction (for autonomous installation).

So, the idea is to have ghost install take care of only setting up the install structure and downloading/installing Ghost. A second command, ghost setup, will be used to take care of initializing the config (via ghost config) and setting up whatever nginx/apache/ssl/etc configuration needs to be done on install. Additionally, an option would be added to the ghost install command that would allow the ghost setup command to be bypassed.

  • Add additional verbosity to the cli output with a --verbose flag

Currently, ghost-cli outputs only a list of steps along with a spinner to indicate progress. When this new flag is not specified, the behavior will remain the same. However, with the addition of this flag, the steps will be added to by a more verbose output (e.g. outputting the results of npm install to the console instead of suppressing it).

@acburdine acburdine added this to the 1.0.0-alpha.4 milestone Oct 3, 2016
acburdine added a commit that referenced this issue Oct 4, 2016
refs #46, closes #43
- split out configuration & start part of install into `ghost setup` command
- add `--no-setup` option to ghost install to refrain from running the `ghost setup` command automatically
- ensure advanced config parameters are passed correctly
acburdine added a commit that referenced this issue Oct 17, 2016
refs #46
- allows a user to update ghost to latest version regardless of what is currently installed
acburdine added a commit that referenced this issue Oct 17, 2016
@acburdine acburdine removed this from the 1.0.0-alpha.4 milestone Oct 18, 2016
acburdine added a commit to acburdine/Ghost-CLI that referenced this issue Jan 28, 2017
closes TryGhost#136, TryGhost#46, TryGhost#89
- deps: listr@0.10.0
- refactor things to use node4 es6 features
- cleanup all the things
acburdine added a commit to acburdine/Ghost-CLI that referenced this issue Jan 28, 2017
closes TryGhost#136, TryGhost#46, TryGhost#89
- deps: listr@0.10.0
- refactor things to use node4 es6 features
- cleanup all the things
acburdine added a commit to acburdine/Ghost-CLI that referenced this issue Jan 28, 2017
closes TryGhost#136, TryGhost#46, TryGhost#89
- deps: listr@0.10.0
- refactor things to use node4 es6 features
- cleanup all the things
@acburdine
Copy link
Member Author

Closed in #137

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant