updated docs for upcoming 0.12 release
diff --git a/README.md b/README.md
index 39ef0e8..ee5eae4 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@
- hg
- svn
* Support custom local and global plugins (see docs/plugins.md)
-* Repository caching including reuse of packages in the `$GOPATH`
+* Repository caching and data caching for improved performance.
* Flatten dependencies resolving version differences and avoiding the inclusion
of a package multiple times.
* Manage and install dependencies on-demand or vendored in your version control
@@ -37,16 +37,25 @@
## How It Works
-The dependencies for a project are listed in a `glide.yaml` file. This can
-include a version, VCS, repository location (that can be different from the
-package name), etc. When `glide up` is run it downloads the packages (or updates)
-to the `vendor` directory. It then recursively walks through the downloaded
-packages looking for those with a `glide.yaml` file (or Godep, gb, gom, or GPM config
-file) that don't already have a `vendor` directory and installing their
-dependencies to their `vendor` directories. Once Glide has downloaded and figured
-out versions to use in the dependency tree it creates a `glide.lock` file
-containing the complete dependency tree pinned to specific versions. To install
-the correct versions use `glide install`.
+Glide scans the source code of your application or library to determine the needed
+dependencies. To determine the versions and locations (such as aliases for forks)
+Glide reads a `glide.yaml` file with the rules. With this information Glide retrieves
+needed dependencies.
+
+When a dependent package is encountered its imports are scanned to determine
+dependencies of dependencies (transitive dependencies). If the dependent project
+contains a `glide.yaml` file that information is used to help determine the
+dependency rules when fetching from a location or version to use. Configuration
+from Godep, GB, GOM, and GPM is also imported.
+
+The dependencies are exported to the `vendor/` directory where the `go` tools
+can find and use them. A `glide.lock` file is generated containing all the
+dependencies, including transitive ones.
+
+The `glide init` command can be use to setup a new project, `glide update`
+regenerates the dependency versions using scanning and rules, and `glide install`
+will install the versions listed in the `glide.lock` file, skipping scanning,
+unless the `glide.lock` file is not found in which case it will perform an update.
A projects is structured like this:
@@ -138,23 +147,35 @@
```
$ glide create
-[INFO] Generating a YAML configuration file and guessing the dependencies
-[INFO] Attempting to import from other package managers (use --skip-import to skip)
-[INFO] Found reference to github.com/Sirupsen/logrus
-[INFO] Adding sub-package hooks/syslog to github.com/Sirupsen/logrus
-[INFO] Found reference to github.com/boltdb/bolt
-[INFO] Found reference to github.com/gorilla/websocket
-[INFO] Found reference to github.com/mndrix/ps
-[INFO] Found reference to github.com/spf13/cobra
-[INFO] Found reference to github.com/spf13/pflag
-[INFO] Found reference to github.com/tinylib/msgp/msgp
-[INFO] Found reference to github.com/unrolled/secure
-[INFO] Found reference to github.com/xeipuuv/gojsonschema
-[INFO] Found reference to github.com/zenazn/goji/graceful
-[INFO] Adding sub-package web to github.com/zenazn/goji
-[INFO] Adding sub-package web/mutil to github.com/zenazn/goji
+[INFO] Generating a YAML configuration file and guessing the dependencies
+[INFO] Attempting to import from other package managers (use --skip-import to skip)
+[INFO] Scanning code to look for dependencies
+[INFO] --> Found reference to github.com/Masterminds/semver
+[INFO] --> Found reference to github.com/Masterminds/vcs
+[INFO] --> Found reference to github.com/codegangsta/cli
+[INFO] --> Found reference to gopkg.in/yaml.v2
+[INFO] Writing configuration file (glide.yaml)
+[INFO] Would you like Glide to help you find ways to improve your glide.yaml configuration?
+[INFO] If you want to revisit this step you can use the config-wizard command at any time.
+[INFO] Yes (Y) or No (N)?
+n
+[INFO] You can now edit the glide.yaml file. Consider:
+[INFO] --> Using versions and ranges. See https://glide.sh/docs/versions/
+[INFO] --> Adding additional metadata. See https://glide.sh/docs/glide.yaml/
+[INFO] --> Running the config-wizard command to improve the versions in your configuration
```
+The `config-wizard`, noted here, can be run here or manually run at a later time.
+This wizard helps you figure out versions and ranges you can use for your
+dependencies.
+
+### glide config-wizard
+
+This runs a wizard that scans your dependencies and retrieves information on them
+to offer up suggestions that you can interactively choose. For example, it can
+discover if a dependency uses semantic versions and help you choose the version
+ranges to use.
+
### glide get [package name]
You can download one or more packages to your `vendor` directory and have it added to your
@@ -171,7 +192,7 @@
Download or update all of the libraries listed in the `glide.yaml` file and put
them in the `vendor` directory. It will also recursively walk through the
-dependency packages doing the same thing if no `vendor` directory exists.
+dependency packages to fetch anything that's needed and read in any configuration.
```
$ glide up
@@ -185,6 +206,8 @@
specified as a range (e.g., `^1.2.3`) it will be set to a specific commit id in
the `glide.lock` file. That allows for reproducible installs (see `glide install`).
+To remove any nested `vendor/` directories from fetched packages see the `-v` flag.
+
### glide install
When you want to install the specific versions from the `glide.lock` file use
@@ -204,6 +227,8 @@
If no `glide.lock` file is present `glide install` will perform an `update` and
generate a lock file.
+To remove any nested `vendor/` directories from fetched packages see the `-v` flag.
+
## glide novendor (aliased to nv)
When you run commands like `go test ./...` it will iterate over all the
@@ -223,26 +248,6 @@
the name of the package you're working on. `glide name` returns the name of the
package listed in the `glide.yaml` file.
-### glide rebuild
-
-Runs `go install` on the packages in the `glide.yaml` file. This
-(along with `glide install` and `glide update`) pays special attention
-to the contents of the `subpackages:` directive in the YAML file.
-
-```
-$ glide rebuild
-[INFO] Building dependencies.
-[INFO] Running go build github.com/kylelemons/go-gypsy/yaml
-[INFO] Running go build github.com/Masterminds/cookoo/cli
-[INFO] Running go build github.com/Masterminds/cookoo
-```
-
-This is useful when you are working with large 3rd party libraries. It
-will create the `.a` files, which can have a positive impact on your
-build times.
-
-**This feature is deprecated and will be removed before Glide 1.0.0**
-
### glide tree
Glide includes a few commands that inspect code and give you details
@@ -289,6 +294,8 @@
places, `glide tree` also prints the location of the package being
imported.
+_This command is deprecated and will be removed in the near future._
+
### glide list
Glide's `list` command shows an alphabetized list of all the packages
@@ -321,11 +328,13 @@
```
$ glide --version
-glide version 0.8.0
+glide version 0.12.0
```
### glide.yaml
+For full details on the `glide.yaml` files see [the documentation](https://glide.sh/docs/glide.yaml).
+
The `glide.yaml` file does two critical things:
1. It names the current package
@@ -338,7 +347,6 @@
import:
- package: github.com/Masterminds/semver
- package: github.com/Masterminds/cookoo
- vcs: git
version: ^1.2.0
repo: git@github.com:Masterminds/cookoo.git
```
@@ -348,7 +356,6 @@
1. This package is named `github.com/Masterminds/glide`
2. That this package depends on two libraries.
-
The first library exemplifies a minimal package import. It merely gives
the fully qualified import path.
diff --git a/docs/commands.md b/docs/commands.md
index 3b233db..0449bc5 100644
--- a/docs/commands.md
+++ b/docs/commands.md
@@ -4,25 +4,40 @@
## glide create (aliased to init)
-Initializes a new workspace. Among other things, this creates a `glide.yaml` file while attempting to guess the packages and versions to put in it. For example, if your project is using Godep it will use the versions specified there. Glide is smart enough to scan your codebase and detect the imports being used whether they are specified with another package manager or not.
+Initialize a new workspace. Among other things, this creates a `glide.yaml` file
+while attempting to guess the packages and versions to put in it. For example,
+if your project is using Godep it will use the versions specified there. Glide
+is smart enough to scan your codebase and detect the imports being used whether
+they are specified with another package manager or not.
- $ glide init
- [INFO] Generating a YAML configuration file and guessing the dependencies
- [INFO] Attempting to import from other package managers (use --skip-import to skip)
- [INFO] Found reference to github.com/BurntSushi/toml
- [INFO] Found reference to github.com/Masterminds/semver
- [INFO] Found reference to github.com/Masterminds/sprig
- [INFO] Found reference to github.com/Masterminds/vcs
- [INFO] Found reference to github.com/aokoli/goutils
- [INFO] Found reference to github.com/codegangsta/cli
- [INFO] Found reference to github.com/deis/pkg/prettyprint
- [INFO] Found reference to github.com/ghodss/yaml
- [INFO] Found reference to github.com/google/go-github/github
- [INFO] Found reference to github.com/pborman/uuid
- [INFO] Found reference to golang.org/x/crypto/nacl/box
- [INFO] Adding sub-package ssh/terminal to golang.org/x/crypto
- [INFO] Found reference to gopkg.in/yaml.v2
- ...
+ $ glide create
+ [INFO] Generating a YAML configuration file and guessing the dependencies
+ [INFO] Attempting to import from other package managers (use --skip-import to skip)
+ [INFO] Scanning code to look for dependencies
+ [INFO] --> Found reference to github.com/Masterminds/semver
+ [INFO] --> Found reference to github.com/Masterminds/vcs
+ [INFO] --> Found reference to github.com/codegangsta/cli
+ [INFO] --> Found reference to gopkg.in/yaml.v2
+ [INFO] Writing configuration file (glide.yaml)
+ [INFO] Would you like Glide to help you find ways to improve your glide.yaml configuration?
+ [INFO] If you want to revisit this step you can use the config-wizard command at any time.
+ [INFO] Yes (Y) or No (N)?
+ n
+ [INFO] You can now edit the glide.yaml file. Consider:
+ [INFO] --> Using versions and ranges. See https://glide.sh/docs/versions/
+ [INFO] --> Adding additional metadata. See https://glide.sh/docs/glide.yaml/
+ [INFO] --> Running the config-wizard command to improve the versions in your configuration
+
+The `config-wizard`, noted here, can be run here or manually run at a later time.
+This wizard helps you figure out versions and ranges you can use for your
+dependencies.
+
+### glide config-wizard
+
+This runs a wizard that scans your dependencies and retrieves information on them
+to offer up suggestions that you can interactively choose. For example, it can
+discover if a dependency uses semantic versions and help you choose the version
+ranges to use.
## glide get [package name]
@@ -37,29 +52,25 @@
$ glide get github.com/Masterminds/cookoo#^1.2.3
-The version is separated from the package name by an anchor (`#`).
+The version is separated from the package name by an anchor (`#`). If no version or range is specified and the dependency uses Semantic Versions Glide will prompt you to ask if you want to use them.
## glide update (aliased to up)
-Download or update all of the libraries listed in the `glide.yaml` file and put them in the `vendor` directory. It will also recursively walk through the dependency packages doing the same thing if no `vendor` directory exists.
+Download or update all of the libraries listed in the `glide.yaml` file and put
+them in the `vendor` directory. It will also recursively walk through the
+dependency packages to fetch anything that's needed and read in any configuration.
$ glide up
-This will recurse over the packages looking for other projects managed by Glide, Godep, GB, Gom, and GPM. When one is found those packages will be installed as needed.
+This will recurse over the packages looking for other projects managed by Glide,
+Godep, gb, gom, and GPM. When one is found those packages will be installed as needed.
-A `glide.lock` file will be created or updated with the dependencies pinned to specific versions. For example, if in the `glide.yaml` file a version was specified as a range (e.g., `^1.2.3`) it will be set to a specific commit id in the `glide.lock` file. That allows for reproducible installs (see `glide install`).
+A `glide.lock` file will be created or updated with the dependencies pinned to
+specific versions. For example, if in the `glide.yaml` file a version was
+specified as a range (e.g., `^1.2.3`) it will be set to a specific commit id in
+the `glide.lock` file. That allows for reproducible installs (see `glide install`).
-If you want to use `glide up` to help you managed dependencies that are checked into your version control consider the flags:
-
-* `--update-vendored` (aliased to `-u`) to update the vendored dependencies. If Glide detects a vendored dependency it will update it and leave it in a vendored state. Note, any tertiary dependencies will not be automatically vendored with this flag.
-* `--strip-vcs` (aliased to `-s`) to strip VCS metadata (e.g., `.git` directories) from the `vendor` folder.
-* `--strip-vendor` (aliased to `-v`) to strip nested `vendor/` directories.
-
-For example, you can use the command:
-
- $ glide up -u -s
-
-This will tell Glide to update the vendored packages and remove any VCS directories from transitive dependencies that were picked up as well.
+To remove any nested `vendor/` directories from fetched packages see the `-v` flag.
## glide install
@@ -73,6 +84,8 @@
If no `glide.lock` file is present `glide install` will perform an `update` and generates a lock file.
+To remove any nested `vendor/` directories from fetched packages see the `-v` flag.
+
## glide novendor (aliased to nv)
When you run commands like `go test ./...` it will iterate over all the subdirectories including the `vendor` directory. When you are testing your application you may want to test your application files without running all the tests of your dependencies and their dependencies. This is where the `novendor` command comes in. It lists all of the directories except `vendor`.
@@ -89,32 +102,59 @@
Glide's `list` command shows an alphabetized list of all the packages that a project imports.
-```
-$ glide list
-INSTALLED packages:
- vendor/github.com/Masterminds/cookoo
- vendor/github.com/Masterminds/cookoo/fmt
- vendor/github.com/Masterminds/cookoo/io
- vendor/github.com/Masterminds/cookoo/web
- vendor/github.com/Masterminds/semver
- vendor/github.com/Masterminds/vcs
- vendor/github.com/codegangsta/cli
- vendor/gopkg.in/yaml.v2
-```
+ $ glide list
+ INSTALLED packages:
+ vendor/github.com/Masterminds/cookoo
+ vendor/github.com/Masterminds/cookoo/fmt
+ vendor/github.com/Masterminds/cookoo/io
+ vendor/github.com/Masterminds/cookoo/web
+ vendor/github.com/Masterminds/semver
+ vendor/github.com/Masterminds/vcs
+ vendor/github.com/codegangsta/cli
+ vendor/gopkg.in/yaml.v2
## glide help
Print the glide help.
-```
-$ glide help
-```
+ $ glide help
## glide --version
Print the version and exit.
-```
-$ glide --version
-glide version 0.9.0
-```
+ $ glide --version
+ glide version 0.12.0
+
+## glide mirror
+
+Mirrors provide the ability to replace a repo location with
+another location that's a mirror of the original. This is useful when you want
+to have a cache for your continuous integration (CI) system or if you want to
+work on a dependency in a local location.
+
+The mirrors are stored in an `mirrors.yaml` file in your `GLIDE_HOME`.
+
+The three commands to manager mirrors are `list`, `set`, and `remove`.
+
+Use `set` in the form:
+
+ glide mirror set [original] [replacement]
+
+or
+
+ glide mirror set [original] [replacement] --vcs [type]
+
+for example,
+
+ glide mirror set https://github.com/example/foo https://git.example.com/example/foo.git
+
+ glide mirror set https://github.com/example/foo file:///path/to/local/repo --vcs git
+
+Use `remove` in the form:
+
+ glide mirror remove [original]
+
+for example,
+
+ glide mirror remove https://github.com/example/foo
diff --git a/docs/getting-started.md b/docs/getting-started.md
index 7d2a7c6..26c9fa7 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -10,6 +10,8 @@
When this is complete you'll have a `glide.yaml` file populated with the projects being used. You can open up this file and even edit it to add information such as versions.
+Running `glide init` will also ask if you would like to use a wizard to discover information about your dependencies versions and use versions or ranges. Each decision is interactive and your choice.
+
## Updating Dependencies
To fetch the dependencies and set them to any versions specified in the `glide.yaml` file use the following command:
@@ -22,6 +24,8 @@
Glide will then create a `glide.lock` file. This file contains the entire dependency tree pinned to specific commit ids. This file, as we'll see in a moment, can be used to recreate the exact dependency tree and versions used.
+If you want to remove nested `vendor/` directories from within dependencies use the `--strip-vendor` or `-v` flag.
+
### Dependency Flattening
All of the dependencies Glide fetches are into the top level `vendor/` folder for a project. Go provides the ability for each package to have a `vendor/` folder. Glide only uses a top level folder for two reasons:
@@ -29,6 +33,8 @@
1. Each import location will be compiled into the binary. If the same dependency is imported into three `vendor/` folders it will be in the compiled binary tree times. This can quickly lead to binary bloat.
2. Instances of types created in a dependency in one `vendor/` folder are not compatible with the same dependency in other locations. Even if they are the same version. Go sees them as different packages because they are in different locations. This is a problem for database drivers, loggers, and many other things. If you [try to pass an instance created from one location of a package to another you'll encounter errors](https://github.com/mattfarina/golang-broken-vendor).
+If a dependency has a `vendor/` directory of its own Glide does not remove it by default. The resolution in the `go` toolchain will use these nested versions if they are present. To remove them use the `--strip-vendor` or `-v` flag on the `up` or `install` commands.
+
## Installing Dependencies
If you want to install the dependencies needed by a project use the `install` command like so:
@@ -55,3 +61,5 @@
$ glide get github.com/Masterminds/semver#~1.2.0
The `#` is used as a separator between the dependency name and a version to use. The version can be a semantic version, version range, branch, tag, or commit id.
+
+If no version or range is specified and the dependency uses Semantic Versions Glide will prompt you to ask if you want to use them.
diff --git a/docs/index.md b/docs/index.md
index 00419e8..c9791bf 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -16,6 +16,7 @@
There are a few ways to install Glide.
-1. Download a [versioned release](https://github.com/Masterminds/glide/releases). Glide releases are semantically versioned.
-2. Use a system package manager to install Glide. For example, using `brew install glide` can be used if you're using [Homebrew](http://brew.sh) on Mac.
-3. The latest development snapshot can be installed with `go get`. For example, `go get -u github.com/Masterminds/glide`. This is not a release version.
+1. Use the shell script to try an automatically install it. `curl https://glide.sh/get | sh`
+2. Download a [versioned release](https://github.com/Masterminds/glide/releases). Glide releases are semantically versioned.
+3. Use a system package manager to install Glide. For example, using `brew install glide` can be used if you're using [Homebrew](http://brew.sh) on Mac.
+4. The latest development snapshot can be installed with `go get`. For example, `go get -u github.com/Masterminds/glide`. This is not a release version.
diff --git a/glide.go b/glide.go
index 77c39a7..0c34030 100644
--- a/glide.go
+++ b/glide.go
@@ -1,39 +1,21 @@
-// Glide is a command line utility that manages Go project dependencies and
-// your GOPATH.
+// Glide is a command line utility that manages Go project dependencies.
//
-// Dependencies are managed via a glide.yaml in the root of a project. The yaml
-//
-// Params:
-// - filename (string): The name of the glide YAML file. Default is glide.yaml.
-// - project (string): The name of the project. Default is 'main'.
-// file lets you specify projects, versions (tags, branches, or references),
-// and even alias one location in as other one. Aliasing is useful when supporting
-// forks without needing to rewrite the imports in a codebase.
+// Configureation of where to start is managed via a glide.yaml in the root of a
+// project. The yaml
//
// A glide.yaml file looks like:
//
// package: github.com/Masterminds/glide
// imports:
-// - package: github.com/Masterminds/cookoo
-// vcs: git
-// ref: 1.1.0
-// subpackages: **
-// - package: github.com/kylelemons/go-gypsy
-// subpackages: yaml
+// - package: github.com/Masterminds/cookoo
+// - package: github.com/kylelemons/go-gypsy
+// subpackages:
+// - yaml
//
// Glide puts dependencies in a vendor directory. Go utilities require this to
-// be in your GOPATH. Glide makes this easy. Use the `glide in` command to enter
-// a shell (your default) with the GOPATH set to the projects vendor directory.
-// To leave this shell simply exit it.
+// be in your GOPATH. Glide makes this easy.
//
-// If your .bashrc, .zshrc, or other startup shell sets your GOPATH you many need
-// to optionally set it using something like:
-//
-// if [ "" = "${GOPATH}" ]; then
-// export GOPATH="/some/dir"
-// fi
-//
-// For more information use the `glide help` command or see https://github.com/Masterminds/glide
+// For more information use the `glide help` command or see https://glide.sh
package main
import (
@@ -52,25 +34,23 @@
"os"
)
-var version = "0.11.0-dev"
+var version = "0.12.0-dev"
-const usage = `The lightweight vendor package manager for your Go projects.
+const usage = `Vendor Package Management for your Go projects.
-Each project should have a 'glide.yaml' file in the project directory. Files
-look something like this:
+ Each project should have a 'glide.yaml' file in the project directory. Files
+ look something like this:
- package: github.com/Masterminds/glide
- imports:
- - package: github.com/Masterminds/cookoo
- vcs: git
- ref: 1.1.0
- subpackages: **
- - package: github.com/kylelemons/go-gypsy
- subpackages: yaml
- flatten: true
+ package: github.com/Masterminds/glide
+ imports:
+ - package: github.com/Masterminds/cookoo
+ version: 1.1.0
+ - package: github.com/kylelemons/go-gypsy
+ subpackages:
+ - yaml
-NOTE: As of Glide 0.5, the commands 'into', 'gopath', 'status', and 'env'
-no longer exist.
+ For more details on the 'glide.yaml' files see the documentation at
+ https://glide.sh/docs/glide.yaml
`
// VendorDir default vendor directory name
@@ -92,8 +72,9 @@
Usage: "Quiet (no info or debug messages)",
},
cli.BoolFlag{
- Name: "verbose",
- Usage: "Print detailed informational messages",
+ Name: "verbose",
+ Usage: "Print detailed informational messages",
+ Hidden: true,
},
cli.BoolFlag{
Name: "debug",
@@ -184,27 +165,21 @@
Description: `Gets one or more package (like 'go get') and then adds that file
to the glide.yaml file. Multiple package names can be specified on one line.
- $ glide get github.com/Masterminds/cookoo/web
+ $ glide get github.com/Masterminds/cookoo/web
The above will install the project github.com/Masterminds/cookoo and add
the subpackage 'web'.
If a fetched dependency has a glide.yaml file, configuration from Godep,
- GPM, or GB Glide that configuration will be used to find the dependencies
+ GPM, GOM, or GB Glide that configuration will be used to find the dependencies
and versions to fetch. If those are not available the dependent packages will
be fetched as either a version specified elsewhere or the latest version.
When adding a new dependency Glide will perform an update to work out the
- the versions to use from the dependency tree. This will generate an updated
- glide.lock file with specific locked versions to use.
+ the versions for the dependencies of this dependency (transitive ones). This
+ will generate an updated glide.lock file with specific locked versions to use.
- If you are storing the outside dependencies in your version control system
- (VCS), also known as vendoring, there are a few flags that may be useful.
- The '--update-vendored' flag will cause Glide to update packages when VCS
- information is unavailable. This can be used with the '--strip-vcs' flag which
- will strip VCS data found in the vendor directory. This is useful for
- removing VCS data from transitive dependencies and initial setups. The
- '--strip-vendor' flag will remove any nested 'vendor' folders and
+ The '--strip-vendor' flag will remove any nested 'vendor' folders and
'Godeps/_workspace' folders after an update (along with undoing any Godep
import rewriting). Note, The Godeps specific functionality is deprecated and
will be removed when most Godeps users have migrated to using the vendor
@@ -261,7 +236,7 @@
},
cli.BoolFlag{
Name: "strip-vendor, v",
- Usage: "Removes nested vendor and Godeps/_workspace directories. Requires --strip-vcs.",
+ Usage: "Removes nested vendor and Godeps/_workspace directories.",
},
cli.BoolFlag{
Name: "non-interactive",
@@ -320,11 +295,7 @@
ShortName: "rm",
Usage: "Remove a package from the glide.yaml file, and regenerate the lock file.",
Description: `This takes one or more package names, and removes references from the glide.yaml file.
- This will rebuild the glide lock file with the following constraints:
-
- - Dependencies are re-negotiated. Any that are no longer used are left out of the lock.
- - Minor version re-nogotiation is performed on remaining dependencies.
- - No updates are peformed. You may want to run 'glide up' to accomplish that.`,
+ This will rebuild the glide lock file re-resolving the depencies.`,
Flags: []cli.Flag{
cli.BoolFlag{
Name: "delete,d",
@@ -446,7 +417,7 @@
{
Name: "rebuild",
Usage: "Rebuild ('go build') the dependencies",
- Description: `This rebuilds the packages' '.a' files. On some systems
+ Description: `(Deprecated) This rebuilds the packages' '.a' files. On some systems
this can improve performance on subsequent 'go run' and 'go build' calls.`,
Action: func(c *cli.Context) error {
action.Rebuild()
@@ -506,7 +477,7 @@
},
cli.BoolFlag{
Name: "strip-vendor, v",
- Usage: "Removes nested vendor and Godeps/_workspace directories. Requires --strip-vcs.",
+ Usage: "Removes nested vendor and Godeps/_workspace directories.",
},
cli.BoolFlag{
Name: "skip-test",
@@ -549,19 +520,19 @@
Name: "update",
ShortName: "up",
Usage: "Update a project's dependencies",
- Description: `This uses the native VCS of each package to try to
- pull the most applicable updates. Packages with fixed refs (Versions or
- tags) will not be updated. Packages with no ref or with a branch ref will
- be updated as expected.
+ Description: `This updates the dependencies by scanning the codebase
+ to determine the needed dependencies and fetching them following the rules
+ in the glide.yaml file. When no rules exist the tip of the default branch
+ is used. For more details see https://glide.sh/docs/glide.yaml
If a dependency has a glide.yaml file, update will read that file and
- update those dependencies accordingly. Those dependencies are maintained in
+ use the information contained there. Those dependencies are maintained in
a the top level 'vendor/' directory. 'vendor/foo/bar' will have its
dependencies stored in 'vendor/'. This behavior can be disabled with
'--no-recursive'. When this behavior is skipped a glide.lock file is not
generated because the full dependency tree cannot be known.
- Glide will also import Godep, GB, and GPM files as it finds them in dependencies.
+ Glide will also import Godep, GB, GOM, and GPM files as it finds them in dependencies.
It will create a glide.yaml file from the Godeps data, and then update. This
has no effect if '--no-recursive' is set.
@@ -624,7 +595,7 @@
},
cli.BoolFlag{
Name: "strip-vendor, v",
- Usage: "Removes nested vendor and Godeps/_workspace directories. Requires --strip-vcs.",
+ Usage: "Removes nested vendor and Godeps/_workspace directories.",
},
cli.BoolFlag{
Name: "skip-test",
@@ -672,13 +643,16 @@
},
{
Name: "tree",
- Usage: "Tree prints the dependencies of this project as a tree.",
+ Usage: "(Deprecated) Tree prints the dependencies of this project as a tree.",
Description: `This scans a project's source files and builds a tree
representation of the import graph.
It ignores testdata/ and directories that begin with . or _. Packages in
vendor/ are only included if they are referenced by the main project or
- one of its dependencies.`,
+ one of its dependencies.
+
+ Note, for large projects this can display a large list tens of thousands of
+ lines long.`,
Action: func(c *cli.Context) error {
action.Tree(".", false)
return nil
@@ -771,7 +745,7 @@
Usage: "Manage mirrors",
Description: `Mirrors provide the ability to replace a repo location with
another location that's a mirror of the original. This is useful when you want
- to have a cache for your continious integration (CI) system or if you want to
+ to have a cache for your continuous integration (CI) system or if you want to
work on a dependency in a local location.
The mirrors are stored in an mirrors.yaml file in your GLIDE_HOME.