Is this a BUG REPORT or FEATURE REQUEST? (choose one):
Task
What you expected to happen:
Before we build too much more on top of this, we should take a step back and look at the verbs/nouns used in the CLI and ensure the language matches what we want moving forward.
Done criteria:
ddev add/stop/start/restart usage for our 3 planned platforms signed off on by @rickmanelius ( #2, https://github.com/drud/general/issues/71)ddev without arguments should print helpddev prints help.The research and/or work outlined for the non "newmedia" platform plugins exist at:
https://github.com/drud/general/issues/71
As discussed. There are 4 parts
I don't mind the current verbs/nouns. I am biased though.
Over in https://github.com/drud/ddev/pull/52 @tannerjfco has already split 'add' into 'start' and 'import', which seems like a good thing. IMO there are probably 3 logical parts of the former 'add', 'init' (tell it what kind of site and what the name of the thing is - equivalent of 'init' in vagrant world, or writing-a-config-file in the docker world), 'start' (start up the containers so they can work, equivalent of 'up' in the vagrant world or 'start' in the docker world), 'import', where you pull in resources like db from some external source.
I'll cross-post in #52, but we had decided on config over init, as the thought was you could re-run config and it would auto-fill with the existing config (if you needed to change something)
The only problem I have with 'config' is it seems to imply global configuration. But if we aren't using global configuration it might be fine.
Great point. I don't think we considered the global config command when deciding on that word.
We need some real help quickly on this @rickmanelius - Already the start/stop that devs have used is changing meaning in https://github.com/drud/ddev/pull/52. As I understand, devs used start/stop to manage resources on their machine in order to have only the containers for the most current sites running. Then config is in play in https://github.com/drud/ddev/issues/57 - possibly the key issue with config is that we are switching from a global idea of "config" to a site-specific localized config.
Note that https://github.com/drud/ddev/pull/58 completely removes the traditional/global idea o config.
There is not much risk in choosing the wrong words here, the problem is choosing the wrong semantics. It's easy to alias commands, it's fairly easy to change the primary name for a command. But if we don't get logical abstractions (regardless of the words) that resonate with devs, then we do have a problem.
I can take a peek after stand-up today.
As of commit https://github.com/drud/ddev/tree/06ac3b28f2a429ece86cb39e35d50d0c5ee5c94a on master (updated yesterday), running ddev without any flags outputs all available commands. The current inventory of nouns/verbs stands as the following:
I'm going to move this analysis to a google doc for now and (once completed) post summary back to this thread.
As per https://github.com/drud/ddev/pull/52, there is an additional command "import" as part of replacing "add" in favor of "import" and "start".
In order to answer this, I think it makes back to step back and focus on the intentions of an end-user and that will inform the inventory and selection of words. Broadly, we see things categorized into the following categories.
Given this breakdown, there are areas that get a little blurry. For example, let's say I'm an end-user trying to get an archive up and running. In an ideal world, there would be a shortcut (similar to what we're discussing with platform plugin) where we could just point at an archive that would unzip, place into the appropriate folder, and get a project configuration in place. In a more manual approach, there would be distinct steps to do each.
We also want to make sure we have parity. If there is a command that pulls files in (import) there should be one that removes them (rm). There may in fact be a use case to create a shortcut (rm, import, and config). If we look outward toward the experiences of other tools, we see this as a "rebuild", and that command would probably have different ways of importing based on the type of provider pluging it is.
As noted earlier in this thread, there is a possible pain point surrounding the tripled duty that "config" is handling. We are using it to both add and update the projects configuration. Alternatively, it could update a global ddev configuration.
This is a bit rambly, but I think it boils down to 4 things:
Easy Items:
Harder Items:
Given that items 1-3 should be addressable through a search & replace or an alias, the biggest issue is #4. This will require a little more thought because I like the idea of the configuration handling both the initial config file generate and update, but we still need a way to handle the global configuration (which I believe is useful and shouldn't be dropped).
Initial recommendations
These are largely naming conventions and do not effect the current functionality or intention behind the words.
The team (Brad, Kevin, Randy, Chris, Tanner, and myself) met today to review the proposed changes. Here are the notable outcomes and summarized future state for 0.2.
Here are a list of decisions:
Here are a list of next actions:
@cyberswat I moving to needs review (previous comment should be the final summary) and leaving it up to you who would be appropriate to tag for that. Once approved with no major changes, we can close this out and create the suggested tickets listed above. Moving on for now!
@rickmanelius this is looking good. Do you want to create the new tickets so that this issue can be closed?
Moving on with these tasks:
"update" and "workon" were removed here https://github.com/drud/ddev/pull/58.
"sequelpro" request to remove is here https://github.com/drud/ddev/issues/81.
Clarification of "import" intention was added to the ticket being used to address that functionality. See https://github.com/drud/ddev/issues/33#issuecomment-287424809.
Alright. All next actions are performed (either completed already or moved to new tickets). Closing!
Most helpful comment
Notes from 2017-03-13
The team (Brad, Kevin, Randy, Chris, Tanner, and myself) met today to review the proposed changes. Here are the notable outcomes and summarized future state for 0.2.
Outcomes
Here are a list of decisions:
Here are a list of next actions:
Future State v0.2