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

Rename commands #13

Merged
merged 5 commits into from
Nov 28, 2018
Merged

Rename commands #13

merged 5 commits into from
Nov 28, 2018

Conversation

lox
Copy link

@lox lox commented Nov 17, 2018

I tried a slightly unusual command / sub-command ordering initially, with <action> <subject>, but I don't think it works well. Before we hit 1.0 I'm going to revert this to be inline with our other tools:

  • bk create build to bk build create
  • bk list pipelines to bk pipeline list
  • bk local run to bk run

@lox lox requested a review from toolmantim November 17, 2018 22:29
@petemounce
Copy link

petemounce commented Nov 18, 2018

I like having the bk local <local things> separation to make it clear that that won't affect the remote buildkite.com things.

Is it possible to dump out a tree-view in ASCII of the current command structure? We've got our own workflow tool, and we found that was helpful when figuring out which commands to put where. It's also helpful for spotting commonalities and inconsistencies with language - having the same verbs for things is useful for UX. PowerShell does this quite well, with a mandated verb-noun command naming pattern. Making the sketch, finally, allows more people to come along, fill in the blanks, and have that done in a way that maintains a somewhat cohesive UX.

Here's our sketch (as in, this is a dump of what we want to put into it, not programmatically produced) in a markdown:

circle
  check (intend to fold this into `merge --dry-run`)
        (intend this to become presubmit)
  merge (keep this)
  
  push         (idea: wrap git push and make sure pre-push hook is installed and runs)

  ci           (idea: deal with CI)
    pipeline
      new      (idea: create new safe-defaults pipeline configuration files)
        --name <name>     // pipeline name
        --generate [steps,definition] // to generate just steps or just definition files
        --directory <dir> // into here; otherwise, current repository's .buildkite folder
      push     (idea: push a pipeline to BuildKite based on the specified config file)
        --name <name>     // pipeline name
        --directory <dir> // from here; otherwise, current repository's .buildkite folder
      pull     (idea: take a remote pipeline from BuildKite and create a local representation)
        --name <name>     // pipeline name
        --directory <dir> //to here; otherwise, current repository's .buildkite folder
      check    (idea: verify deployed pipelines correspond to source controlled configurations. Default behaviour: check all corresponding to working dir repo)
        --all             // verify all 
        --name <name>     // pipeline name
        --directory <dir> // to compare pipeline against specific configuration instead of the one in .buildkite
      delete   (idea: delete a deployed pipeline)
        --name <name>     // pipeline name

    trigger    (idea: trigger actual CI)   
    check      (idea: run what CI would, locally)
    status     (idea: has CI run and passed against HEAD?)

  local        (idea: commands delegate into by-convention bash scripts within current repo)
    prebuild   (idea: lint, fast tests pre-compilation step)
    check      (idea: alias for prebuild)
    build
    test
    publish

  review       (idea: deal with reviews)
    --id <id>  (infer from branch if possible, but allow to specify)

    ask        (idea: ask for review of branch. Specify reviewers; that might be automated before this via prow.)
    chase      (idea: ping people that are stale on given review, or ask for next round after comments processed.)
  
  init         (idea: clone a repo, and set up configured hooks once it arrives)
    --git <git url to clone from>
  
  pr
    new        (idea: alias for review-ask)

  branch
    new        (idea: way to create a branch with a semantic prefix that we can then use within release note generation, semver, etc) 
      feature
      fix
  
  version

@lox
Copy link
Author

lox commented Nov 28, 2018

I agree @petemounce! Changed to local run.

@lox lox merged commit e635a7d into master Nov 28, 2018
@lox lox deleted the rename-commands branch November 28, 2018 22:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants