[pkgs] Remove implicit package versions.
This feature isn't used, and removing it narrows the Jiri feature set.
Bug: 63094
Change-Id: I32c9972d2660d8588a8c37f72427745f030955f9
Reviewed-on: https://fuchsia-review.googlesource.com/c/jiri/+/445074
Reviewed-by: Haowei Wu <haowei@google.com>
Commit-Queue: Nathan Mulcahey <nmulcahey@google.com>
diff --git a/cmd/jiri/fetch_pkgs.go b/cmd/jiri/fetch_pkgs.go
index 0610f21..c519aa8 100644
--- a/cmd/jiri/fetch_pkgs.go
+++ b/cmd/jiri/fetch_pkgs.go
@@ -44,11 +44,10 @@
// Get pkgs.
var pkgs project.Packages
- var projs project.Projects
if !fetchPkgsFlags.localManifest {
- projs, _, pkgs, err = project.LoadUpdatedManifest(jirix, localProjects, fetchPkgsFlags.localManifest)
+ _, _, pkgs, err = project.LoadUpdatedManifest(jirix, localProjects, fetchPkgsFlags.localManifest)
} else {
- projs, _, pkgs, err = project.LoadManifestFile(jirix, jirix.JiriManifestFile(), localProjects, fetchPkgsFlags.localManifest)
+ _, _, pkgs, err = project.LoadManifestFile(jirix, jirix.JiriManifestFile(), localProjects, fetchPkgsFlags.localManifest)
}
if err != nil {
return err
@@ -57,7 +56,7 @@
return err
}
if len(pkgs) > 0 {
- return project.FetchPackages(jirix, projs, pkgs, fetchPkgsFlags.fetchPkgsTimeout)
+ return project.FetchPackages(jirix, pkgs, fetchPkgsFlags.fetchPkgsTimeout)
}
return nil
}
diff --git a/cmd/jiri/run_hooks.go b/cmd/jiri/run_hooks.go
index 0bcc108..98a3c1f 100644
--- a/cmd/jiri/run_hooks.go
+++ b/cmd/jiri/run_hooks.go
@@ -45,13 +45,12 @@
jirix.Attempts = runHooksFlags.attempts
// Get hooks.
- var projs project.Projects
var hooks project.Hooks
var pkgs project.Packages
if !runHooksFlags.localManifest {
- projs, hooks, pkgs, err = project.LoadUpdatedManifest(jirix, localProjects, runHooksFlags.localManifest)
+ _, hooks, pkgs, err = project.LoadUpdatedManifest(jirix, localProjects, runHooksFlags.localManifest)
} else {
- projs, hooks, pkgs, err = project.LoadManifestFile(jirix, jirix.JiriManifestFile(), localProjects, runHooksFlags.localManifest)
+ _, hooks, pkgs, err = project.LoadManifestFile(jirix, jirix.JiriManifestFile(), localProjects, runHooksFlags.localManifest)
}
if err != nil {
return err
@@ -65,7 +64,7 @@
// Get packages if the fetchPackages is true
if runHooksFlags.fetchPackages && len(pkgs) > 0 {
// Extend timeout for packages to be 5 times the timeout of a single hook.
- return project.FetchPackages(jirix, projs, pkgs, runHooksFlags.hookTimeout*5)
+ return project.FetchPackages(jirix, pkgs, runHooksFlags.hookTimeout*5)
}
return nil
}
diff --git a/project/manifest.go b/project/manifest.go
index a40755d..8be1688 100644
--- a/project/manifest.go
+++ b/project/manifest.go
@@ -19,7 +19,6 @@
"os/exec"
"path"
"path/filepath"
- "regexp"
"sort"
"strings"
"text/template"
@@ -794,52 +793,9 @@
return ld.Projects, ld.Hooks, ld.Packages, nil
}
-// ResolveImplicitPackageVersions resolves the version field of packages if it
-// pins to a project's revision hash
-func ResolveImplicitPackageVersions(jirix *jiri.X, projects Projects, pkgs Packages) (Packages, error) {
- // Example:
- // <package name="fuchsia/dart-sdk/${platform}"
- // path="third_party/dart/tools/sdks/dart-sdk"
- // version="git_revision:{{(index .Projects "dart/sdk").Revision}}"/>
- // The fuchsia/dart-sdk package is pinned to current dart/sdk project's Revision
- templateRE := regexp.MustCompile(`{{[^}]*}}`)
- var projMap struct {
- Projects map[string]Project
- }
- retPkgs := make(Packages)
- for k, v := range pkgs {
- retPkgs[k] = v
- }
- projMap.Projects = make(map[string]Project)
- for _, proj := range projects {
- if v, ok := projMap.Projects[proj.Name]; ok {
- // Just a warning since jiri could handle projects with duplicated names.
- jirix.Logger.Warningf("Found more than 1 projects have the same name: %+v:%+v", proj, v)
- }
- projMap.Projects[proj.Name] = proj
- }
-
- for _, pkg := range pkgs {
- if !templateRE.MatchString(pkg.Version) {
- continue
- }
- tpl, err := template.New("version").Parse(pkg.Version)
- if err != nil {
- return nil, err
- }
- var verBuf bytes.Buffer
- if err := tpl.Execute(&verBuf, &projMap); err != nil {
- return nil, err
- }
- pkg.Version = verBuf.String()
- retPkgs[pkg.Key()] = pkg
- }
- return retPkgs, nil
-}
-
// resovlePackageLocks resolves instance ids using versions described in given
// pkgs using cipd.
-func resolvePackageLocks(jirix *jiri.X, projects Projects, pkgs Packages) (PackageLocks, error) {
+func resolvePackageLocks(jirix *jiri.X, pkgs Packages) (PackageLocks, error) {
jirix.TimerPush("resolve instance id for cipd packages")
defer jirix.TimerPop()
@@ -848,7 +804,7 @@
return nil, err
}
- ensureFilePath, err := generateEnsureFile(jirix, projects, pkgs, false)
+ ensureFilePath, err := generateEnsureFile(jirix, pkgs, false)
if err != nil {
return nil, err
}
@@ -885,7 +841,7 @@
// FetchPackages fetches prebuilt packages described in given pkgs using cipd.
// Parameter fetchTimeout is in minutes.
-func FetchPackages(jirix *jiri.X, projects Projects, pkgs Packages, fetchTimeout uint) error {
+func FetchPackages(jirix *jiri.X, pkgs Packages, fetchTimeout uint) error {
jirix.TimerPush("fetch cipd packages")
defer jirix.TimerPop()
@@ -894,7 +850,7 @@
return err
}
- ensureFilePath, err := generateEnsureFile(jirix, projects, pkgsWAccess, !jirix.LockfileEnabled || jirix.UsingSnapshot)
+ ensureFilePath, err := generateEnsureFile(jirix, pkgsWAccess, !jirix.LockfileEnabled || jirix.UsingSnapshot)
if err != nil {
return err
}
@@ -1008,11 +964,7 @@
return ioutil.WriteFile(filepath.Join(jirix.RootMetaDir(), jirix.PrebuiltJSON), jsonData, 0644)
}
-func generateEnsureFile(jirix *jiri.X, projects Projects, pkgs Packages, ignoreCryptoCheck bool) (string, error) {
- pkgs, err := ResolveImplicitPackageVersions(jirix, projects, pkgs)
- if err != nil {
- return "", err
- }
+func generateEnsureFile(jirix *jiri.X, pkgs Packages, ignoreCryptoCheck bool) (string, error) {
ensureFile, err := ioutil.TempFile("", "jiri*.ensure")
if err != nil {
return "", fmt.Errorf("not able to create tmp file: %v", err)
diff --git a/project/project.go b/project/project.go
index 263a7fa..c47edcb 100644
--- a/project/project.go
+++ b/project/project.go
@@ -1279,7 +1279,7 @@
delete(pkgsWithMultiVersionsMap, k)
}
}
- pkgLocks, err = resolvePackageLocks(jirix, projects, pkgsToProcess)
+ pkgLocks, err = resolvePackageLocks(jirix, pkgsToProcess)
if err != nil {
return
}
@@ -2437,7 +2437,7 @@
if shouldFetchPkgs {
packageFetched = true
if len(pkgs) > 0 {
- if err := FetchPackages(jirix, remoteProjects, pkgs, fetchTimeout); err != nil {
+ if err := FetchPackages(jirix, pkgs, fetchTimeout); err != nil {
return err
}
}
diff --git a/project/project_test.go b/project/project_test.go
index 4f68be2..91ff251 100644
--- a/project/project_test.go
+++ b/project/project_test.go
@@ -2376,64 +2376,6 @@
}
}
-func TestPackageVersionTemplate(t *testing.T) {
- jirix, cleanup := xtest.NewX(t)
- defer cleanup()
-
- testProjs := []project.Project{
- project.Project{
- Name: "testTP0",
- Path: "testTP0",
- Remote: "https://example.com/testTP0",
- Revision: "acf8ae59e121b3922bc8ac979323a531da418cc5",
- GerritHost: "https://example.com",
- },
- project.Project{
- Name: "testTP1",
- Path: "testTP1",
- Remote: "https://example.com/testTP1",
- Revision: "1e4aee79b472a6939ac26811c5dee8a132c29fef",
- GerritHost: "https://example.com",
- },
- }
-
- testPkgs := []project.Package{
- project.Package{
- Name: "test0",
- Version: "git_revision:{{(index .Projects \"testTP0\").Revision}}",
- Path: "test0",
- },
- project.Package{
- Name: "test1",
- Version: "git_revision:{{(index .Projects \"testTP1\").Revision}}",
- Path: "test0",
- },
- }
-
- projects := make(project.Projects)
- pkgs := make(project.Packages)
- verificationMap := make(map[string]project.Project)
- for i, v := range testPkgs {
- projects[testProjs[i].Key()] = testProjs[i]
- pkgs[v.Key()] = v
- verificationMap[v.Name] = testProjs[i]
- }
-
- pkgs, err := project.ResolveImplicitPackageVersions(jirix, projects, pkgs)
- if err != nil {
- t.Errorf("ResolveImplicitPackageVersions failed due to error: %v", err)
- }
- for _, v := range pkgs {
- if proj, ok := verificationMap[v.Name]; ok {
- if proj.Revision != v.Version[len("git_revision:"):] {
- t.Errorf("expecting \"git_revision:%s\", got %q", proj.Revision, v.Version)
- }
- } else {
- t.Errorf("unexpected package %+v", v)
- }
- }
-}
-
func TestOptionalProjectsAndPackages(t *testing.T) {
fake, cleanup := jiritest.NewFakeJiriRoot(t)
defer cleanup()