nookskill / devbuddy

Setup your projects in a consistent way. Help other devs onboard easily!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DevBuddy

Go Report Card CircleCI GitHub Release GitHub Release Date Gitter GitHub Release

Contents:

What is this?

DevBuddy is an open-source implementation of an amazing internal tool developed at Shopify called "Dev".

The first goal of this tools is to automate the setup tasks required to work on a project.

With DevBuddy, pushing a change on a project you never touched look like this:

  • bud clone devbuddy/devbuddy
  • bud up
  • git commit
  • bud test
  • git push

Status and progress

DevBuddy is more useful for Python, Go and Node projects. More languages will be natively supported. DevBuddy is still useful for languages without native support thanks to the custom task.

See the project config documentation.

Tasks:

Python:

  • Python environment (pyenv + virtualenv)
  • Pip (requirements file)
  • Pipenv (support for Pipfile)

Go:

  • Go environment (with GOPATH)
  • Dep (support for Go Dep)

Node:

  • Node environment
  • Dependencies with NPM
  • Dependencies with Yarn planned

Ruby: planned

Rust: planned

Others:

  • Homebrew
  • Apt
  • Custom (conditional shell command)
  • Docker Compose (manage a docker-compose setup): planned

Features:

  • Notification when important files (eg: requirements.txt) are updated locally (eg: by git pull)
  • A help command to guide a new developer based on dev.yml
  • A upgrade command to auto-upgrade DevBuddy

Code hosting platform:

  • Github
  • Gitlab
  • Bitbucket (with Git)

Shell integration

  • Bash
  • Zsh

Install

Homebrew

$ brew install devbuddy/devbuddy/devbuddy

Automatic

$ bash -c "$(curl -sL https://raw.githubusercontent.com/devbuddy/devbuddy/master/install.sh)"

Uninstall it:

$ sudo rm /usr/local/bin/bud

Manual

Older releases are available on Github releases.

Linux

  • curl -L https://github.com/devbuddy/devbuddy/releases/download/v0.7.0/bud-linux-amd64 > /tmp/bud
  • sudo install /tmp/bud /usr/local/bin/bud

MacOs

  • curl -L https://github.com/devbuddy/devbuddy/releases/download/v0.7.0/bud-darwin-amd64 > /tmp/bud
  • sudo install /tmp/bud /usr/local/bin/bud

Setup

★ Install the shell integration (in ~/.bash_profile):

eval "$(bud --shell-init --with-completion)"

A safer version:

type bud > /dev/null 2> /dev/null && eval "$(bud --shell-init --with-completion)"

Usage

★ Add a dev.yml file in your project:

up:
  - go: 1.9.2
  - golang_dep
  - python: 3.6.4rc1
  - pip:
    - requirements.txt

commands:
  test:
    desc: Run the tests
    run: script/test
  lint:
    desc: Lint the project
    run: script/lint

open:
  staging: https://staging.myapp.com
  doc: https://godoc.org/github.com/org/myapp

See DevBuddy own dev.yml

$ bud
Usage:
  bud [flags]
  bud [command]

Available Commands:
  cd          Jump to a local project
  clone       Clone a project from github.com
  create      Create a new project
  help        Help about any command
  inspect     Inspect the project and its tasks
  open        Open a link about your project
  up          Ensure the project is up and running
  upgrade     [experimental] Upgrade DevBuddy to the latest available release.

Flags:
  -h, --help              help for bud
      --shell-init        Shell initialization
      --version           version for bud
      --with-completion   Enable completion during initialization

Use "bud [command] --help" for more information about a command.

License

MIT

Authors:

About

Setup your projects in a consistent way. Help other devs onboard easily!

License:MIT License


Languages

Language:Go 86.0%Language:Python 12.8%Language:Shell 1.3%