Superficial updates to accomodate gps v0.8.1
diff --git a/action/create.go b/action/create.go
index 85b1677..e44e2fe 100644
--- a/action/create.go
+++ b/action/create.go
@@ -85,7 +85,7 @@
 	config := new(cfg.Config)
 
 	// Get the name of the top level package
-	config.ProjectName = name
+	config.ProjectRoot = name
 
 	// Import by looking at other package managers and looking over the
 	// entire directory structure.
@@ -131,7 +131,7 @@
 		n := strings.TrimPrefix(pa, vpath)
 		root, subpkg := util.NormalizeName(n)
 
-		if !config.Imports.Has(root) && root != config.ProjectName {
+		if !config.Imports.Has(root) && root != config.ProjectRoot {
 			msg.Info("--> Found reference to %s\n", n)
 			d := &cfg.Dependency{
 				Name: root,
@@ -156,9 +156,9 @@
 		n := strings.TrimPrefix(pa, vpath)
 		root, subpkg := util.NormalizeName(n)
 
-		if config.Imports.Has(root) && root != config.ProjectName {
+		if config.Imports.Has(root) && root != config.ProjectRoot {
 			msg.Debug("--> Found test reference to %s already listed as an import", n)
-		} else if !config.DevImports.Has(root) && root != config.ProjectName {
+		} else if !config.DevImports.Has(root) && root != config.ProjectRoot {
 			msg.Info("--> Found test reference to %s", n)
 			d := &cfg.Dependency{
 				Name: root,
diff --git a/action/ensure.go b/action/ensure.go
index 51c143f..43f2df9 100644
--- a/action/ensure.go
+++ b/action/ensure.go
@@ -48,8 +48,8 @@
 		b, err = filepath.Rel(b, cwd)
 		if err == nil {
 			name := buildContext.PackageName(b)
-			if name != conf.ProjectName {
-				msg.Warn("The name listed in the config file (%s) does not match the current location (%s)", conf.ProjectName, name)
+			if name != conf.ProjectRoot {
+				msg.Warn("The name listed in the config file (%s) does not match the current location (%s)", conf.ProjectRoot, name)
 			}
 		} else {
 			msg.Warn("Problem finding the config file path (%s) relative to the current directory (%s): %s", b, cwd, err)
diff --git a/action/get.go b/action/get.go
index 2e6a05d..d4e9a50 100644
--- a/action/get.go
+++ b/action/get.go
@@ -37,14 +37,11 @@
 		msg.Die("Could not find the vendor dir: %s", err)
 	}
 
-	args := gps.SolveArgs{
-		Name:     gps.ProjectName(conf.ProjectName),
-		Root:     filepath.Dir(glidefile),
-		Manifest: conf,
-		Ignore:   conf.Ignore,
-	}
-
-	opts := gps.SolveOpts{
+	params := gps.SolveParameters{
+		RootDir:     filepath.Dir(glidefile),
+		ImportRoot:  gps.ProjectRoot(conf.ProjectRoot),
+		Manifest:    conf,
+		Ignore:      conf.Ignore,
 		Trace:       true,
 		TraceLogger: log.New(os.Stdout, "", 0),
 	}
@@ -53,7 +50,7 @@
 	// don't want a get to just update all deps without the user explictly
 	// making that choice.
 	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; aborting get. Existing dependency versions cannot be safely preserved without a lock file. Error was: %s", err)
 			return
@@ -61,7 +58,7 @@
 	}
 
 	// Create the SourceManager for this run
-	sm, err := gps.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), base, false)
+	sm, err := gps.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), false)
 	defer sm.Release()
 	if err != nil {
 		msg.Err(err.Error())
@@ -80,8 +77,8 @@
 		return
 	}
 
-	// Prepare a solver. This validates our args and opts.
-	s, err := gps.Prepare(args, opts, sm)
+	// Prepare a solver. This validates our params.
+	s, err := gps.Prepare(params, sm)
 	if err != nil {
 		msg.Err("Aborted get - could not set up solver to reconcile dependencies: %s", err)
 		return
@@ -99,7 +96,7 @@
 
 	gw := safeGroupWriter{
 		conf:        conf,
-		lock:        args.Lock.(*cfg.Lockfile),
+		lock:        params.Lock.(*cfg.Lockfile),
 		resultLock:  r,
 		sm:          sm,
 		glidefile:   glidefile,
diff --git a/action/install.go b/action/install.go
index 9afb974..53599af 100644
--- a/action/install.go
+++ b/action/install.go
@@ -31,7 +31,7 @@
 	}
 
 	// Create the SourceManager for this run
-	sm, err := gps.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), base, false)
+	sm, err := gps.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), false)
 	defer sm.Release()
 	if err != nil {
 		msg.Err(err.Error())
@@ -39,8 +39,8 @@
 	}
 
 	params := gps.SolveParameters{
-		Name:        gps.ProjectName(conf.ProjectName),
-		Root:        filepath.Dir(vend),
+		RootDir:     filepath.Dir(vend),
+		ImportRoot:  gps.ProjectRoot(conf.ProjectRoot),
 		Manifest:    conf,
 		Ignore:      conf.Ignore,
 		Trace:       true,
@@ -55,7 +55,7 @@
 			return
 		}
 
