s/vsolver/gps/g
diff --git a/action/get.go b/action/get.go
index 3c900ae..2e6a05d 100644
--- a/action/get.go
+++ b/action/get.go
@@ -15,7 +15,7 @@
 	"github.com/Masterminds/glide/repo"
 	"github.com/Masterminds/glide/util"
 	"github.com/Masterminds/semver"
-	"github.com/sdboyer/vsolver"
+	"github.com/sdboyer/gps"
 )
 
 // Get fetches one or more dependencies and installs.
@@ -37,13 +37,14 @@
 		msg.Die("Could not find the vendor dir: %s", err)
 	}
 
-	args := vsolver.SolveArgs{
-		Name:     vsolver.ProjectName(conf.ProjectName),
+	args := gps.SolveArgs{
+		Name:     gps.ProjectName(conf.ProjectName),
 		Root:     filepath.Dir(glidefile),
 		Manifest: conf,
+		Ignore:   conf.Ignore,
 	}
 
-	opts := vsolver.SolveOpts{
+	opts := gps.SolveOpts{
 		Trace:       true,
 		TraceLogger: log.New(os.Stdout, "", 0),
 	}
@@ -60,7 +61,7 @@
 	}
 
 	// Create the SourceManager for this run
-	sm, err := vsolver.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), base, false)
+	sm, err := gps.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), base, false)
 	defer sm.Release()
 	if err != nil {
 		msg.Err(err.Error())
@@ -80,7 +81,7 @@
 	}
 
 	// Prepare a solver. This validates our args and opts.
-	s, err := vsolver.Prepare(args, opts, sm)
+	s, err := gps.Prepare(args, opts, sm)
 	if err != nil {
 		msg.Err("Aborted get - could not set up solver to reconcile dependencies: %s", err)
 		return
@@ -134,7 +135,7 @@
 // - sets up insecure repo URLs where necessary
 // - generates a list of subpackages
 func addPkgsToConfig(conf *cfg.Config, names []string, insecure, nonInteract, testDeps bool) (int, error) {
-	// TODO refactor this to take and use a vsolver.SourceManager
+	// TODO refactor this to take and use a gps.SourceManager
 	if len(names) == 1 {
 		msg.Info("Preparing to install %d package.", len(names))
 	} else {
@@ -202,7 +203,7 @@
 
 		dep := &cfg.Dependency{
 			Name:       root,
-			Constraint: vsolver.Any(),
+			Constraint: gps.Any(),
 		}
 
 		// When retriving from an insecure location set the repo to the
diff --git a/action/install.go b/action/install.go
index 96ade7f..9afb974 100644
--- a/action/install.go
+++ b/action/install.go
@@ -13,7 +13,7 @@
 	"github.com/Masterminds/glide/msg"
 	gpath "github.com/Masterminds/glide/path"
 	"github.com/Masterminds/glide/repo"
-	"github.com/sdboyer/vsolver"
+	"github.com/sdboyer/gps"
 )
 
 // Install installs a vendor directory based on an existing Glide configuration.
@@ -31,33 +31,31 @@
 	}
 
 	// Create the SourceManager for this run
-	sm, err := vsolver.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), base, false)
+	sm, err := gps.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), base, false)
 	defer sm.Release()
 	if err != nil {
 		msg.Err(err.Error())
 		return
 	}
 
