Giter Club home page Giter Club logo

gvp's Introduction

Go Versioning Packager Build Status Support via Gratipay

gvp stands for Go Versioning Packager and is based on gst, a similar tool that provides dependency isolation for Ruby gems.

The tool modifies your GOPATH to point to a local .godeps/ directory so that you can keep the dependencies of your project isolated there, it also modifies GOBIN and PATH to include the new GOPATH/bin directory.

gvp is a companion tool to gpm but both tools can be used independently from each other.

Example usage: Go Dependency Management and Vendoring with gpm + gvp:

gpm + gvp usage

Install via Homebrew

$ brew install gvp

Install in *nix

$ git clone https://github.com/pote/gvp.git && cd gvp
$ git checkout v0.1.0 # You can ignore this part if you want to install HEAD.
$ ./configure
$ make install

Usage

Since gvp is a script and runs in a child environment of your shell, the latter will not take the env changes unless you source them.

$ source gvp

Commands

source gvp    Modifies GOPATH, GOBIN and PATH to use the .godeps directory.
gvp version   Outputs version information.
gvp help      Prints this message.

PLugins

As of v0.1.0 gvp includes a plugin system very much similar to the one in gpm.

The way gvp plugin work is simple: whenever an unknown command is passed into gvp it will look for an executable in your $PATH called gvp- and if it exists it will run it while passing all extra arguments to it, simple yet powerful.

This brings a lot to the table: plugins can be written in anything, they can be Go binaries, bash scripts, Ruby gems, Python packages, you name it. gvp wants to make it easy for you to extend it. :)

If you happen to write a plugin for gvp: please open an issue so we can compile a list of useful plugins as well as add them to the gpm homebrew tap so users can install them easily.

Why?

Dependencies of multiple Go projects are by far easier to handle in isolation, using plain gpm to handle your dependencies means that you are forced to run it again every time you work on a new project, this can get old quickly.

Using gvp can greatly simplify your workflow, by isolating your Go project dependencies you only need to run source gvp in order to be back in the work environment of your application, this means that there will never be Go packages installed in your system which will conflict in versioning across your different projects.

If for some reason you need to ship your repository with its dependencies included this is also of help, but including a Godeps file to use with gpm will probably be your best option.

gvp's People

Contributors

inkel avatar jpfuentes2 avatar kenshinx avatar larryprice avatar pote avatar tonchis avatar wicast avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.