From 8be9bb629bc165bfd14701166347b2d506a05cb0 Mon Sep 17 00:00:00 2001 From: sam boyer Date: Mon, 15 May 2017 23:05:45 -0400 Subject: [PATCH 1/5] Split input components out in Gopkg.lock --- cmd/dep/init.go | 2 +- cmd/dep/prune.go | 2 +- cmd/dep/status.go | 2 +- .../ensure/empty/case1/final/Gopkg.lock | 6 ++- .../ensure/empty/case1/testcase.json | 1 + .../ensure/empty/case2/final/Gopkg.lock | 6 ++- .../ensure/empty/case2/testcase.json | 1 + .../ensure/empty/case3/final/Gopkg.lock | 6 ++- .../ensure/empty/case3/testcase.json | 1 + .../ensure/override/case1/final/Gopkg.lock | 6 ++- .../ensure/override/case1/testcase.json | 1 + .../ensure/pkg-errors/case1/final/Gopkg.lock | 6 ++- .../ensure/pkg-errors/case1/testcase.json | 13 ++--- .../ensure/update/case1/final/Gopkg.lock | 6 ++- .../ensure/update/case1/testcase.json | 1 + .../ensure/update/case2/testcase.json | 1 + .../harness_tests/init/case1/final/Gopkg.lock | 6 ++- .../harness_tests/init/case1/testcase.json | 1 + .../harness_tests/init/case2/final/Gopkg.lock | 6 ++- .../harness_tests/init/case2/testcase.json | 1 + .../harness_tests/init/case3/final/Gopkg.lock | 6 ++- .../harness_tests/init/case3/testcase.json | 1 + .../init/manifest-exists/testcase.json | 11 ++-- .../init/skip-hidden/final/Gopkg.lock | 6 ++- .../init/skip-hidden/testcase.json | 1 + .../remove/force/case1/final/Gopkg.lock | 6 ++- .../remove/force/case1/testcase.json | 1 + .../remove/specific/case1/final/Gopkg.lock | 6 ++- .../remove/specific/case1/testcase.json | 1 + .../remove/specific/case2/final/Gopkg.lock | 6 ++- .../remove/specific/case2/testcase.json | 1 + .../remove/unused/case1/final/Gopkg.lock | 6 ++- .../remove/unused/case1/testcase.json | 1 + .../status/case1/dot/final/Gopkg.lock | 6 ++- .../status/case1/dot/testcase.json | 3 +- .../status/case1/json/final/Gopkg.lock | 6 ++- .../status/case1/json/testcase.json | 3 +- .../status/case1/table/final/Gopkg.lock | 6 ++- .../status/case1/table/testcase.json | 1 + internal/gps/result.go | 18 +++++++ internal/gps/result_test.go | 1 + internal/gps/solver.go | 2 +- lock.go | 50 +++++++++++++------ lock_test.go | 16 ++++-- testdata/lock/error1.toml | 1 + testdata/lock/golden0.toml | 6 ++- testdata/lock/golden1.toml | 6 ++- testdata/txn_writer/expected_diff_output.txt | 2 - testdata/txn_writer/expected_lock.toml | 6 ++- txn_writer_test.go | 4 +- 50 files changed, 204 insertions(+), 61 deletions(-) diff --git a/cmd/dep/init.go b/cmd/dep/init.go index efc0863ee8..ac849c4d12 100644 --- a/cmd/dep/init.go +++ b/cmd/dep/init.go @@ -211,7 +211,7 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error { return errors.Wrap(err, "prepare solver") } - l.Memo = s.HashInputs() + l.Inputs.Memo = s.HashInputs() // Pass timestamp (yyyyMMddHHmmss format) as suffix to backup name. vendorbak, err := dep.BackupVendor(vpath, time.Now().Format("20060102150405")) diff --git a/cmd/dep/prune.go b/cmd/dep/prune.go index cd59655160..d2d0614ab7 100644 --- a/cmd/dep/prune.go +++ b/cmd/dep/prune.go @@ -68,7 +68,7 @@ func (cmd *pruneCommand) Run(ctx *dep.Ctx, args []string) error { return errors.Wrap(err, "could not set up solver for input hashing") } - if !bytes.Equal(s.HashInputs(), p.Lock.Memo) { + if !bytes.Equal(s.HashInputs(), p.Lock.Inputs.Memo) { return fmt.Errorf("lock hash doesn't match") } diff --git a/cmd/dep/status.go b/cmd/dep/status.go index 57d5440a50..68e7238da5 100644 --- a/cmd/dep/status.go +++ b/cmd/dep/status.go @@ -277,7 +277,7 @@ func runStatusAll(loggers *dep.Loggers, out outputter, p *dep.Project, sm gps.So slp := p.Lock.Projects() sort.Sort(dep.SortedLockedProjects(slp)) - if bytes.Equal(s.HashInputs(), p.Lock.Memo) { + if bytes.Equal(s.HashInputs(), p.Lock.Inputs.Memo) { // If these are equal, we're guaranteed that the lock is a transitively // complete picture of all deps. That eliminates the need for at least // some checks. diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock index 2b9c20975d..6cb2e0ddf8 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case1/testcase.json b/cmd/dep/testdata/harness_tests/ensure/empty/case1/testcase.json index 515a342de3..ba9b088aa5 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case1/testcase.json +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case1/testcase.json @@ -3,6 +3,7 @@ ["init"], ["ensure", "-update"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest" ] diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock index 3c588e4d62..87bee3fda5 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "e7725ea56516a42a641aaaf5d48754258d9f3c59949cb8a0e8a21b1ab6e07179" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "e7725ea56516a42a641aaaf5d48754258d9f3c59949cb8a0e8a21b1ab6e07179" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case2/testcase.json b/cmd/dep/testdata/harness_tests/ensure/empty/case2/testcase.json index 19da527090..729de9d0f4 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case2/testcase.json +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case2/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["ensure"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest" ] diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock index 4fc4f785c5..2c4f895ae2 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "e5c16e09ed6f0a1a2b3cf472c34b7fd50861dd070e81d5e623f72e8173f0c065" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "e5c16e09ed6f0a1a2b3cf472c34b7fd50861dd070e81d5e623f72e8173f0c065" [[projects]] branch = "master" diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case3/testcase.json b/cmd/dep/testdata/harness_tests/ensure/empty/case3/testcase.json index 19da527090..729de9d0f4 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case3/testcase.json +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case3/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["ensure"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest" ] diff --git a/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock index e045b6b22c..c3726a002b 100644 --- a/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "8bca9526e654e56e05d9075d1f33fa5b649bf6d58aa7d71ca39e7fbea8468e07" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "8bca9526e654e56e05d9075d1f33fa5b649bf6d58aa7d71ca39e7fbea8468e07" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/ensure/override/case1/testcase.json b/cmd/dep/testdata/harness_tests/ensure/override/case1/testcase.json index c66b07ff04..efbbc392f7 100644 --- a/cmd/dep/testdata/harness_tests/ensure/override/case1/testcase.json +++ b/cmd/dep/testdata/harness_tests/ensure/override/case1/testcase.json @@ -3,6 +3,7 @@ ["init"], ["ensure", "-override", "github.com/sdboyer/deptest@1.0.0"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest" ] diff --git a/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock index 70280d1ade..d5f19c45fe 100644 --- a/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock @@ -1 +1,5 @@ -memo = "ab4fef131ee828e96ba67d31a7d690bd5f2f42040c6766b1b12fe856f87e0ff7" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "ab4fef131ee828e96ba67d31a7d690bd5f2f42040c6766b1b12fe856f87e0ff7" diff --git a/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/testcase.json b/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/testcase.json index d3635f8d62..111c48e755 100644 --- a/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/testcase.json +++ b/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/testcase.json @@ -1,7 +1,8 @@ { - "commands": [ - ["init", "-no-examples"], - ["ensure", "-update"] - ], - "error-expected" : "all dirs lacked any go code" - } + "commands": [ + ["init", "-no-examples"], + ["ensure", "-update"] + ], + "error-expected": "all dirs lacked any go code", + "vendor-final": [] +} diff --git a/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock index b808a70fc4..b898609181 100644 --- a/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "1b381263a360eafafe3ef7f9be626672668d17250a3c9a8debd169d1b5e2eebb" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "1b381263a360eafafe3ef7f9be626672668d17250a3c9a8debd169d1b5e2eebb" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/ensure/update/case1/testcase.json b/cmd/dep/testdata/harness_tests/ensure/update/case1/testcase.json index cb357104b5..07bc635269 100644 --- a/cmd/dep/testdata/harness_tests/ensure/update/case1/testcase.json +++ b/cmd/dep/testdata/harness_tests/ensure/update/case1/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["ensure", "-update", "github.com/sdboyer/deptest"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest", "github.com/sdboyer/deptestdos" diff --git a/cmd/dep/testdata/harness_tests/ensure/update/case2/testcase.json b/cmd/dep/testdata/harness_tests/ensure/update/case2/testcase.json index aa86ad32f3..f0ac6111e5 100644 --- a/cmd/dep/testdata/harness_tests/ensure/update/case2/testcase.json +++ b/cmd/dep/testdata/harness_tests/ensure/update/case2/testcase.json @@ -2,5 +2,6 @@ "commands": [ ["ensure", "-n", "-update", "github.com/sdboyer/deptest"] ], + "error-expected": "", "vendor-final": [] } diff --git a/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock index d43aa9f9ac..226b7b58a8 100644 --- a/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/init/case1/testcase.json b/cmd/dep/testdata/harness_tests/init/case1/testcase.json index ea0ff80424..d1d4585460 100644 --- a/cmd/dep/testdata/harness_tests/init/case1/testcase.json +++ b/cmd/dep/testdata/harness_tests/init/case1/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["init", "-no-examples"] ], + "error-expected": "", "gopath-initial": { "github.com/sdboyer/deptest": "v0.8.0", "github.com/sdboyer/deptestdos": "a0196baa11ea047dd65037287451d36b861b00ea" diff --git a/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock index 50ed86f68e..6ca80abf05 100644 --- a/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "b4fe6e8bceac924197838b6ea47989abbdd3a8d31035d20ee0a1dabc0994c368" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "b4fe6e8bceac924197838b6ea47989abbdd3a8d31035d20ee0a1dabc0994c368" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/init/case2/testcase.json b/cmd/dep/testdata/harness_tests/init/case2/testcase.json index 3f3140bc04..e16b746d4b 100644 --- a/cmd/dep/testdata/harness_tests/init/case2/testcase.json +++ b/cmd/dep/testdata/harness_tests/init/case2/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["init", "-no-examples"] ], + "error-expected": "", "gopath-initial": { "github.com/sdboyer/deptest": "v0.8.0" }, diff --git a/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock index 465f59501e..7dd1c59f38 100644 --- a/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "af9a783a5430dabcaaf44683c09e2b729e1c0d61f13bfdf6677c4fd0b41387ca" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "af9a783a5430dabcaaf44683c09e2b729e1c0d61f13bfdf6677c4fd0b41387ca" [[projects]] branch = "master" diff --git a/cmd/dep/testdata/harness_tests/init/case3/testcase.json b/cmd/dep/testdata/harness_tests/init/case3/testcase.json index 13cba35aeb..d3a92a55e2 100644 --- a/cmd/dep/testdata/harness_tests/init/case3/testcase.json +++ b/cmd/dep/testdata/harness_tests/init/case3/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["init", "-no-examples"] ], + "error-expected": "", "gopath-initial": { "github.com/sdboyer/deptestdos": "a0196baa11ea047dd65037287451d36b861b00ea" }, diff --git a/cmd/dep/testdata/harness_tests/init/manifest-exists/testcase.json b/cmd/dep/testdata/harness_tests/init/manifest-exists/testcase.json index 08322d2a49..3958059fbb 100644 --- a/cmd/dep/testdata/harness_tests/init/manifest-exists/testcase.json +++ b/cmd/dep/testdata/harness_tests/init/manifest-exists/testcase.json @@ -1,6 +1,7 @@ { - "commands": [ - ["init"] - ], - "error-expected" : "manifest already exists:" - } \ No newline at end of file + "commands": [ + ["init"] + ], + "error-expected": "manifest already exists:", + "vendor-final": [] +} diff --git a/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock index 2b9c20975d..6cb2e0ddf8 100644 --- a/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/init/skip-hidden/testcase.json b/cmd/dep/testdata/harness_tests/init/skip-hidden/testcase.json index 283604258a..5e4c2bb85d 100644 --- a/cmd/dep/testdata/harness_tests/init/skip-hidden/testcase.json +++ b/cmd/dep/testdata/harness_tests/init/skip-hidden/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["init", "-no-examples"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest" ] diff --git a/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock index 03b152c335..6f19daa4bc 100644 --- a/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/remove/force/case1/testcase.json b/cmd/dep/testdata/harness_tests/remove/force/case1/testcase.json index 84447c9b42..ac4dbf2547 100644 --- a/cmd/dep/testdata/harness_tests/remove/force/case1/testcase.json +++ b/cmd/dep/testdata/harness_tests/remove/force/case1/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["remove", "-force", "github.com/sdboyer/deptestdos", "github.com/not/used"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest", "github.com/sdboyer/deptestdos" diff --git a/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock index 89372cc518..6782040d3a 100644 --- a/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/remove/specific/case1/testcase.json b/cmd/dep/testdata/harness_tests/remove/specific/case1/testcase.json index 327867d481..5b44542ae1 100644 --- a/cmd/dep/testdata/harness_tests/remove/specific/case1/testcase.json +++ b/cmd/dep/testdata/harness_tests/remove/specific/case1/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["remove", "github.com/not/used"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest", "github.com/sdboyer/deptestdos" diff --git a/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock index cb091e429d..c1b9827d32 100644 --- a/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "38d8431865759ee3bf28fbdfc464f98ee8b56319394ec717df45e9969544cfca" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "38d8431865759ee3bf28fbdfc464f98ee8b56319394ec717df45e9969544cfca" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/remove/specific/case2/testcase.json b/cmd/dep/testdata/harness_tests/remove/specific/case2/testcase.json index 1a5f806b6c..db915f38ad 100644 --- a/cmd/dep/testdata/harness_tests/remove/specific/case2/testcase.json +++ b/cmd/dep/testdata/harness_tests/remove/specific/case2/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["remove", "github.com/not/used"] ], + "error-expected": "", "vendor-initial": { "github.com/sdboyer/deptest": "v0.8.0", "github.com/sdboyer/deptestdos": "a0196baa11ea047dd65037287451d36b861b00ea" diff --git a/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock index 89372cc518..6782040d3a 100644 --- a/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/remove/unused/case1/testcase.json b/cmd/dep/testdata/harness_tests/remove/unused/case1/testcase.json index 23cc6142a5..09d58975e0 100644 --- a/cmd/dep/testdata/harness_tests/remove/unused/case1/testcase.json +++ b/cmd/dep/testdata/harness_tests/remove/unused/case1/testcase.json @@ -2,6 +2,7 @@ "commands": [ ["remove", "-unused"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest", "github.com/sdboyer/deptestdos" diff --git a/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock index 9b7e4cbf29..11ca7a566a 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/status/case1/dot/testcase.json b/cmd/dep/testdata/harness_tests/status/case1/dot/testcase.json index 8295f9bed1..9634c3981a 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/dot/testcase.json +++ b/cmd/dep/testdata/harness_tests/status/case1/dot/testcase.json @@ -1,8 +1,9 @@ { "commands": [ ["ensure"], - ["status","-dot"] + ["status", "-dot"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest", "github.com/sdboyer/deptestdos" diff --git a/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock index 9b7e4cbf29..11ca7a566a 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/status/case1/json/testcase.json b/cmd/dep/testdata/harness_tests/status/case1/json/testcase.json index 2444d2888c..9e1a0643b7 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/json/testcase.json +++ b/cmd/dep/testdata/harness_tests/status/case1/json/testcase.json @@ -1,8 +1,9 @@ { "commands": [ ["ensure"], - ["status","-json"] + ["status", "-json"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest", "github.com/sdboyer/deptestdos" diff --git a/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock index 9b7e4cbf29..11ca7a566a 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock @@ -1,4 +1,8 @@ -memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + +[inputs] + analyzerName = "dep" + analyzerVersion = 1 + memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" [[projects]] name = "github.com/sdboyer/deptest" diff --git a/cmd/dep/testdata/harness_tests/status/case1/table/testcase.json b/cmd/dep/testdata/harness_tests/status/case1/table/testcase.json index 813db298bb..e1f1eadeeb 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/table/testcase.json +++ b/cmd/dep/testdata/harness_tests/status/case1/table/testcase.json @@ -3,6 +3,7 @@ ["ensure"], ["status"] ], + "error-expected": "", "vendor-final": [ "github.com/sdboyer/deptest", "github.com/sdboyer/deptestdos" diff --git a/internal/gps/result.go b/internal/gps/result.go index 3c79ffeac8..bea7cff13c 100644 --- a/internal/gps/result.go +++ b/internal/gps/result.go @@ -14,6 +14,10 @@ import ( // additional methods that report information about the solve run. type Solution interface { Lock + // The name of the ProjectAnalyzer used in generating this solution. + AnalyzerName() string + // The version of the ProjectAanalyzer used in generating this solution. + AnalyzerVersion() int Attempts() int } @@ -26,6 +30,12 @@ type solution struct { // The hash digest of the input opts hd []byte + + // The analyzer name + analyzerName string + + // The analyzer version + analyzerVersion int } // WriteDepTree takes a basedir and a Lock, and exports all the projects @@ -76,3 +86,11 @@ func (r solution) Attempts() int { func (r solution) InputHash() []byte { return r.hd } + +func (r solution) AnalyzerName() string { + return r.analyzerName +} + +func (r solution) AnalyzerVersion() int { + return r.analyzerVersion +} diff --git a/internal/gps/result_test.go b/internal/gps/result_test.go index ad2c235c94..b3a0ba949b 100644 --- a/internal/gps/result_test.go +++ b/internal/gps/result_test.go @@ -35,6 +35,7 @@ func init() { }, nil), }, } + basicResult.analyzerName, basicResult.analyzerVersion = (naiveAnalyzer{}).Info() // just in case something needs punishing, kubernetes is happy to oblige kub = atom{ diff --git a/internal/gps/solver.go b/internal/gps/solver.go index c2b8203ac7..fe9ea1afa5 100644 --- a/internal/gps/solver.go +++ b/internal/gps/solver.go @@ -358,7 +358,7 @@ func (s *solver) Solve() (Solution, error) { soln = solution{ att: s.attempts, } - + soln.analyzerName, soln.analyzerVersion = s.rd.an.Info() soln.hd = s.HashInputs() // Convert ProjectAtoms into LockedProjects diff --git a/lock.go b/lock.go index 3f0c02e92e..dda243cbb8 100644 --- a/lock.go +++ b/lock.go @@ -18,15 +18,27 @@ import ( const LockName = "Gopkg.lock" type Lock struct { - Memo []byte - P []gps.LockedProject + Inputs InputInfo + P []gps.LockedProject +} + +type InputInfo struct { + Memo []byte + AnalyzerName string + AnalyzerVersion int } type rawLock struct { - Memo string `toml:"memo"` + Inputs inputInfo `toml:"inputs"` Projects []rawLockedProject `toml:"projects"` } +type inputInfo struct { + Memo string `toml:"memo"` + AnalyzerName string `toml:"analyzerName"` + AnalyzerVersion int `toml:"analyzerVersion"` +} + type rawLockedProject struct { Name string `toml:"name"` Branch string `toml:"branch,omitempty"` @@ -58,11 +70,14 @@ func fromRawLock(raw rawLock) (*Lock, error) { P: make([]gps.LockedProject, len(raw.Projects)), } - l.Memo, err = hex.DecodeString(raw.Memo) + l.Inputs.Memo, err = hex.DecodeString(raw.Inputs.Memo) if err != nil { return nil, errors.Errorf("invalid hash digest in lock's memo field") } + l.Inputs.AnalyzerName = raw.Inputs.AnalyzerName + l.Inputs.AnalyzerVersion = raw.Inputs.AnalyzerVersion + for i, ld := range raw.Projects { r := gps.Revision(ld.Revision) @@ -84,11 +99,12 @@ func fromRawLock(raw rawLock) (*Lock, error) { } l.P[i] = gps.NewLockedProject(id, v, ld.Packages) } + return l, nil } func (l *Lock) InputHash() []byte { - return l.Memo + return l.Inputs.Memo } func (l *Lock) Projects() []gps.LockedProject { @@ -98,7 +114,11 @@ func (l *Lock) Projects() []gps.LockedProject { // toRaw converts the manifest into a representation suitable to write to the lock file func (l *Lock) toRaw() rawLock { raw := rawLock{ - Memo: hex.EncodeToString(l.Memo), + Inputs: inputInfo{ + Memo: hex.EncodeToString(l.Inputs.Memo), + AnalyzerName: l.Inputs.AnalyzerName, + AnalyzerVersion: l.Inputs.AnalyzerVersion, + }, Projects: make([]rawLockedProject, len(l.P)), } @@ -137,21 +157,19 @@ func (l *Lock) MarshalTOML() ([]byte, error) { // // As gps.Solution is a superset of gps.Lock, this can also be used to convert // solutions to dep's lock format. -func LockFromInterface(in gps.Lock) *Lock { - if in == nil { - return nil - } else if l, ok := in.(*Lock); ok { - return l - } - +func LockFromInterface(in gps.Solution) *Lock { h, p := in.InputHash(), in.Projects() l := &Lock{ - Memo: make([]byte, len(h)), - P: make([]gps.LockedProject, len(p)), + Inputs: InputInfo{ + Memo: make([]byte, len(h)), + AnalyzerName: in.AnalyzerName(), + AnalyzerVersion: in.AnalyzerVersion(), + }, + P: make([]gps.LockedProject, len(p)), } - copy(l.Memo, h) + copy(l.Inputs.Memo, h) copy(l.P, p) return l } diff --git a/lock_test.go b/lock_test.go index 2f035756b6..0389055c66 100644 --- a/lock_test.go +++ b/lock_test.go @@ -28,7 +28,9 @@ func TestReadLock(t *testing.T) { b, _ := hex.DecodeString("2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e") want := &Lock{ - Memo: b, + Inputs: InputInfo{ + Memo: b, + }, P: []gps.LockedProject{ gps.NewLockedProject( gps.ProjectIdentifier{ProjectRoot: gps.ProjectRoot("github.com/golang/dep/internal/gps")}, @@ -52,7 +54,9 @@ func TestReadLock(t *testing.T) { b, _ = hex.DecodeString("2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e") want = &Lock{ - Memo: b, + Inputs: InputInfo{ + Memo: b, + }, P: []gps.LockedProject{ gps.NewLockedProject( gps.ProjectIdentifier{ProjectRoot: gps.ProjectRoot("github.com/golang/dep/internal/gps")}, @@ -75,7 +79,9 @@ func TestWriteLock(t *testing.T) { want := h.GetTestFileString(golden) memo, _ := hex.DecodeString("2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e") l := &Lock{ - Memo: memo, + Inputs: InputInfo{ + Memo: memo, + }, P: []gps.LockedProject{ gps.NewLockedProject( gps.ProjectIdentifier{ProjectRoot: gps.ProjectRoot("github.com/golang/dep/internal/gps")}, @@ -104,7 +110,9 @@ func TestWriteLock(t *testing.T) { want = h.GetTestFileString(golden) memo, _ = hex.DecodeString("2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e") l = &Lock{ - Memo: memo, + Inputs: InputInfo{ + Memo: memo, + }, P: []gps.LockedProject{ gps.NewLockedProject( gps.ProjectIdentifier{ProjectRoot: gps.ProjectRoot("github.com/golang/dep/internal/gps")}, diff --git a/testdata/lock/error1.toml b/testdata/lock/error1.toml index 344ed1118b..676f01c2c1 100644 --- a/testdata/lock/error1.toml +++ b/testdata/lock/error1.toml @@ -1,3 +1,4 @@ +[inputs] memo = "000aaa2a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" [[projects]] diff --git a/testdata/lock/golden0.toml b/testdata/lock/golden0.toml index 35ffb6257c..039aa96af4 100644 --- a/testdata/lock/golden0.toml +++ b/testdata/lock/golden0.toml @@ -1,4 +1,8 @@ -memo = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + +[inputs] + analyzerName = "" + analyzerVersion = 0 + memo = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" [[projects]] branch = "master" diff --git a/testdata/lock/golden1.toml b/testdata/lock/golden1.toml index dfa34d8859..cb7797dfab 100644 --- a/testdata/lock/golden1.toml +++ b/testdata/lock/golden1.toml @@ -1,4 +1,8 @@ -memo = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + +[inputs] + analyzerName = "" + analyzerVersion = 0 + memo = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" [[projects]] name = "github.com/golang/dep/internal/gps" diff --git a/testdata/txn_writer/expected_diff_output.txt b/testdata/txn_writer/expected_diff_output.txt index bbfe78f82b..7fe4662ccd 100644 --- a/testdata/txn_writer/expected_diff_output.txt +++ b/testdata/txn_writer/expected_diff_output.txt @@ -1,5 +1,3 @@ -Memo: 595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c -> 2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e - Add: [[projects]] name = "github.com/sdboyer/deptest" diff --git a/testdata/txn_writer/expected_lock.toml b/testdata/txn_writer/expected_lock.toml index bda7ec14cb..cd30d511f4 100644 --- a/testdata/txn_writer/expected_lock.toml +++ b/testdata/txn_writer/expected_lock.toml @@ -1,4 +1,8 @@ -memo = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" + +[inputs] + analyzerName = "" + analyzerVersion = 0 + memo = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" [[projects]] name = "github.com/sdboyer/dep-test" diff --git a/txn_writer_test.go b/txn_writer_test.go index ecf0168f29..2b97a36551 100644 --- a/txn_writer_test.go +++ b/txn_writer_test.go @@ -261,7 +261,7 @@ func TestSafeWriter_ModifiedLock(t *testing.T) { originalLock := new(Lock) *originalLock = *pc.Project.Lock - originalLock.Memo = []byte{} // zero out the input hash to ensure non-equivalency + originalLock.Inputs.Memo = []byte{} // zero out the input hash to ensure non-equivalency sw, _ := NewSafeWriter(nil, originalLock, pc.Project.Lock, VendorOnChanged) // Verify prepared actions @@ -308,7 +308,7 @@ func TestSafeWriter_ModifiedLockSkipVendor(t *testing.T) { originalLock := new(Lock) *originalLock = *pc.Project.Lock - originalLock.Memo = []byte{} // zero out the input hash to ensure non-equivalency + originalLock.Inputs.Memo = []byte{} // zero out the input hash to ensure non-equivalency sw, _ := NewSafeWriter(nil, originalLock, pc.Project.Lock, VendorNever) // Verify prepared actions From 2081136c142832cce7c879611a602b1a8da2add2 Mon Sep 17 00:00:00 2001 From: sam boyer Date: Mon, 15 May 2017 23:12:06 -0400 Subject: [PATCH 2/5] s/LockFromInterface/LockFromSolution/ --- cmd/dep/ensure.go | 2 +- cmd/dep/init.go | 2 +- cmd/dep/remove.go | 2 +- lock.go | 8 ++------ 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/cmd/dep/ensure.go b/cmd/dep/ensure.go index b10ec0f622..2e348cd7d4 100644 --- a/cmd/dep/ensure.go +++ b/cmd/dep/ensure.go @@ -162,7 +162,7 @@ func (cmd *ensureCommand) Run(ctx *dep.Ctx, args []string) error { writeV = dep.VendorAlways } - newLock := dep.LockFromInterface(solution) + newLock := dep.LockFromSolution(solution) sw, err := dep.NewSafeWriter(nil, p.Lock, newLock, writeV) if err != nil { return err diff --git a/cmd/dep/init.go b/cmd/dep/init.go index ac849c4d12..53133a79bf 100644 --- a/cmd/dep/init.go +++ b/cmd/dep/init.go @@ -178,7 +178,7 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error { handleAllTheFailuresOfTheWorld(err) return err } - l = dep.LockFromInterface(soln) + l = dep.LockFromSolution(soln) // Iterate through the new projects in solved lock and add them to manifest // if direct deps and log feedback for all the new projects. diff --git a/cmd/dep/remove.go b/cmd/dep/remove.go index e53e68e7da..90d81e50d6 100644 --- a/cmd/dep/remove.go +++ b/cmd/dep/remove.go @@ -176,7 +176,7 @@ func (cmd *removeCommand) Run(ctx *dep.Ctx, args []string) error { return err } - newLock := dep.LockFromInterface(soln) + newLock := dep.LockFromSolution(soln) sw, err := dep.NewSafeWriter(nil, p.Lock, newLock, dep.VendorOnChanged) if err != nil { diff --git a/lock.go b/lock.go index dda243cbb8..60d6cf4379 100644 --- a/lock.go +++ b/lock.go @@ -149,15 +149,11 @@ func (l *Lock) MarshalTOML() ([]byte, error) { return result, errors.Wrap(err, "Unable to marshal lock to TOML string") } -// LockFromInterface converts an arbitrary gps.Lock to dep's representation of a -// lock. If the input is already dep's *lock, the input is returned directly. +// LockFromSolution converts a gps.Solution to dep's representation of a lock. // // Data is defensively copied wherever necessary to ensure the resulting *lock // shares no memory with the original lock. -// -// As gps.Solution is a superset of gps.Lock, this can also be used to convert -// solutions to dep's lock format. -func LockFromInterface(in gps.Solution) *Lock { +func LockFromSolution(in gps.Solution) *Lock { h, p := in.InputHash(), in.Projects() l := &Lock{ From bf737b6eff4efae732a8a97226927b80ae910519 Mon Sep 17 00:00:00 2001 From: sam boyer Date: Mon, 22 May 2017 09:25:33 -0400 Subject: [PATCH 3/5] Expand Solver, Solution to report name/version --- internal/gps/result.go | 17 +++++++++++++++- internal/gps/solver.go | 46 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/internal/gps/result.go b/internal/gps/result.go index bea7cff13c..03948ff5bd 100644 --- a/internal/gps/result.go +++ b/internal/gps/result.go @@ -16,8 +16,12 @@ type Solution interface { Lock // The name of the ProjectAnalyzer used in generating this solution. AnalyzerName() string - // The version of the ProjectAanalyzer used in generating this solution. + // The version of the ProjectAnalyzer used in generating this solution. AnalyzerVersion() int + // The name of the Solver used in generating this solution. + SolverName() string + // The version of the Solver used in generating this solution. + SolverVersion() int Attempts() int } @@ -36,6 +40,9 @@ type solution struct { // The analyzer version analyzerVersion int + + // The solver used in producing this solution + solv Solver } // WriteDepTree takes a basedir and a Lock, and exports all the projects @@ -94,3 +101,11 @@ func (r solution) AnalyzerName() string { func (r solution) AnalyzerVersion() int { return r.analyzerVersion } + +func (r solution) SolverName() string { + return r.solv.Name() +} + +func (r solution) SolverVersion() int { + return r.solv.Version() +} diff --git a/internal/gps/solver.go b/internal/gps/solver.go index fe9ea1afa5..674524ef71 100644 --- a/internal/gps/solver.go +++ b/internal/gps/solver.go @@ -333,6 +333,49 @@ type Solver interface { // Solve initiates a solving run. It will either complete successfully with // a Solution, or fail with an informative error. Solve() (Solution, error) + + // Name returns a string identifying the particular solver backend. + // + // Different solvers likely have different invariants, and likely will not + // have identical possible result sets for any particular inputs; in some + // cases, they may even be disjoint. + Name() string + + // Version returns an int indicating the version of the solver of the given + // Name(). Implementations should change their reported version ONLY when + // the logic is changed in such a way that substantially changes the result + // set that is possible for a substantial subset of likely inputs. + // + // "Substantial" is an imprecise term, and it is used intentionally. There + // are no easy, general ways of subdividing constraint solving problems such + // that one can know, a priori, the full impact that subtle algorithmic + // changes will have on possible result sets. Consequently, we have to fall + // back on coarser, intuition-based reasoning as to whether a change is + // large enough that it is likely to be broadly user-visible. + // + // This is acceptable, because this value is not used programmatically by + // the solver in any way. Rather, it is intend for implementing tools to + // use as a coarse signal to users about compatibility between their tool's + // version and the current data, typically via persistence to a Lock. + // Changes to the version number reported should be weighed between + // confusing teams by having two members' tools continuously rolling back + // each others' chosen Solutions for no apparent reason, and annoying teams + // by changing the number for changes so remote that warnings about solver + // version mismatches become meaningless. + // + // Err on the side of caution. + // + // Chronology is the only implication of the ordering - that lower version + // numbers were published before higher numbers. + Version() int +} + +func (s *solver) Name() string { + return "gps-cdcl" +} + +func (s *solver) Version() int { + return 1 } // Solve attempts to find a dependency solution for the given project, as @@ -356,7 +399,8 @@ func (s *solver) Solve() (Solution, error) { var soln solution if err == nil { soln = solution{ - att: s.attempts, + att: s.attempts, + solv: s, } soln.analyzerName, soln.analyzerVersion = s.rd.an.Info() soln.hd = s.HashInputs() From 75ac56953320b6d68337f034c40fd0ef8fa71971 Mon Sep 17 00:00:00 2001 From: sam boyer Date: Mon, 22 May 2017 13:41:13 -0400 Subject: [PATCH 4/5] Incorporate solver name and version in Gopkg.lock --- cmd/dep/init.go | 2 +- cmd/dep/prune.go | 2 +- cmd/dep/status.go | 2 +- .../ensure/empty/case1/final/Gopkg.lock | 12 +++-- .../ensure/empty/case2/final/Gopkg.lock | 12 +++-- .../ensure/empty/case3/final/Gopkg.lock | 12 +++-- .../ensure/override/case1/final/Gopkg.lock | 12 +++-- .../ensure/pkg-errors/case1/final/Gopkg.lock | 10 ++-- .../ensure/update/case1/final/Gopkg.lock | 12 +++-- .../harness_tests/init/case1/final/Gopkg.lock | 12 +++-- .../harness_tests/init/case2/final/Gopkg.lock | 12 +++-- .../harness_tests/init/case3/final/Gopkg.lock | 12 +++-- .../init/skip-hidden/final/Gopkg.lock | 12 +++-- .../remove/force/case1/final/Gopkg.lock | 12 +++-- .../remove/specific/case1/final/Gopkg.lock | 12 +++-- .../remove/specific/case2/final/Gopkg.lock | 12 +++-- .../remove/unused/case1/final/Gopkg.lock | 12 +++-- .../status/case1/dot/final/Gopkg.lock | 12 +++-- .../status/case1/json/final/Gopkg.lock | 12 +++-- .../status/case1/table/final/Gopkg.lock | 12 +++-- lock.go | 48 +++++++++++-------- lock_test.go | 8 ++-- testdata/lock/error0.toml | 3 +- testdata/lock/error1.toml | 7 +-- testdata/lock/error2.toml | 6 ++- testdata/lock/golden0.toml | 12 +++-- testdata/lock/golden1.toml | 12 +++-- testdata/txn_writer/expected_lock.toml | 12 +++-- testdata/txn_writer/original_lock.toml | 3 +- testdata/txn_writer/updated_lock.toml | 3 +- txn_writer_test.go | 10 ++-- 31 files changed, 194 insertions(+), 138 deletions(-) diff --git a/cmd/dep/init.go b/cmd/dep/init.go index 53133a79bf..2df5361a92 100644 --- a/cmd/dep/init.go +++ b/cmd/dep/init.go @@ -211,7 +211,7 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error { return errors.Wrap(err, "prepare solver") } - l.Inputs.Memo = s.HashInputs() + l.SolveMeta.Memo = s.HashInputs() // Pass timestamp (yyyyMMddHHmmss format) as suffix to backup name. vendorbak, err := dep.BackupVendor(vpath, time.Now().Format("20060102150405")) diff --git a/cmd/dep/prune.go b/cmd/dep/prune.go index d2d0614ab7..fa2e6a7b91 100644 --- a/cmd/dep/prune.go +++ b/cmd/dep/prune.go @@ -68,7 +68,7 @@ func (cmd *pruneCommand) Run(ctx *dep.Ctx, args []string) error { return errors.Wrap(err, "could not set up solver for input hashing") } - if !bytes.Equal(s.HashInputs(), p.Lock.Inputs.Memo) { + if !bytes.Equal(s.HashInputs(), p.Lock.SolveMeta.Memo) { return fmt.Errorf("lock hash doesn't match") } diff --git a/cmd/dep/status.go b/cmd/dep/status.go index 68e7238da5..4b0858c4c5 100644 --- a/cmd/dep/status.go +++ b/cmd/dep/status.go @@ -277,7 +277,7 @@ func runStatusAll(loggers *dep.Loggers, out outputter, p *dep.Project, sm gps.So slp := p.Lock.Projects() sort.Sort(dep.SortedLockedProjects(slp)) - if bytes.Equal(s.HashInputs(), p.Lock.Inputs.Memo) { + if bytes.Equal(s.HashInputs(), p.Lock.SolveMeta.Memo) { // If these are equal, we're guaranteed that the lock is a transitively // complete picture of all deps. That eliminates the need for at least // some checks. diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock index 6cb2e0ddf8..4e2b2ddd19 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock @@ -1,11 +1,13 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] revision = "ff2948a2ac8f538c4ecd55962e919d1e13e74baf" version = "v1.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock index 87bee3fda5..a42ebeb645 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock @@ -1,11 +1,13 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "e7725ea56516a42a641aaaf5d48754258d9f3c59949cb8a0e8a21b1ab6e07179" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] revision = "ff2948a2ac8f538c4ecd55962e919d1e13e74baf" version = "v1.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "e7725ea56516a42a641aaaf5d48754258d9f3c59949cb8a0e8a21b1ab6e07179" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock index 2c4f895ae2..e0495bbd73 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock @@ -1,11 +1,13 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "e5c16e09ed6f0a1a2b3cf472c34b7fd50861dd070e81d5e623f72e8173f0c065" - [[projects]] branch = "master" name = "github.com/sdboyer/deptest" packages = ["."] revision = "3f4c3bea144e112a69bbe5d8d01c1b09a544253f" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "e5c16e09ed6f0a1a2b3cf472c34b7fd50861dd070e81d5e623f72e8173f0c065" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock index c3726a002b..5421bb412e 100644 --- a/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock @@ -1,11 +1,13 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "8bca9526e654e56e05d9075d1f33fa5b649bf6d58aa7d71ca39e7fbea8468e07" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] revision = "ff2948a2ac8f538c4ecd55962e919d1e13e74baf" version = "v1.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "8bca9526e654e56e05d9075d1f33fa5b649bf6d58aa7d71ca39e7fbea8468e07" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock index d5f19c45fe..8f31a52e8c 100644 --- a/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock @@ -1,5 +1,7 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "ab4fef131ee828e96ba67d31a7d690bd5f2f42040c6766b1b12fe856f87e0ff7" +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "ab4fef131ee828e96ba67d31a7d690bd5f2f42040c6766b1b12fe856f87e0ff7" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock index b898609181..0b00a6c138 100644 --- a/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "1b381263a360eafafe3ef7f9be626672668d17250a3c9a8debd169d1b5e2eebb" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] @@ -15,3 +10,10 @@ packages = ["."] revision = "5c607206be5decd28e6263ffffdcee067266015e" version = "v2.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "1b381263a360eafafe3ef7f9be626672668d17250a3c9a8debd169d1b5e2eebb" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock index 226b7b58a8..31f66ed271 100644 --- a/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] @@ -14,3 +9,10 @@ name = "github.com/sdboyer/deptestdos" packages = ["."] revision = "a0196baa11ea047dd65037287451d36b861b00ea" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock index 6ca80abf05..8f0282efe5 100644 --- a/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "b4fe6e8bceac924197838b6ea47989abbdd3a8d31035d20ee0a1dabc0994c368" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] @@ -15,3 +10,10 @@ packages = ["."] revision = "5c607206be5decd28e6263ffffdcee067266015e" version = "v2.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "b4fe6e8bceac924197838b6ea47989abbdd3a8d31035d20ee0a1dabc0994c368" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock index 7dd1c59f38..c8ae9a8044 100644 --- a/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "af9a783a5430dabcaaf44683c09e2b729e1c0d61f13bfdf6677c4fd0b41387ca" - [[projects]] branch = "master" name = "github.com/sdboyer/deptest" @@ -14,3 +9,10 @@ name = "github.com/sdboyer/deptestdos" packages = ["."] revision = "a0196baa11ea047dd65037287451d36b861b00ea" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "af9a783a5430dabcaaf44683c09e2b729e1c0d61f13bfdf6677c4fd0b41387ca" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock index 6cb2e0ddf8..4e2b2ddd19 100644 --- a/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock @@ -1,11 +1,13 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] revision = "ff2948a2ac8f538c4ecd55962e919d1e13e74baf" version = "v1.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock index 6f19daa4bc..50eba069da 100644 --- a/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] @@ -15,3 +10,10 @@ packages = ["."] revision = "5c607206be5decd28e6263ffffdcee067266015e" version = "v2.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock index 6782040d3a..7945f8f406 100644 --- a/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] @@ -14,3 +9,10 @@ name = "github.com/sdboyer/deptestdos" packages = ["."] revision = "a0196baa11ea047dd65037287451d36b861b00ea" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock index c1b9827d32..81becf3f5e 100644 --- a/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock @@ -1,11 +1,13 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "38d8431865759ee3bf28fbdfc464f98ee8b56319394ec717df45e9969544cfca" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] revision = "ff2948a2ac8f538c4ecd55962e919d1e13e74baf" version = "v1.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "38d8431865759ee3bf28fbdfc464f98ee8b56319394ec717df45e9969544cfca" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock index 6782040d3a..7945f8f406 100644 --- a/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] @@ -14,3 +9,10 @@ name = "github.com/sdboyer/deptestdos" packages = ["."] revision = "a0196baa11ea047dd65037287451d36b861b00ea" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock index 11ca7a566a..f2860246d6 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] @@ -15,3 +10,10 @@ packages = ["."] revision = "5c607206be5decd28e6263ffffdcee067266015e" version = "v2.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock index 11ca7a566a..f2860246d6 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] @@ -15,3 +10,10 @@ packages = ["."] revision = "5c607206be5decd28e6263ffffdcee067266015e" version = "v2.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock index 11ca7a566a..f2860246d6 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock @@ -1,9 +1,4 @@ -[inputs] - analyzerName = "dep" - analyzerVersion = 1 - memo = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" - [[projects]] name = "github.com/sdboyer/deptest" packages = ["."] @@ -15,3 +10,10 @@ packages = ["."] revision = "5c607206be5decd28e6263ffffdcee067266015e" version = "v2.0.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/lock.go b/lock.go index 60d6cf4379..0b2147b104 100644 --- a/lock.go +++ b/lock.go @@ -18,25 +18,29 @@ import ( const LockName = "Gopkg.lock" type Lock struct { - Inputs InputInfo - P []gps.LockedProject + SolveMeta SolveMeta + P []gps.LockedProject } -type InputInfo struct { +type SolveMeta struct { Memo []byte AnalyzerName string AnalyzerVersion int + SolverName string + SolverVersion int } type rawLock struct { - Inputs inputInfo `toml:"inputs"` - Projects []rawLockedProject `toml:"projects"` + SolveMeta solveMeta `toml:"solve-meta"` + Projects []rawLockedProject `toml:"projects"` } -type inputInfo struct { - Memo string `toml:"memo"` - AnalyzerName string `toml:"analyzerName"` - AnalyzerVersion int `toml:"analyzerVersion"` +type solveMeta struct { + Memo string `toml:"inputs-hash"` + AnalyzerName string `toml:"analyzer-name"` + AnalyzerVersion int `toml:"analyzer-version"` + SolverName string `toml:"solver-name"` + SolverVersion int `toml:"solver-version"` } type rawLockedProject struct { @@ -70,13 +74,15 @@ func fromRawLock(raw rawLock) (*Lock, error) { P: make([]gps.LockedProject, len(raw.Projects)), } - l.Inputs.Memo, err = hex.DecodeString(raw.Inputs.Memo) + l.SolveMeta.Memo, err = hex.DecodeString(raw.SolveMeta.Memo) if err != nil { return nil, errors.Errorf("invalid hash digest in lock's memo field") } - l.Inputs.AnalyzerName = raw.Inputs.AnalyzerName - l.Inputs.AnalyzerVersion = raw.Inputs.AnalyzerVersion + l.SolveMeta.AnalyzerName = raw.SolveMeta.AnalyzerName + l.SolveMeta.AnalyzerVersion = raw.SolveMeta.AnalyzerVersion + l.SolveMeta.SolverName = raw.SolveMeta.SolverName + l.SolveMeta.SolverVersion = raw.SolveMeta.SolverVersion for i, ld := range raw.Projects { r := gps.Revision(ld.Revision) @@ -104,7 +110,7 @@ func fromRawLock(raw rawLock) (*Lock, error) { } func (l *Lock) InputHash() []byte { - return l.Inputs.Memo + return l.SolveMeta.Memo } func (l *Lock) Projects() []gps.LockedProject { @@ -114,10 +120,12 @@ func (l *Lock) Projects() []gps.LockedProject { // toRaw converts the manifest into a representation suitable to write to the lock file func (l *Lock) toRaw() rawLock { raw := rawLock{ - Inputs: inputInfo{ - Memo: hex.EncodeToString(l.Inputs.Memo), - AnalyzerName: l.Inputs.AnalyzerName, - AnalyzerVersion: l.Inputs.AnalyzerVersion, + SolveMeta: solveMeta{ + Memo: hex.EncodeToString(l.SolveMeta.Memo), + AnalyzerName: l.SolveMeta.AnalyzerName, + AnalyzerVersion: l.SolveMeta.AnalyzerVersion, + SolverName: l.SolveMeta.SolverName, + SolverVersion: l.SolveMeta.SolverVersion, }, Projects: make([]rawLockedProject, len(l.P)), } @@ -157,15 +165,17 @@ func LockFromSolution(in gps.Solution) *Lock { h, p := in.InputHash(), in.Projects() l := &Lock{ - Inputs: InputInfo{ + SolveMeta: SolveMeta{ Memo: make([]byte, len(h)), AnalyzerName: in.AnalyzerName(), AnalyzerVersion: in.AnalyzerVersion(), + SolverName: in.SolverName(), + SolverVersion: in.SolverVersion(), }, P: make([]gps.LockedProject, len(p)), } - copy(l.Inputs.Memo, h) + copy(l.SolveMeta.Memo, h) copy(l.P, p) return l } diff --git a/lock_test.go b/lock_test.go index 0389055c66..3a80227ad2 100644 --- a/lock_test.go +++ b/lock_test.go @@ -28,7 +28,7 @@ func TestReadLock(t *testing.T) { b, _ := hex.DecodeString("2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e") want := &Lock{ - Inputs: InputInfo{ + SolveMeta: SolveMeta{ Memo: b, }, P: []gps.LockedProject{ @@ -54,7 +54,7 @@ func TestReadLock(t *testing.T) { b, _ = hex.DecodeString("2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e") want = &Lock{ - Inputs: InputInfo{ + SolveMeta: SolveMeta{ Memo: b, }, P: []gps.LockedProject{ @@ -79,7 +79,7 @@ func TestWriteLock(t *testing.T) { want := h.GetTestFileString(golden) memo, _ := hex.DecodeString("2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e") l := &Lock{ - Inputs: InputInfo{ + SolveMeta: SolveMeta{ Memo: memo, }, P: []gps.LockedProject{ @@ -110,7 +110,7 @@ func TestWriteLock(t *testing.T) { want = h.GetTestFileString(golden) memo, _ = hex.DecodeString("2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e") l = &Lock{ - Inputs: InputInfo{ + SolveMeta: SolveMeta{ Memo: memo, }, P: []gps.LockedProject{ diff --git a/testdata/lock/error0.toml b/testdata/lock/error0.toml index 8aca39428c..e004604fd4 100644 --- a/testdata/lock/error0.toml +++ b/testdata/lock/error0.toml @@ -1,4 +1,5 @@ -memo = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" +[solve-meta] +inputs-hash = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" [[projects]] name = "github.com/golang/dep/internal/gps" diff --git a/testdata/lock/error1.toml b/testdata/lock/error1.toml index 676f01c2c1..21b24cfd4f 100644 --- a/testdata/lock/error1.toml +++ b/testdata/lock/error1.toml @@ -1,8 +1,9 @@ -[inputs] -memo = "000aaa2a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" - [[projects]] name = "github.com/golang/dep/internal/gps" branch = "master" revision = "d05d5aca9f895d19e9265839bffeadd74a2d2ecb" packages = ["."] + +[solve-meta] + inputs-hash = "000aaa2a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + diff --git a/testdata/lock/error2.toml b/testdata/lock/error2.toml index d88d3e437a..0b9d2c43d0 100644 --- a/testdata/lock/error2.toml +++ b/testdata/lock/error2.toml @@ -1,5 +1,7 @@ -memo = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" - [[projects]] name = "github.com/golang/dep/internal/gps" packages = ["."] + +[solve-meta] + inputs-hash = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + diff --git a/testdata/lock/golden0.toml b/testdata/lock/golden0.toml index 039aa96af4..616f1f0a62 100644 --- a/testdata/lock/golden0.toml +++ b/testdata/lock/golden0.toml @@ -1,11 +1,13 @@ -[inputs] - analyzerName = "" - analyzerVersion = 0 - memo = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" - [[projects]] branch = "master" name = "github.com/golang/dep/internal/gps" packages = ["."] revision = "d05d5aca9f895d19e9265839bffeadd74a2d2ecb" + +[solve-meta] + analyzer-name = "" + analyzer-version = 0 + inputs-hash = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + solver-name = "" + solver-version = 0 diff --git a/testdata/lock/golden1.toml b/testdata/lock/golden1.toml index cb7797dfab..4106cbc086 100644 --- a/testdata/lock/golden1.toml +++ b/testdata/lock/golden1.toml @@ -1,11 +1,13 @@ -[inputs] - analyzerName = "" - analyzerVersion = 0 - memo = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" - [[projects]] name = "github.com/golang/dep/internal/gps" packages = ["."] revision = "d05d5aca9f895d19e9265839bffeadd74a2d2ecb" version = "0.12.2" + +[solve-meta] + analyzer-name = "" + analyzer-version = 0 + inputs-hash = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + solver-name = "" + solver-version = 0 diff --git a/testdata/txn_writer/expected_lock.toml b/testdata/txn_writer/expected_lock.toml index cd30d511f4..9a18be1360 100644 --- a/testdata/txn_writer/expected_lock.toml +++ b/testdata/txn_writer/expected_lock.toml @@ -1,11 +1,13 @@ -[inputs] - analyzerName = "" - analyzerVersion = 0 - memo = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" - [[projects]] name = "github.com/sdboyer/dep-test" packages = ["."] revision = "2a3a211e171803acb82d1d5d42ceb53228f51751" version = "1.0.0" + +[solve-meta] + analyzer-name = "" + analyzer-version = 0 + inputs-hash = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" + solver-name = "" + solver-version = 0 diff --git a/testdata/txn_writer/original_lock.toml b/testdata/txn_writer/original_lock.toml index 1a9384efa7..dd7467ad91 100644 --- a/testdata/txn_writer/original_lock.toml +++ b/testdata/txn_writer/original_lock.toml @@ -1,4 +1,5 @@ -memo = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" +[solve-meta] + inputs-hash = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" [[projects]] name = "github.com/foo/bar" diff --git a/testdata/txn_writer/updated_lock.toml b/testdata/txn_writer/updated_lock.toml index da44aa9a21..2f06b8f73f 100644 --- a/testdata/txn_writer/updated_lock.toml +++ b/testdata/txn_writer/updated_lock.toml @@ -1,4 +1,5 @@ -memo = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" +[solve-meta] + inputs-hash = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" [[projects]] name = "github.com/foo/bar" diff --git a/txn_writer_test.go b/txn_writer_test.go index 2b97a36551..e68418fe93 100644 --- a/txn_writer_test.go +++ b/txn_writer_test.go @@ -261,18 +261,18 @@ func TestSafeWriter_ModifiedLock(t *testing.T) { originalLock := new(Lock) *originalLock = *pc.Project.Lock - originalLock.Inputs.Memo = []byte{} // zero out the input hash to ensure non-equivalency + originalLock.SolveMeta.Memo = []byte{} // zero out the input hash to ensure non-equivalency sw, _ := NewSafeWriter(nil, originalLock, pc.Project.Lock, VendorOnChanged) // Verify prepared actions if sw.HasManifest() { - t.Fatal("Did not expect the payload to contain the manifest") + t.Fatal("Did not expect the manifest to be written") } if !sw.HasLock() { - t.Fatal("Expected the payload to contain the lock") + t.Fatal("Expected that the writer should plan to write the lock") } if !sw.HasVendor() { - t.Fatal("Expected the payload to contain the vendor directory") + t.Fatal("Expected that the writer should plan to write the vendor directory") } // Write changes @@ -308,7 +308,7 @@ func TestSafeWriter_ModifiedLockSkipVendor(t *testing.T) { originalLock := new(Lock) *originalLock = *pc.Project.Lock - originalLock.Inputs.Memo = []byte{} // zero out the input hash to ensure non-equivalency + originalLock.SolveMeta.Memo = []byte{} // zero out the input hash to ensure non-equivalency sw, _ := NewSafeWriter(nil, originalLock, pc.Project.Lock, VendorNever) // Verify prepared actions From 0081879b447960c4d2325d4bc0bc7e13815bb981 Mon Sep 17 00:00:00 2001 From: sam boyer Date: Mon, 22 May 2017 22:35:18 -0400 Subject: [PATCH 5/5] Respond to review --- .../harness_tests/ensure/empty/case1/final/Gopkg.lock | 2 +- .../harness_tests/ensure/empty/case2/final/Gopkg.lock | 2 +- .../harness_tests/ensure/empty/case3/final/Gopkg.lock | 2 +- .../harness_tests/ensure/override/case1/final/Gopkg.lock | 2 +- .../harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock | 2 +- .../harness_tests/ensure/update/case1/final/Gopkg.lock | 2 +- cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock | 2 +- cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock | 2 +- cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock | 2 +- .../harness_tests/init/skip-hidden/final/Gopkg.lock | 2 +- .../harness_tests/remove/force/case1/final/Gopkg.lock | 2 +- .../harness_tests/remove/specific/case1/final/Gopkg.lock | 2 +- .../harness_tests/remove/specific/case2/final/Gopkg.lock | 2 +- .../harness_tests/remove/unused/case1/final/Gopkg.lock | 2 +- .../harness_tests/status/case1/dot/final/Gopkg.lock | 2 +- .../harness_tests/status/case1/json/final/Gopkg.lock | 2 +- .../harness_tests/status/case1/table/final/Gopkg.lock | 2 +- internal/gps/lock.go | 3 --- lock.go | 6 +++--- testdata/lock/error0.toml | 2 +- testdata/lock/error1.toml | 2 +- testdata/lock/error2.toml | 2 +- testdata/lock/golden0.toml | 2 +- testdata/lock/golden1.toml | 2 +- testdata/txn_writer/expected_diff_output.txt | 1 + testdata/txn_writer/expected_lock.toml | 2 +- testdata/txn_writer/original_lock.toml | 2 +- testdata/txn_writer/updated_lock.toml | 2 +- 28 files changed, 29 insertions(+), 31 deletions(-) diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock index 4e2b2ddd19..da1067fcb8 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case1/final/Gopkg.lock @@ -8,6 +8,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" + inputs-digest = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock index a42ebeb645..cb9d384f10 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case2/final/Gopkg.lock @@ -8,6 +8,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "e7725ea56516a42a641aaaf5d48754258d9f3c59949cb8a0e8a21b1ab6e07179" + inputs-digest = "e7725ea56516a42a641aaaf5d48754258d9f3c59949cb8a0e8a21b1ab6e07179" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock index e0495bbd73..b21698e2a6 100644 --- a/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/empty/case3/final/Gopkg.lock @@ -8,6 +8,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "e5c16e09ed6f0a1a2b3cf472c34b7fd50861dd070e81d5e623f72e8173f0c065" + inputs-digest = "e5c16e09ed6f0a1a2b3cf472c34b7fd50861dd070e81d5e623f72e8173f0c065" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock index 5421bb412e..e8a7a9206b 100644 --- a/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/override/case1/final/Gopkg.lock @@ -8,6 +8,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "8bca9526e654e56e05d9075d1f33fa5b649bf6d58aa7d71ca39e7fbea8468e07" + inputs-digest = "8bca9526e654e56e05d9075d1f33fa5b649bf6d58aa7d71ca39e7fbea8468e07" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock index 8f31a52e8c..ac8c5ce2e7 100644 --- a/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/pkg-errors/case1/final/Gopkg.lock @@ -2,6 +2,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "ab4fef131ee828e96ba67d31a7d690bd5f2f42040c6766b1b12fe856f87e0ff7" + inputs-digest = "ab4fef131ee828e96ba67d31a7d690bd5f2f42040c6766b1b12fe856f87e0ff7" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock index 0b00a6c138..571fc14868 100644 --- a/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/ensure/update/case1/final/Gopkg.lock @@ -14,6 +14,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "1b381263a360eafafe3ef7f9be626672668d17250a3c9a8debd169d1b5e2eebb" + inputs-digest = "1b381263a360eafafe3ef7f9be626672668d17250a3c9a8debd169d1b5e2eebb" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock index 31f66ed271..24d4e7fbb6 100644 --- a/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/case1/final/Gopkg.lock @@ -13,6 +13,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + inputs-digest = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock index 8f0282efe5..0a80650995 100644 --- a/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/case2/final/Gopkg.lock @@ -14,6 +14,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "b4fe6e8bceac924197838b6ea47989abbdd3a8d31035d20ee0a1dabc0994c368" + inputs-digest = "b4fe6e8bceac924197838b6ea47989abbdd3a8d31035d20ee0a1dabc0994c368" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock index c8ae9a8044..88db597d6b 100644 --- a/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/case3/final/Gopkg.lock @@ -13,6 +13,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "af9a783a5430dabcaaf44683c09e2b729e1c0d61f13bfdf6677c4fd0b41387ca" + inputs-digest = "af9a783a5430dabcaaf44683c09e2b729e1c0d61f13bfdf6677c4fd0b41387ca" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock index 4e2b2ddd19..da1067fcb8 100644 --- a/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/init/skip-hidden/final/Gopkg.lock @@ -8,6 +8,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" + inputs-digest = "14b07b05e0f01051b03887ab2bf80b516bc5510ea92f75f76c894b1745d8850c" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock index 50eba069da..3fcf19c3dc 100644 --- a/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/force/case1/final/Gopkg.lock @@ -14,6 +14,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + inputs-digest = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock index 7945f8f406..30f8660059 100644 --- a/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/specific/case1/final/Gopkg.lock @@ -13,6 +13,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" + inputs-digest = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock index 81becf3f5e..15b8aaed5d 100644 --- a/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/specific/case2/final/Gopkg.lock @@ -8,6 +8,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "38d8431865759ee3bf28fbdfc464f98ee8b56319394ec717df45e9969544cfca" + inputs-digest = "38d8431865759ee3bf28fbdfc464f98ee8b56319394ec717df45e9969544cfca" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock index 7945f8f406..30f8660059 100644 --- a/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/remove/unused/case1/final/Gopkg.lock @@ -13,6 +13,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" + inputs-digest = "d414dbf5fc668c1085effa68372d02e54b23d058cc66f9fd19ba094c6a946d9b" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock index f2860246d6..a237f4f080 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/status/case1/dot/final/Gopkg.lock @@ -14,6 +14,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + inputs-digest = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock index f2860246d6..a237f4f080 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/status/case1/json/final/Gopkg.lock @@ -14,6 +14,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + inputs-digest = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" solver-name = "gps-cdcl" solver-version = 1 diff --git a/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock b/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock index f2860246d6..a237f4f080 100644 --- a/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock +++ b/cmd/dep/testdata/harness_tests/status/case1/table/final/Gopkg.lock @@ -14,6 +14,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-hash = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" + inputs-digest = "88d2718cda70cce45158f953d2c6ead79c1db38e67e9704aff72be8fddb096e7" solver-name = "gps-cdcl" solver-version = 1 diff --git a/internal/gps/lock.go b/internal/gps/lock.go index 2e7b787e72..af728dd18f 100644 --- a/internal/gps/lock.go +++ b/internal/gps/lock.go @@ -17,9 +17,6 @@ import ( // solution is all that would be necessary to constitute a lock file, though // tools can include whatever other information they want in their storage. type Lock interface { - // Indicates the version of the solver used to generate this lock data - //SolverVersion() string - // The hash of inputs to gps that resulted in this lock data InputHash() []byte diff --git a/lock.go b/lock.go index 0b2147b104..e3a3d181f5 100644 --- a/lock.go +++ b/lock.go @@ -36,7 +36,7 @@ type rawLock struct { } type solveMeta struct { - Memo string `toml:"inputs-hash"` + InputsDigest string `toml:"inputs-digest"` AnalyzerName string `toml:"analyzer-name"` AnalyzerVersion int `toml:"analyzer-version"` SolverName string `toml:"solver-name"` @@ -74,7 +74,7 @@ func fromRawLock(raw rawLock) (*Lock, error) { P: make([]gps.LockedProject, len(raw.Projects)), } - l.SolveMeta.Memo, err = hex.DecodeString(raw.SolveMeta.Memo) + l.SolveMeta.Memo, err = hex.DecodeString(raw.SolveMeta.InputsDigest) if err != nil { return nil, errors.Errorf("invalid hash digest in lock's memo field") } @@ -121,7 +121,7 @@ func (l *Lock) Projects() []gps.LockedProject { func (l *Lock) toRaw() rawLock { raw := rawLock{ SolveMeta: solveMeta{ - Memo: hex.EncodeToString(l.SolveMeta.Memo), + InputsDigest: hex.EncodeToString(l.SolveMeta.Memo), AnalyzerName: l.SolveMeta.AnalyzerName, AnalyzerVersion: l.SolveMeta.AnalyzerVersion, SolverName: l.SolveMeta.SolverName, diff --git a/testdata/lock/error0.toml b/testdata/lock/error0.toml index e004604fd4..141d5bc78a 100644 --- a/testdata/lock/error0.toml +++ b/testdata/lock/error0.toml @@ -1,5 +1,5 @@ [solve-meta] -inputs-hash = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + inputs-digest = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" [[projects]] name = "github.com/golang/dep/internal/gps" diff --git a/testdata/lock/error1.toml b/testdata/lock/error1.toml index 21b24cfd4f..cf54d870cf 100644 --- a/testdata/lock/error1.toml +++ b/testdata/lock/error1.toml @@ -5,5 +5,5 @@ packages = ["."] [solve-meta] - inputs-hash = "000aaa2a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + inputs-digest = "000aaa2a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" diff --git a/testdata/lock/error2.toml b/testdata/lock/error2.toml index 0b9d2c43d0..788fc8c7c8 100644 --- a/testdata/lock/error2.toml +++ b/testdata/lock/error2.toml @@ -3,5 +3,5 @@ packages = ["."] [solve-meta] - inputs-hash = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + inputs-digest = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" diff --git a/testdata/lock/golden0.toml b/testdata/lock/golden0.toml index 616f1f0a62..2011593b48 100644 --- a/testdata/lock/golden0.toml +++ b/testdata/lock/golden0.toml @@ -8,6 +8,6 @@ [solve-meta] analyzer-name = "" analyzer-version = 0 - inputs-hash = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + inputs-digest = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" solver-name = "" solver-version = 0 diff --git a/testdata/lock/golden1.toml b/testdata/lock/golden1.toml index 4106cbc086..fe2941c26f 100644 --- a/testdata/lock/golden1.toml +++ b/testdata/lock/golden1.toml @@ -8,6 +8,6 @@ [solve-meta] analyzer-name = "" analyzer-version = 0 - inputs-hash = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" + inputs-digest = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" solver-name = "" solver-version = 0 diff --git a/testdata/txn_writer/expected_diff_output.txt b/testdata/txn_writer/expected_diff_output.txt index 7fe4662ccd..ef4dd3e89c 100644 --- a/testdata/txn_writer/expected_diff_output.txt +++ b/testdata/txn_writer/expected_diff_output.txt @@ -1,3 +1,4 @@ +Memo: 595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c -> 2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e Add: [[projects]] name = "github.com/sdboyer/deptest" diff --git a/testdata/txn_writer/expected_lock.toml b/testdata/txn_writer/expected_lock.toml index 9a18be1360..e35ad1040a 100644 --- a/testdata/txn_writer/expected_lock.toml +++ b/testdata/txn_writer/expected_lock.toml @@ -8,6 +8,6 @@ [solve-meta] analyzer-name = "" analyzer-version = 0 - inputs-hash = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" + inputs-digest = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" solver-name = "" solver-version = 0 diff --git a/testdata/txn_writer/original_lock.toml b/testdata/txn_writer/original_lock.toml index dd7467ad91..c1d38a3173 100644 --- a/testdata/txn_writer/original_lock.toml +++ b/testdata/txn_writer/original_lock.toml @@ -1,5 +1,5 @@ [solve-meta] - inputs-hash = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" + inputs-digest = "2252a285ab27944a4d7adcba8dbd03980f59ba652f12db39fa93b927c345593e" [[projects]] name = "github.com/foo/bar" diff --git a/testdata/txn_writer/updated_lock.toml b/testdata/txn_writer/updated_lock.toml index 2f06b8f73f..709d3e1844 100644 --- a/testdata/txn_writer/updated_lock.toml +++ b/testdata/txn_writer/updated_lock.toml @@ -1,5 +1,5 @@ [solve-meta] - inputs-hash = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" + inputs-digest = "595716d270828e763c811ef79c9c41f85b1d1bfbdfe85280036405c03772206c" [[projects]] name = "github.com/foo/bar"