-	args := vsolver.SolveArgs{
-		Name:     vsolver.ProjectName(conf.ProjectName),
-		Root:     filepath.Dir(vend),
-		Manifest: conf,
-	}
-
-	opts := vsolver.SolveOpts{
+	params := gps.SolveParameters{
+		Name:        gps.ProjectName(conf.ProjectName),
+		Root:        filepath.Dir(vend),
+		Manifest:    conf,
+		Ignore:      conf.Ignore,
 		Trace:       true,
 		TraceLogger: log.New(os.Stdout, "", 0),
 	}
 
-	var s vsolver.Solver
+	var s gps.Solver
 	if gpath.HasLock(base) {
-		args.Lock, err = LoadLockfile(base, conf)
+		params.Lock, err = LoadLockfile(base, conf)
 		if err != nil {
 			msg.Err("Could not load lockfile.")
 			return
 		}
 
-		s, err = vsolver.Prepare(args, opts, sm)
+		s, err = gps.Prepare(params, opts, sm)
 		if err != nil {
 			msg.Err("Could not set up solver: %s", err)
 			return
@@ -65,7 +63,7 @@
 		digest, err := s.HashInputs()
 
 		// Check if digests match, and warn if they don't
-		if bytes.Equal(digest, args.Lock.InputHash()) {
+		if bytes.Equal(digest, params.Lock.InputHash()) {
 			if so {
 				msg.Err("glide.yaml is out of sync with glide.lock")
 				return
@@ -75,7 +73,7 @@
 		}
 
 		gw := safeGroupWriter{
-			resultLock:  args.Lock,
+			resultLock:  params.Lock,
 			vendor:      vend,
 			sm:          sm,
 			stripVendor: sv,
@@ -91,7 +89,7 @@
 		return
 	} else {
 		// There is no lock, so we have to solve first
-		s, err = vsolver.Prepare(args, opts, sm)
+		s, err = gps.Prepare(params, sm)
 		if err != nil {
 			msg.Err("Could not set up solver: %s", err)
 			return
@@ -145,8 +143,8 @@
 type safeGroupWriter struct {
 	conf              *cfg.Config
 	lock              *cfg.Lockfile
-	resultLock        vsolver.Lock
-	sm                vsolver.SourceManager
+	resultLock        gps.Lock
+	sm                gps.SourceManager
 	glidefile, vendor string
 	stripVendor       bool
 }
@@ -235,7 +233,7 @@
 	}
 
 	if writeVendor {
-		err = vsolver.CreateVendorTree(filepath.Join(td, "vendor"), gw.resultLock, gw.sm, gw.stripVendor)
+		err = gps.CreateVendorTree(filepath.Join(td, "vendor"), gw.resultLock, gw.sm, gw.stripVendor)
 		if err != nil {
 			return fmt.Errorf("Error while generating vendor tree: %s", err)
 		}
diff --git a/action/update.go b/action/update.go
index ecd00d6..f792e03 100644
--- a/action/update.go
+++ b/action/update.go
@@ -10,7 +10,7 @@
 	"github.com/Masterminds/glide/msg"
 	gpath "github.com/Masterminds/glide/path"
 	"github.com/Masterminds/glide/repo"
-	"github.com/sdboyer/vsolver"
+	"github.com/sdboyer/gps"
 )
 
 // Update updates repos and the lock file from the main glide yaml.
@@ -30,13 +30,14 @@
 		msg.Die("Could not find the vendor dir: %s", err)
 	}
 
-	args := vsolver.SolveArgs{
-		Name:     vsolver.ProjectName(conf.ProjectName),
+	args := gps.SolveArgs{
+		Name:     gps.ProjectName(conf.ProjectName),
 		Root:     filepath.Dir(vend),
 		Manifest: conf,
+		Ignore:   conf.Ignore,
 	}
 
-	opts := vsolver.SolveOpts{
+	opts := gps.SolveOpts{
 		Trace:       true,
 		TraceLogger: log.New(os.Stdout, "", 0),
 	}
@@ -49,7 +50,7 @@
 			if !conf.HasDependency(p) {
 				msg.Die("Cannot update %s, as it is not listed as dependency in glide.yaml.", p)
 			}
-			opts.ToChange = append(opts.ToChange, vsolver.ProjectName(p))
+			opts.ToChange = append(opts.ToChange, gps.ProjectName(p))
 		}
 	}
 
@@ -62,15 +63,15 @@
 	}
 
 	// Create the SourceManager for this run
-	sm, err := vsolver.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), base, false)
-	defer sm.Release()
+	sm, err := gps.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), base, false)
 	if err != nil {
 		msg.Err(err.Error())
 		return
 	}
+	defer sm.Release()
 
 	// Prepare a solver. This validates our args and opts.
-	s, err := vsolver.Prepare(args, opts, sm)
+	s, err := gps.Prepare(args, opts, sm)
 	if err != nil {
 		msg.Err("Could not set up solver: %s", err)
 		return
diff --git a/cfg/config.go b/cfg/config.go
index 221e9ec..6dc42a5 100644
--- a/cfg/config.go
+++ b/cfg/config.go
@@ -10,7 +10,7 @@
 
 	"github.com/Masterminds/glide/util"
 	"github.com/Masterminds/vcs"
-	"github.com/sdboyer/vsolver"
+	"github.com/sdboyer/gps"
 	"gopkg.in/yaml.v2"
 )
 
