mtibben / gogpm Goto Github PK
View Code? Open in Web Editor NEWBarebones dependency manager for Go.
License: BSD 3-Clause "New" or "Revised" License
Barebones dependency manager for Go.
License: BSD 3-Clause "New" or "Revised" License
We use the --points-at
flag when using git. This means git versions before 1.7.7 are not compatible. We should probably warn the user
Packages like gopkg.in/check.v1 don't need /...
Packages like github.com/bradfitz/gomemcache need /...
gogpm bootstrap
should work that out when writing a Godeps file
We should aim for 100% test coverage
github.com/go-sql-driver/mysql
check deps for differences / changes
Attempted to get version using;
gogpm --version
(bad command)
Output was:
flag provided but not defined: -adsljkfhaskld
Usage of gogpm:
Note no actual usage was printed.
Expected output (similar to gogpm alskjdlas
):
gogpm is a tool for managing package dependency versions
gogpm leverages the power of the go get command and the underlying version
control systems used by it to set your Go dependencies to desired versions,
thus allowing easily reproducible builds in your Go projects.
A Godeps file in the root of your Go application is expected containing
the import paths of your packages and a specific tag or commit hash
from its version control system, an example Godeps file looks like this:
$ cat Godeps
# This is a comment
github.com/nu7hatch/gotrail v0.0.2
github.com/replicon/fast-archiver v1.02 #This is another comment!
github.com/nu7hatch/gotrail 2eb79d1f03ab24bacbc32b15b75769880629a865
Usage:
$ gogpm bootstrap [packages] # Downloads all top-level packages required by the listed
# import paths and generates a Godeps file with their
# latest tags or revisions.
# For more about specifying packages, see 'go help packages'.
$ gogpm install # Parses the Godeps file, installs dependencies and sets
# them to the appropriate version.
$ gogpm version # Outputs version information
$ gogpm help # Prints this message
gogpm install
is slow because it needs to discover the VCS of each listed package by making HTTP requests.
gogpm
is currently using the the VCS discovery logic from go get
which leads to this issue.
But could we determine the VCS without needing to touch the network?
gpm
"guesses" the VCS by looking for .git
.hg
directories. But this is not technically correct because for example a git repo might actually have a .hg directory. Of course that is an edge-case, but it points to the fact that guessing could lead to unintended side effects.
I wonder if we should embed the VCS metadata in the Godeps file. For example something like:
bitbucket.org/liamstask/goose hg:bb8240b815dff5719b11b1ef10b8f4430d3d6a05
code.google.com/p/go.text hg:e4132d00dbd1
github.com/abh/geoip git:da130741c8ed2052f5f455d56e552f2e997e1ce9
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.