pote / gpm

Barebones dependency manager for Go.
MIT License
1.19k stars 51 forks source link

Local vendor and gpm exec #26

Closed zankich closed 10 years ago

zankich commented 10 years ago

I created a gpm plugin https://github.com/hybridgroup/gpm-exec for locally vendoring packages and executing Go commands in the context of the locally vendored packages, but I think this functionality would be incredibly useful in the core package.

This pull requests adds an optional --path parameter to the gpm install command which allows you to specify the location of the vendor directory. It also adds a gpm exec command which executes Go commands in the context of the vendor directory.

zankich commented 10 years ago

This branch depends upon https://github.com/pote/gpm/pull/27 to be merged first

frodsan commented 10 years ago

:+1: plugin. :-1: k core.

kernelp4nic commented 10 years ago

Even if I have something similar on moonbox, I think it's ok to leave this functionality inside a plugin, and out of the core, maybe, someone just want to use what gpm provides now, and this is adding extra complexity to the code.

Actually, this two features aren't related at the same time, one could live without the other.

Also, take a look at gpv to allow you to work inside isolated environments.

pote commented 10 years ago

Thanks for the input everyone!

I'm inclined to think the same: I've been mulling over this PR the last few days but I think that while vendoring and env isolation is undoubtedly useful It's still a different responsibility than the one gpm has, I think the added complexity is not worth it in this case - core seems like a bad idea for this feature.

Here's what we can do though: let's add gpm-exec to the gpm plugins homebrew tap repository so people get exposed to it and have a simple way of installing it. You can send in a pull request with a homebrew formulae and the documentation for the readme - or I can do it too! I don't really mind as I love that there is a new plugin, we just need there to be a release tag in gpm-exec and we'll be good to go. :)

Thanks for taking the time to do this! This is also only the second gpm plugin and the first I haven't written, I'm super exited about it <3!