@@ -163,21 +163,21 @@
 }
 
 // DependencyConstraints lists all the non-test dependency constraints
-// described in a glide manifest in a way vsolver will understand.
-func (c *Config) DependencyConstraints() []vsolver.ProjectDep {
+// described in a glide manifest in a way gps will understand.
+func (c *Config) DependencyConstraints() []gps.ProjectDep {
 	return depsToVSolver(c.Imports)
 }
 
 // TestDependencyConstraints lists all the test dependency constraints described
-// in a glide manifest in a way vsolver will understand.
-func (c *Config) TestDependencyConstraints() []vsolver.ProjectDep {
+// in a glide manifest in a way gps will understand.
+func (c *Config) TestDependencyConstraints() []gps.ProjectDep {
 	return depsToVSolver(c.DevImports)
 }
 
-func depsToVSolver(deps Dependencies) []vsolver.ProjectDep {
-	cp := make([]vsolver.ProjectDep, len(deps))
+func depsToVSolver(deps Dependencies) []gps.ProjectDep {
+	cp := make([]gps.ProjectDep, len(deps))
 	for k, d := range deps {
-		var c vsolver.Constraint
+		var c gps.Constraint
 		var err error
 
 		// Support both old and new. TODO handle this earlier
@@ -187,26 +187,26 @@
 			// TODO need to differentiate types of constraints so that we don't have
 			// this ambiguity
 			// Try semver first
-			c, err = vsolver.NewSemverConstraint(d.Reference)
+			c, err = gps.NewSemverConstraint(d.Reference)
 			if err != nil {
 				// Not a semver constraint. Super crappy heuristic that'll cover hg
 				// and git revs, but not bzr (svn, you say? lol, madame. lol)
 				if len(d.Reference) == 40 {
-					c = vsolver.Revision(d.Reference)
+					c = gps.Revision(d.Reference)
 				} else {
 					// Otherwise, assume a branch. This also sucks, because it could
 					// very well be a shitty, non-semver tag.
-					c = vsolver.NewBranch(d.Reference)
+					c = gps.NewBranch(d.Reference)
 				}
 			}
 		}
 
-		id := vsolver.ProjectIdentifier{
-			LocalName:   vsolver.ProjectName(d.Name),
+		id := gps.ProjectIdentifier{
+			LocalName:   gps.ProjectName(d.Name),
 			NetworkName: d.Repository,
 		}
 
-		cp[k] = vsolver.ProjectDep{
+		cp[k] = gps.ProjectDep{
 			Ident:      id,
 			Constraint: c,
 		}
@@ -216,8 +216,8 @@
 }
 
 // Name returns the name of the project given in the manifest.
-func (c *Config) Name() vsolver.ProjectName {
-	return vsolver.ProjectName(c.ProjectName)
+func (c *Config) Name() gps.ProjectName {
+	return gps.ProjectName(c.ProjectName)
 }
 
 // HasIgnore returns true if the given name is listed on the ignore list.
@@ -441,7 +441,7 @@
 // Dependency describes a package that the present package depends upon.
 type Dependency struct {
 	Name             string             `yaml:"package"`
-	Constraint       vsolver.Constraint `yaml:"-"` // TODO temporary, for experimenting; reconcile with other data
+	Constraint       gps.Constraint `yaml:"-"` // TODO temporary, for experimenting; reconcile with other data
 	Reference        string             `yaml:"version,omitempty"`
 	Pin              string             `yaml:"-"`
 	Repository       string             `yaml:"repo,omitempty"`
@@ -484,12 +484,12 @@
 		// TODO this covers git & hg; bzr and svn (??) need love
 		if len(r) == 40 {
 			if _, err := hex.DecodeString(r); err == nil {
-				d.Constraint = vsolver.Revision(r)
+				d.Constraint = gps.Revision(r)
 			}
 		} else {
-			d.Constraint, err = vsolver.NewSemverConstraint(r)
+			d.Constraint, err = gps.NewSemverConstraint(r)
 			if err != nil {
-				d.Constraint = vsolver.NewVersion(r)
+				d.Constraint = gps.NewVersion(r)
 			}
 		}
 
@@ -497,14 +497,14 @@
 			return fmt.Errorf("Error on creating constraint for %q from %q: %s", d.Name, r, err)
 		}
 	} else if newDep.Branch != "" {
-		d.Constraint = vsolver.NewBranch(newDep.Branch)
+		d.Constraint = gps.NewBranch(newDep.Branch)
 
 		if err != nil {
 			return fmt.Errorf("Error on creating constraint for %q from %q: %s", d.Name, newDep.Branch, err)
 		}
 	} else {
 		// TODO this is just for now - need a default branch constraint type
-		d.Constraint = vsolver.Any()
+		d.Constraint = gps.Any()
 	}
 
 	d.Repository = newDep.Repository
@@ -548,7 +548,7 @@
 	}
 
 	// Pull out the correct type of constraint
-	if v, ok := d.Constraint.(vsolver.Version); ok {
+	if v, ok := d.Constraint.(gps.Version); ok {
 		switch v.Type() {
 		case "any":
 			// Do nothing; nothing here is taken as 'any'
@@ -557,7 +557,7 @@
 		case "revision", "semver", "version":
 			newDep.Reference = v.String()
 		}
-	} else if vsolver.IsAny(d.Constraint) {
+	} else if gps.IsAny(d.Constraint) {
 		// We do nothing here, as the way any gets represented is with no
 		// constraint information at all
 		// TODO for now, probably until we add first-class 'default branch'
diff --git a/cfg/lock.go b/cfg/lock.go
index 65b5252..11a15c9 100644
--- a/cfg/lock.go
+++ b/cfg/lock.go
@@ -9,7 +9,7 @@
 	"time"
 
 	"github.com/Masterminds/semver"
-	"github.com/sdboyer/vsolver"
+	"github.com/sdboyer/gps"
 
 	"gopkg.in/yaml.v2"
 )
@@ -22,8 +22,8 @@
 	DevImports Locks     `yaml:"testImports"`
 }
 
-// LockfileFromSolverLock transforms a vsolver.Lock into a glide *Lockfile.
-func LockfileFromSolverLock(r vsolver.Lock) *Lockfile {
+// LockfileFromSolverLock transforms a gps.Lock into a glide *Lockfile.
+func LockfileFromSolverLock(r gps.Lock) *Lockfile {
 	if r == nil {
 		return nil
 	}
@@ -46,7 +46,7 @@
 		}
 
 		v := p.Version()
-		if pv, ok := v.(vsolver.PairedVersion); ok {
+		if pv, ok := v.(gps.PairedVersion); ok {
 			l.Version = pv.Underlying().String()
 		} else {
 			l.Version = v.String()
@@ -99,29 +99,29 @@
 }
 
 // Projects returns the list of projects enumerated in the lock file.
-func (lf *Lockfile) Projects() []vsolver.LockedProject {
+func (lf *Lockfile) Projects() []gps.LockedProject {
 	all := append(lf.Imports, lf.DevImports...)
-	lp := make([]vsolver.LockedProject, len(all))
+	lp := make([]gps.LockedProject, len(all))
 
 	for k, l := range all {
 		// TODO guess the version type. ugh
-		var v vsolver.Version
+		var v gps.Version
 
 		// semver first
 		_, err := semver.NewVersion(l.Version)
 		if err == nil {
-			v = vsolver.NewVersion(l.Version)
+			v = gps.NewVersion(l.Version)
 		} else {
 			// Crappy heuristic to cover hg and git, but not bzr. Or (lol) svn
 			if len(l.Version) == 40 {
-				v = vsolver.Revision(l.Version)
+				v = gps.Revision(l.Version)
 			} else {
 				// Otherwise, assume it's a branch
-				v = vsolver.NewBranch(l.Version)
+				v = gps.NewBranch(l.Version)
 			}
 		}
 
-		lp[k] = vsolver.NewLockedProject(vsolver.ProjectName(l.Name), v, l.Repository, l.Name, nil)
+		lp[k] = gps.NewLockedProject(gps.ProjectName(l.Name), v, l.Repository, l.Name, nil)
 	}
 
 	return lp
diff --git a/dependency/analyzer.go b/dependency/analyzer.go
index a3da972..36994b7 100644
--- a/dependency/analyzer.go
+++ b/dependency/analyzer.go
@@ -13,7 +13,7 @@
 	"github.com/Masterminds/glide/gom"
 	"github.com/Masterminds/glide/gpm"
 	gpath "github.com/Masterminds/glide/path"
-	"github.com/sdboyer/vsolver"
+	"github.com/sdboyer/gps"
 )
 
 type notApplicable struct{}
@@ -22,12 +22,12 @@
 	return ""
 }
 
-// Analyzer implements vsolver.ProjectAnalyzer. We inject the Analyzer into a
-// vsolver.SourceManager, and it reports manifest and lock information to the
+// Analyzer implements gps.ProjectAnalyzer. We inject the Analyzer into a
+// gps.SourceManager, and it reports manifest and lock information to the
 // SourceManager on request.
 type Analyzer struct{}
 
-func (a Analyzer) GetInfo(ctx build.Context, pn vsolver.ProjectName) (vsolver.Manifest, vsolver.Lock, error) {
+func (a Analyzer) GetInfo(ctx build.Context, pn gps.ProjectName) (gps.Manifest, gps.Lock, error) {
 	// For now, at least, we do not search above the root path provided by
 	// the SourceManager.
 	root := filepath.Join(ctx.GOPATH, "src", string(pn))
@@ -82,12 +82,12 @@
 	}
 
 	// If none of our parsers matched, but none had actual errors, then we just
-	// go hands-off; vsolver itself will do the source analysis and use the Any
+	// go hands-off; gps itself will do the source analysis and use the Any
 	// constraint for all discovered package.
 	return nil, nil, nil
 }
 
-func (a Analyzer) lookForGlide(root string) (vsolver.Manifest, vsolver.Lock, error) {
+func (a Analyzer) lookForGlide(root string) (gps.Manifest, gps.Lock, error) {
 	mpath := filepath.Join(root, gpath.GlideFile)
 	if _, err := os.Lstat(mpath); err != nil {
 		return nil, nil, notApplicable{}
@@ -126,7 +126,7 @@
 	return m, l, nil
 }
 
-func (a Analyzer) lookForGodep(root string) (vsolver.Manifest, vsolver.Lock, error) {
+func (a Analyzer) lookForGodep(root string) (gps.Manifest, gps.Lock, error) {
 	if !godep.Has(root) {
 		return nil, nil, notApplicable{}
 	}
@@ -139,7 +139,7 @@
 	return &cfg.Config{ProjectName: root, Imports: d}, l, nil
 }
 
-func (a Analyzer) lookForGPM(root string) (vsolver.Manifest, vsolver.Lock, error) {
+func (a Analyzer) lookForGPM(root string) (gps.Manifest, gps.Lock, error) {
 	if !gpm.Has(root) {
 		return nil, nil, notApplicable{}
 	}
@@ -152,7 +152,7 @@
 	return &cfg.Config{ProjectName: root, Imports: d}, l, nil
 }
 
-func (a Analyzer) lookForGb(root string) (vsolver.Manifest, vsolver.Lock, error) {
+func (a Analyzer) lookForGb(root string) (gps.Manifest, gps.Lock, error) {
 	if !gpm.Has(root) {
 		return nil, nil, notApplicable{}
 	}
@@ -165,7 +165,7 @@
 	return &cfg.Config{ProjectName: root, Imports: d}, l, nil
 }
 
-func (a Analyzer) lookForGom(root string) (vsolver.Manifest, vsolver.Lock, error) {
+func (a Analyzer) lookForGom(root string) (gps.Manifest, gps.Lock, error) {
 	if !gpm.Has(root) {
 		return nil, nil, notApplicable{}
 	}
diff --git a/godep/godep.go b/godep/godep.go
index 2e16670..2b9ea41 100644
--- a/godep/godep.go
+++ b/godep/godep.go
@@ -128,7 +128,7 @@
 			seen[pkg] = true
 
 			// Place no real *actual* constraint on the project; instead, we
-			// rely on vsolver using the 'preferred' version mechanism by
+			// rely on gps using the 'preferred' version mechanism by
 			// working from the lock file. Without this, users would end up with
 			// the same mind-numbing diamond dep problems as currently exist.
 			// This approach does make for an uncomfortably wide possibility
diff --git a/gom/gom.go b/gom/gom.go
index 36b2bde..677b874 100644
--- a/gom/gom.go
+++ b/gom/gom.go
@@ -9,7 +9,7 @@
 	"github.com/Masterminds/glide/msg"
 	gpath "github.com/Masterminds/glide/path"
 	"github.com/Masterminds/glide/util"
-	"github.com/sdboyer/vsolver"
+	"github.com/sdboyer/gps"
 )
 
 // Has returns true if this dir has a Gomfile.
@@ -92,7 +92,7 @@
 }
 
 // AsMetadataPair attempts to extract manifest and lock data from gom metadata.
-func AsMetadataPair(dir string) (vsolver.Manifest, vsolver.Lock, error) {
+func AsMetadataPair(dir string) (gps.Manifest, gps.Lock, error) {
 	path := filepath.Join(dir, "Gomfile")
 	if _, err := os.Stat(path); err != nil {
 		return nil, nil, err
@@ -103,9 +103,9 @@
 		return nil, nil, err
 	}
 
-	var l vsolver.SimpleLock
-	m := vsolver.SimpleManifest{
-		N: vsolver.ProjectName(dir),
+	var l gps.SimpleLock
+	m := gps.SimpleManifest{
+		N: gps.ProjectName(dir),
 	}
 
 	for _, gom := range goms {
@@ -130,9 +130,9 @@
 
 		pkg, _ := util.NormalizeName(gom.name)
 
-		dep := vsolver.ProjectDep{
-			Ident: vsolver.ProjectIdentifier{
-				LocalName: vsolver.ProjectName(pkg),
+		dep := gps.ProjectDep{
+			Ident: gps.ProjectIdentifier{
+				LocalName: gps.ProjectName(pkg),
 			},
 		}
 
@@ -142,37 +142,37 @@
 		//   - Branch
 		//   - Revision
 
-		var v vsolver.UnpairedVersion
+		var v gps.UnpairedVersion
 		if val, ok := gom.options["tag"]; ok {
 			body := val.(string)
-			v = vsolver.NewVersion(body)
-			c, err := vsolver.NewSemverConstraint(body)
+			v = gps.NewVersion(body)
+			c, err := gps.NewSemverConstraint(body)
 			if err != nil {
-				c = vsolver.NewVersion(body)
+				c = gps.NewVersion(body)
 			}
 			dep.Constraint = c
 		} else if val, ok := gom.options["branch"]; ok {
 			body := val.(string)
-			v = vsolver.NewBranch(body)
-			dep.Constraint = vsolver.NewBranch(body)
+			v = gps.NewBranch(body)
+			dep.Constraint = gps.NewBranch(body)
 		}
 
 		if val, ok := gom.options["commit"]; ok {
 			body := val.(string)
 			if v != nil {
-				v.Is(vsolver.Revision(body))
-				l = append(l, vsolver.NewLockedProject(vsolver.ProjectName(dir), v, dir, dir, nil))
+				v.Is(gps.Revision(body))
+				l = append(l, gps.NewLockedProject(gps.ProjectName(dir), v, dir, dir, nil))
 			} else {
 				// As with the other third-party system integrations, we're
 				// going to choose not to put revisions into a manifest, even
 				// though gom has a lot more information than most and the
 				// argument could be made for it.
-				dep.Constraint = vsolver.Any()
-				l = append(l, vsolver.NewLockedProject(vsolver.ProjectName(dir), vsolver.Revision(body), dir, dir, nil))
+				dep.Constraint = gps.Any()
+				l = append(l, gps.NewLockedProject(gps.ProjectName(dir), gps.Revision(body), dir, dir, nil))
 			}
 		} else if v != nil {
 			// This is kinda uncomfortable - lock w/no immut - but OK
-			l = append(l, vsolver.NewLockedProject(vsolver.ProjectName(dir), v, dir, dir, nil))
+			l = append(l, gps.NewLockedProject(gps.ProjectName(dir), v, dir, dir, nil))
 		}
 
 		// TODO We ignore GOOS, GOARCH for now
diff --git a/gpm/gpm.go b/gpm/gpm.go
index 111ca25..00ca864 100644
--- a/gpm/gpm.go
+++ b/gpm/gpm.go
@@ -79,7 +79,7 @@
 		parts, ok := parseGodepsLine(scanner.Text())
 		if ok {
 			// Place no actual constraint on the project; rely instead on
-			// vsolver's 'preferred version' reasoning from deps' lock
+			// gps's 'preferred version' reasoning from deps' lock
 			// files...if we have one at all.
 			if len(parts) > 1 {
 				l.Imports = append(l.Imports, &cfg.Lock{Name: parts[0], Version: parts[1]})