Skip to content
This repository has been archived by the owner on Sep 9, 2020. It is now read-only.

Vendor verification #1912

Merged
merged 26 commits into from
Jul 11, 2018
Merged
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
c7e220d
Remove InputsDigest, add InputImports
sdboyer Jun 14, 2018
db8b66b
dep: Introduce lock verification logic
sdboyer Jun 15, 2018
f23ef51
gps: Convert LockedProject to an interface
sdboyer Jun 21, 2018
81b3a3d
gps: Introduce verify subpackage
sdboyer Jun 25, 2018
485c74e
dep: Add foundation for verified, pruned vendor
sdboyer Jun 25, 2018
4cb57f5
dep: Make DeltaWriter use temp sibling vendor dir
sdboyer Jun 26, 2018
bce4a36
gps: Remove all reference to InputsDigest
sdboyer Jun 26, 2018
0b2482d
verify: Relocate lock diffing and tree hashing
sdboyer Jun 26, 2018
df2c26b
dep: Get DeltaWriter into a working state
sdboyer Jun 28, 2018
13ec211
gps: Diff->Delta, and bitfield for change checking
sdboyer Jun 28, 2018
6b47f58
dep: Tell the user why we're solving
sdboyer Jul 1, 2018
f00e828
dep: Update scads of tests
sdboyer Jul 3, 2018
9d4eca8
gps: Collapse LockWithImports into Lock
sdboyer Jul 4, 2018
3c60abc
dep: Make DeltaWriter sensitive to -vendor-only
sdboyer Jul 4, 2018
08a4349
dep: Fix linting issues, update CHANGELOG
sdboyer Jul 4, 2018
812b8c1
dep: Linting fixes
sdboyer Jul 4, 2018
d22fbb8
dep: Implement DeltaWriter.PrintPreparedActions()
sdboyer Jul 7, 2018
4b02ee0
dep: Use DeltaWriter on -no-vendor path, as well
sdboyer Jul 8, 2018
80eeec7
gps/verify: Add tests for LockSatisfaction
sdboyer Jul 9, 2018
0db8f69
gps/verify: Add LockDiff unit tests
sdboyer Jul 9, 2018
69991c7
dep: Fix -vendor-only path's invocation ordering
sdboyer Jul 9, 2018
5c8a1e3
Merge branch 'master' into verify-vendor
sdboyer Jul 9, 2018
d7a412f
dep: Update docs to reflect vendor verification
sdboyer Jul 9, 2018
fe299f7
dep: Switch back to SafeWriter for -vendor-only
sdboyer Jul 9, 2018
a34a48d
dep: Encapsulate vendor verification into method
sdboyer Jul 10, 2018
fc9484a
Add missing license header
sdboyer Jul 10, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
dep: Use DeltaWriter on -no-vendor path, as well
  • Loading branch information
sdboyer committed Jul 8, 2018
commit 4b02ee0588f272628f6a4e8a8b8806b657bffc0b
14 changes: 7 additions & 7 deletions cmd/dep/ensure.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ Project spec:

Ensure gets a project into a complete, reproducible, and likely compilable state:

* All non-stdlib imports are fulfilled
* All imports are fulfilled
* All rules in Gopkg.toml are respected
* Gopkg.lock records precise versions for all dependencies
* Gopkg.lock records immutable versions for all dependencies
* vendor/ is populated according to Gopkg.lock

Ensure has fast techniques to determine that some of these steps may be
Expand Down Expand Up @@ -337,7 +337,7 @@ func (cmd *ensureCommand) runDefault(ctx *dep.Ctx, args []string, p *dep.Project
return errors.WithMessage(dw.Write(p.AbsRoot, sm, true, logger), "grouped write of manifest, lock and vendor")
}

func (cmd *ensureCommand) runVendorOnly(ctx *dep.Ctx, args []string, p *dep.Project, sm gps.SourceManager, params gps.SolveParameters) error {
func (cmd *ensureCommand) runVendorOnly(ctx *dep.Ctx, args []string, p *dep.Project, sm gps.SourceManager, params gps.SolveParameters, statchan chan map[string]verify.VendorStatus) error {
if len(args) != 0 {
return errors.Errorf("dep ensure -vendor-only only populates vendor/ from %s; it takes no spec arguments", dep.LockName)
}
Expand All @@ -347,21 +347,21 @@ func (cmd *ensureCommand) runVendorOnly(ctx *dep.Ctx, args []string, p *dep.Proj
}

// Pass the same lock as old and new so that the writer will observe no
// difference and choose not to write it out, instead writing out only
sw, err := dep.NewSafeWriter(nil, p.Lock, p.ChangedLock, dep.VendorAlways, p.Manifest.PruneOptions)
// difference, and write out only ncessary vendor/ changes.
dw, err := dep.NewDeltaWriter(p.Lock, p.Lock, <-statchan, p.Manifest.PruneOptions, filepath.Join(p.AbsRoot, "vendor"), VendorAlways)
if err != nil {
return err
}

if cmd.dryRun {
return sw.PrintPreparedActions(ctx.Out, ctx.Verbose)
return dw.PrintPreparedActions(ctx.Out, ctx.Verbose)
}

var logger *log.Logger
if ctx.Verbose {
logger = ctx.Err
}
return errors.WithMessage(sw.Write(p.AbsRoot, sm, true, logger), "grouped write of manifest, lock and vendor")
return errors.WithMessage(dw.Write(p.AbsRoot, sm, true, logger), "grouped write of manifest, lock and vendor")
}

func (cmd *ensureCommand) runUpdate(ctx *dep.Ctx, args []string, p *dep.Project, sm gps.SourceManager, params gps.SolveParameters, statchan chan map[string]verify.VendorStatus) error {
Expand Down