-		s, err = gps.Prepare(params, opts, sm)
+		s, err = gps.Prepare(params, sm)
 		if err != nil {
 			msg.Err("Could not set up solver: %s", err)
 			return
diff --git a/action/name.go b/action/name.go
index 4c6db0f..7a67b7c 100644
--- a/action/name.go
+++ b/action/name.go
@@ -7,5 +7,5 @@
 // Name prints the name of the package, according to the glide.yaml file.
 func Name() {
 	conf := EnsureConfig()
-	msg.Puts(conf.ProjectName)
+	msg.Puts(conf.ProjectRoot)
 }
diff --git a/action/project_info.go b/action/project_info.go
index 20e8f84..0662bbc 100644
--- a/action/project_info.go
+++ b/action/project_info.go
@@ -14,7 +14,7 @@
 		if varInit {
 			switch var_format {
 			case 'n':
-				buffer.WriteString(conf.ProjectName)
+				buffer.WriteString(conf.ProjectRoot)
 			case 'd':
 				buffer.WriteString(conf.Description)
 			case 'h':
diff --git a/action/update.go b/action/update.go
index f792e03..33d616a 100644
--- a/action/update.go
+++ b/action/update.go
@@ -30,32 +30,29 @@
 		msg.Die("Could not find the vendor dir: %s", err)
 	}
 
-	args := gps.SolveArgs{
-		Name:     gps.ProjectName(conf.ProjectName),
-		Root:     filepath.Dir(vend),
-		Manifest: conf,
-		Ignore:   conf.Ignore,
-	}
-
-	opts := gps.SolveOpts{
+	params := gps.SolveParameters{
+		RootDir:     filepath.Dir(vend),
+		ImportRoot:  gps.ProjectRoot(conf.ProjectRoot),
+		Manifest:    conf,
+		Ignore:      conf.Ignore,
 		Trace:       true,
 		TraceLogger: log.New(os.Stdout, "", 0),
 	}
 
 	if len(projs) == 0 {
-		opts.ChangeAll = true
+		params.ChangeAll = true
 	} else {
-		opts.ChangeAll = false
+		params.ChangeAll = false
 		for _, p := range projs {
 			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, gps.ProjectName(p))
+			params.ToChange = append(params.ToChange, gps.ProjectRoot(p))
 		}
 	}
 
 	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, aborting: %s", err)
 			return
@@ -63,15 +60,15 @@
 	}
 
 	// Create the SourceManager for this run
-	sm, err := gps.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), base, false)
+	sm, err := gps.NewSourceManager(dependency.Analyzer{}, filepath.Join(installer.Home, "cache"), false)
 	if err != nil {
 		msg.Err(err.Error())
 		return
 	}
 	defer sm.Release()
 
-	// Prepare a solver. This validates our args and opts.
-	s, err := gps.Prepare(args, opts, sm)
+	// Prepare a solver. This validates our params.
+	s, err := gps.Prepare(params, sm)
 	if err != nil {
 		msg.Err("Could not set up solver: %s", err)
 		return
@@ -85,7 +82,7 @@
 	}
 
 	gw := safeGroupWriter{
-		lock:        args.Lock.(*cfg.Lockfile),
+		lock:        params.Lock.(*cfg.Lockfile),
 		resultLock:  r,
 		sm:          sm,
 		vendor:      vend,
diff --git a/cfg/config.go b/cfg/config.go
index 6dc42a5..54e60be 100644
--- a/cfg/config.go
+++ b/cfg/config.go
@@ -18,7 +18,7 @@
 type Config struct {
 
 	// Name is the name of the package or application.
-	ProjectName string `yaml:"package"`
+	ProjectRoot string `yaml:"package"`
 
 	// Description is a short description for a package, application, or library.
 	// This description is similar but different to a Go package description as
@@ -104,7 +104,7 @@
 	if err := unmarshal(&newConfig); err != nil {
 		return err
 	}
-	c.ProjectName = newConfig.Name
+	c.ProjectRoot = newConfig.Name
 	c.Description = newConfig.Description
 	c.Home = newConfig.Home
 	c.License = newConfig.License
@@ -123,7 +123,7 @@
 // MarshalYAML is a hook for gopkg.in/yaml.v2 in the marshaling process
 func (c *Config) MarshalYAML() (interface{}, error) {
 	newConfig := &cf{
-		Name:        c.ProjectName,
+		Name:        c.ProjectRoot,
 		Description: c.Description,
 		Home:        c.Home,
 		License:     c.License,
@@ -164,18 +164,18 @@
 
 // DependencyConstraints lists all the non-test dependency constraints
 // described in a glide manifest in a way gps will understand.
-func (c *Config) DependencyConstraints() []gps.ProjectDep {
+func (c *Config) DependencyConstraints() []gps.ProjectConstraint {
 	return depsToVSolver(c.Imports)
 }
 
 // TestDependencyConstraints lists all the test dependency constraints described
 // in a glide manifest in a way gps will understand.
-func (c *Config) TestDependencyConstraints() []gps.ProjectDep {
+func (c *Config) TestDependencyConstraints() []gps.ProjectConstraint {
 	return depsToVSolver(c.DevImports)
 }
 
-func depsToVSolver(deps Dependencies) []gps.ProjectDep {
-	cp := make([]gps.ProjectDep, len(deps))
+func depsToVSolver(deps Dependencies) []gps.ProjectConstraint {
+	cp := make([]gps.ProjectConstraint, len(deps))
 	for k, d := range deps {
 		var c gps.Constraint
 		var err error
@@ -202,11 +202,11 @@
 		}
 
 		id := gps.ProjectIdentifier{
-			LocalName:   gps.ProjectName(d.Name),
+			ProjectRoot: gps.ProjectRoot(d.Name),
 			NetworkName: d.Repository,
 		}
 
-		cp[k] = gps.ProjectDep{
+		cp[k] = gps.ProjectConstraint{
 			Ident:      id,
 			Constraint: c,
 		}
@@ -216,8 +216,8 @@
 }
 
 // Name returns the name of the project given in the manifest.
-func (c *Config) Name() gps.ProjectName {
-	return gps.ProjectName(c.ProjectName)
+func (c *Config) Name() gps.ProjectRoot {
+	return gps.ProjectRoot(c.ProjectRoot)
 }
 
 // HasIgnore returns true if the given name is listed on the ignore list.
@@ -249,7 +249,7 @@
 // Clone performs a deep clone of the Config instance
 func (c *Config) Clone() *Config {
 	n := &Config{}
-	n.ProjectName = c.ProjectName
+	n.ProjectRoot = c.ProjectRoot
 	n.Description = c.Description
 	n.Home = c.Home
 	n.License = c.License
@@ -290,7 +290,7 @@
 	// If the name on the config object is part of the imports remove it.
 	found := -1
 	for i, dep := range c.Imports {
-		if dep.Name == c.ProjectName {
+		if dep.Name == c.ProjectRoot {
 			found = i
 		}
 	}
@@ -300,7 +300,7 @@
 
 	found = -1
 	for i, dep := range c.DevImports {
-		if dep.Name == c.ProjectName {
+		if dep.Name == c.ProjectRoot {
 			found = i
 		}
 	}
@@ -440,16 +440,16 @@
 
 // Dependency describes a package that the present package depends upon.
 type Dependency struct {
-	Name             string             `yaml:"package"`
+	Name             string         `yaml:"package"`
 	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"`
-	VcsType          string             `yaml:"vcs,omitempty"`
-	Subpackages      []string           `yaml:"subpackages,omitempty"`
-	Arch             []string           `yaml:"arch,omitempty"`
-	Os               []string           `yaml:"os,omitempty"`
-	UpdateAsVendored bool               `yaml:"-"`
+	Reference        string         `yaml:"version,omitempty"`
+	Pin              string         `yaml:"-"`
+	Repository       string         `yaml:"repo,omitempty"`
+	VcsType          string         `yaml:"vcs,omitempty"`
+	Subpackages      []string       `yaml:"subpackages,omitempty"`
+	Arch             []string       `yaml:"arch,omitempty"`
+	Os               []string       `yaml:"os,omitempty"`
+	UpdateAsVendored bool           `yaml:"-"`
 }
 
 // A transitive representation of a dependency for importing and exploting to yaml.
diff --git a/cfg/config_test.go b/cfg/config_test.go
index c16f80b..bf6a190 100644
--- a/cfg/config_test.go
+++ b/cfg/config_test.go
@@ -48,8 +48,8 @@
 		t.Errorf("Unable to Unmarshal config yaml")
 	}
 
-	if cfg.ProjectName != "fake/testing" {
-		t.Errorf("Inaccurate name found %s", cfg.ProjectName)
+	if cfg.ProjectRoot != "fake/testing" {
+		t.Errorf("Inaccurate name found %s", cfg.ProjectRoot)
 	}
 
 	if cfg.Description != "foo bar baz" {
@@ -98,15 +98,15 @@
 	}
 
 	cfg2 := cfg.Clone()
-	if cfg2.ProjectName != "fake/testing" {
+	if cfg2.ProjectRoot != "fake/testing" {
 		t.Error("Config cloning failed")
 	}
 	if cfg2.License != "MIT" {
 		t.Error("Config cloning failed to copy License")
 	}
-	cfg.ProjectName = "foo"
+	cfg.ProjectRoot = "foo"
 
-	if cfg.ProjectName == cfg2.ProjectName {
+	if cfg.ProjectRoot == cfg2.ProjectRoot {
 		t.Error("Cloning Config name failed")
 	}
 }
@@ -117,7 +117,7 @@
 		t.Error("ConfigFromYaml failed to parse yaml")
 	}
 
-	if c.ProjectName != "fake/testing" {
+	if c.ProjectRoot != "fake/testing" {
 		t.Error("ConfigFromYaml failed to properly parse yaml")
 	}
 }
diff --git a/cfg/lock.go b/cfg/lock.go
index 11a15c9..0c798a6 100644
--- a/cfg/lock.go
+++ b/cfg/lock.go
@@ -37,7 +37,7 @@
 	for _, p := range r.Projects() {
 		pi := p.Ident()
 		l := &Lock{
-			Name:    string(pi.LocalName),
+			Name:    string(pi.ProjectRoot),
 			VcsType: "", // TODO allow this to be extracted from sm
 		}
 
@@ -121,7 +121,7 @@
 			}
 		}
 
-		lp[k] = gps.NewLockedProject(gps.ProjectName(l.Name), v, l.Repository, l.Name, nil)
+		lp[k] = gps.NewLockedProject(gps.ProjectRoot(l.Name), v, l.Repository, nil)
 	}
 
 	return lp
diff --git a/dependency/analyzer.go b/dependency/analyzer.go
index 36994b7..e4674fb 100644
--- a/dependency/analyzer.go
+++ b/dependency/analyzer.go
@@ -2,7 +2,6 @@
 
 import (
 	"fmt"
-	"go/build"
 	"io/ioutil"
 	"os"
 	"path/filepath"
@@ -27,11 +26,7 @@
 // SourceManager on request.
 type Analyzer struct{}
 
-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))
-
+func (a Analyzer) GetInfo(root string, pn gps.ProjectRoot) (gps.Manifest, gps.Lock, error) {
 	// this check should be unnecessary, but keeping it for now as a canary
 	if _, err := os.Lstat(root); err != nil {
 		return nil, nil, fmt.Errorf("No directory exists at %s; cannot produce ProjectInfo", root)
@@ -136,7 +131,7 @@
 		return nil, nil, err
 	}
 
-	return &cfg.Config{ProjectName: root, Imports: d}, l, nil
+	return &cfg.Config{ProjectRoot: root, Imports: d}, l, nil
 }
 
 func (a Analyzer) lookForGPM(root string) (gps.Manifest, gps.Lock, error) {
@@ -149,7 +144,7 @@
 		return nil, nil, err
 	}
 
-	return &cfg.Config{ProjectName: root, Imports: d}, l, nil
+	return &cfg.Config{ProjectRoot: root, Imports: d}, l, nil
 }
 
 func (a Analyzer) lookForGb(root string) (gps.Manifest, gps.Lock, error) {
@@ -162,7 +157,7 @@
 		return nil, nil, err
 	}
 
-	return &cfg.Config{ProjectName: root, Imports: d}, l, nil
+	return &cfg.Config{ProjectRoot: root, Imports: d}, l, nil
 }
 
 func (a Analyzer) lookForGom(root string) (gps.Manifest, gps.Lock, error) {
diff --git a/gom/gom.go b/gom/gom.go
index 677b874..05785e6 100644
--- a/gom/gom.go
+++ b/gom/gom.go
@@ -104,9 +104,7 @@
 	}
 
 	var l gps.SimpleLock
-	m := gps.SimpleManifest{
-		N: gps.ProjectName(dir),
-	}
+	m := gps.SimpleManifest{}
 
 	for _, gom := range goms {
 		// Do we need to skip this dependency?
@@ -130,9 +128,9 @@
 
 		pkg, _ := util.NormalizeName(gom.name)
 
-		dep := gps.ProjectDep{
+		dep := gps.ProjectConstraint{
 			Ident: gps.ProjectIdentifier{
-				LocalName: gps.ProjectName(pkg),
+				ProjectRoot: gps.ProjectRoot(pkg),
 			},
 		}
 
@@ -161,18 +159,18 @@
 			body := val.(string)
 			if v != nil {
 				v.Is(gps.Revision(body))
-				l = append(l, gps.NewLockedProject(gps.ProjectName(dir), v, dir, dir, nil))
+				l = append(l, gps.NewLockedProject(gps.ProjectRoot(dir), v, 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 = gps.Any()
-				l = append(l, gps.NewLockedProject(gps.ProjectName(dir), gps.Revision(body), dir, dir, nil))
+				l = append(l, gps.NewLockedProject(gps.ProjectRoot(dir), gps.Revision(body), dir, nil))
 			}
 		} else if v != nil {
 			// This is kinda uncomfortable - lock w/no immut - but OK
-			l = append(l, gps.NewLockedProject(gps.ProjectName(dir), v, dir, dir, nil))
+			l = append(l, gps.NewLockedProject(gps.ProjectRoot(dir), v, dir, nil))
 		}
 
 		// TODO We ignore GOOS, GOARCH for now
diff --git a/repo/installer.go b/repo/installer.go
index e8018ed..8004da5 100644
--- a/repo/installer.go
+++ b/repo/installer.go
@@ -89,7 +89,7 @@
 	// Create a config setup based on the Lockfile data to process with
 	// existing commands.
 	newConf := &cfg.Config{}
-	newConf.ProjectName = conf.ProjectName
+	newConf.ProjectRoot = conf.ProjectRoot
 
 	newConf.Imports = make(cfg.Dependencies, len(lock.Imports))
 	for k, v := range lock.Imports {
@@ -421,7 +421,7 @@
 func (m *MissingPackageHandler) NotFound(pkg string, addTest bool) (bool, error) {
 	root := util.GetRootFromPackage(pkg)
 	// Skip any references to the root package.
-	if root == m.Config.ProjectName {
+	if root == m.Config.ProjectRoot {
 		return false, nil
 	}
 
@@ -488,7 +488,7 @@
 	root := util.GetRootFromPackage(pkg)
 
 	// Skip any references to the root package.
-	if root == m.Config.ProjectName {
+	if root == m.Config.ProjectRoot {
 		return false, nil
 	}
 
@@ -518,7 +518,7 @@
 func (m *MissingPackageHandler) InVendor(pkg string, addTest bool) error {
 	root := util.GetRootFromPackage(pkg)
 	// Skip any references to the root package.
-	if root == m.Config.ProjectName {
+	if root == m.Config.ProjectRoot {
 		return nil
 	}
 
@@ -578,7 +578,7 @@
 	root := util.GetRootFromPackage(pkg)
 
 	// Skip any references to the root package.
-	if root == d.Config.ProjectName {
+	if root == d.Config.ProjectRoot {
 		return nil
 	}
 
@@ -615,7 +615,7 @@
 	root := util.GetRootFromPackage(pkg)
 
 	// Skip any references to the root package.
-	if root == d.Config.ProjectName {
+	if root == d.Config.ProjectRoot {
 		return nil
 	}