From 21259507bd8fda4b58aedce027fadb48dacbbf97 Mon Sep 17 00:00:00 2001
From: Adam Reese <adam@reese.io>
Date: Wed, 29 Aug 2018 14:43:37 -0700
Subject: [PATCH] ref(*): rename requirements.lock to Chart.lock

Signed-off-by: Adam Reese <adam@reese.io>
---
 cmd/helm/dependency_build.go                  |   4 ++--
 cmd/helm/dependency_build_test.go             |   2 +-
 .../reqtest/{requirements.lock => Chart.lock} |   0
 pkg/chart/chart.go                            |   4 ++--
 pkg/chart/loader/load.go                      |   8 ++++----
 pkg/chart/loader/load_test.go                 |   4 ++--
 pkg/chart/loader/testdata/frobnitz-1.2.3.tgz  | Bin 3559 -> 3491 bytes
 .../{requirements.lock => Chart.lock}         |   0
 .../frobnitz/charts/mariner-4.3.2.tgz         | Bin 935 -> 917 bytes
 .../testdata/frobnitz_backslash-1.2.3.tgz     | Bin 3617 -> 3619 bytes
 .../{requirements.lock => Chart.lock}         |   0
 .../mariner/charts/albatross-0.1.0.tgz        | Bin 292 -> 291 bytes
 pkg/chart/requirements.go                     |   4 ++--
 pkg/chartutil/requirements_test.go            |   6 +++---
 .../{requirements.lock => Chart.lock}         |   0
 .../{requirements.lock => Chart.lock}         |   0
 .../{requirements.lock => Chart.lock}         |   0
 pkg/downloader/manager.go                     |  12 ++++++------
 pkg/resolver/resolver.go                      |   4 ++--
 pkg/resolver/resolver_test.go                 |   6 +++---
 20 files changed, 27 insertions(+), 27 deletions(-)
 rename cmd/helm/testdata/testcharts/reqtest/{requirements.lock => Chart.lock} (100%)
 rename pkg/chart/loader/testdata/frobnitz/{requirements.lock => Chart.lock} (100%)
 rename pkg/chart/loader/testdata/frobnitz_backslash/{requirements.lock => Chart.lock} (100%)
 rename pkg/chartutil/testdata/dependent-chart-alias/{requirements.lock => Chart.lock} (100%)
 rename pkg/chartutil/testdata/frobnitz/{requirements.lock => Chart.lock} (100%)
 rename pkg/chartutil/testdata/frobnitz_backslash/{requirements.lock => Chart.lock} (100%)

diff --git a/cmd/helm/dependency_build.go b/cmd/helm/dependency_build.go
index c8d22e7cf..67fe7cf26 100644
--- a/cmd/helm/dependency_build.go
+++ b/cmd/helm/dependency_build.go
@@ -26,7 +26,7 @@ import (
 )
 
 const dependencyBuildDesc = `
-Build out the charts/ directory from the requirements.lock file.
+Build out the charts/ directory from the Chart.lock file.
 
 Build is used to reconstruct a chart's dependencies to the state specified in
 the lock file. This will not re-negotiate dependencies, as 'helm dependency update'
@@ -50,7 +50,7 @@ func newDependencyBuildCmd(out io.Writer) *cobra.Command {
 
 	cmd := &cobra.Command{
 		Use:   "build CHART",
-		Short: "rebuild the charts/ directory based on the requirements.lock file",
+		Short: "rebuild the charts/ directory based on the Chart.lock file",
 		Long:  dependencyBuildDesc,
 		Args:  require.MaximumNArgs(1),
 		RunE: func(cmd *cobra.Command, args []string) error {
diff --git a/cmd/helm/dependency_build_test.go b/cmd/helm/dependency_build_test.go
index ff740a1f2..5c2f004fb 100644
--- a/cmd/helm/dependency_build_test.go
+++ b/cmd/helm/dependency_build_test.go
@@ -64,7 +64,7 @@ func TestDependencyBuildCmd(t *testing.T) {
 
 	// In the second pass, we want to remove the chart's request dependency,
 	// then see if it restores from the lock.
-	lockfile := hh.Path(chartname, "requirements.lock")
+	lockfile := hh.Path(chartname, "Chart.lock")
 	if _, err := os.Stat(lockfile); err != nil {
 		t.Fatal(err)
 	}
diff --git a/cmd/helm/testdata/testcharts/reqtest/requirements.lock b/cmd/helm/testdata/testcharts/reqtest/Chart.lock
similarity index 100%
rename from cmd/helm/testdata/testcharts/reqtest/requirements.lock
rename to cmd/helm/testdata/testcharts/reqtest/Chart.lock
diff --git a/pkg/chart/chart.go b/pkg/chart/chart.go
index c78ad60fb..d314104da 100644
--- a/pkg/chart/chart.go
+++ b/pkg/chart/chart.go
@@ -20,8 +20,8 @@ package chart
 type Chart struct {
 	// Metadata is the contents of the Chartfile.
 	Metadata *Metadata
-	// RequirementsLock is the contents of requirements.lock.
-	RequirementsLock *RequirementsLock
+	// LocK is the contents of Chart.lock.
+	Lock *Lock
 	// Templates for this chart.
 	Templates []*File
 	// TODO Delete RawValues after unit tests for `create` are refactored.
diff --git a/pkg/chart/loader/load.go b/pkg/chart/loader/load.go
index 4075ed6fa..855d92e57 100644
--- a/pkg/chart/loader/load.go
+++ b/pkg/chart/loader/load.go
@@ -77,10 +77,10 @@ func LoadFiles(files []*BufferedFile) (*chart.Chart, error) {
 			if err := yaml.Unmarshal(f.Data, c.Metadata); err != nil {
 				return c, errors.Wrap(err, "cannot load Chart.yaml")
 			}
-		case f.Name == "requirements.lock":
-			c.RequirementsLock = new(chart.RequirementsLock)
-			if err := yaml.Unmarshal(f.Data, &c.RequirementsLock); err != nil {
-				return c, errors.Wrap(err, "cannot load requirements.lock")
+		case f.Name == "Chart.lock":
+			c.Lock = new(chart.Lock)
+			if err := yaml.Unmarshal(f.Data, &c.Lock); err != nil {
+				return c, errors.Wrap(err, "cannot load Chart.lock")
 			}
 		case f.Name == "values.yaml":
 			c.Values = make(map[string]interface{})
diff --git a/pkg/chart/loader/load_test.go b/pkg/chart/loader/load_test.go
index 630da5cd4..6fda07ceb 100644
--- a/pkg/chart/loader/load_test.go
+++ b/pkg/chart/loader/load_test.go
@@ -248,8 +248,8 @@ func verifyChartFileAndTemplate(t *testing.T, c *chart.Chart, name string) {
 	if len(c.Metadata.Requirements) != 2 {
 		t.Fatalf("Expected 2 Requirements.Dependency, got %d", len(c.Metadata.Requirements))
 	}
-	if len(c.RequirementsLock.Dependencies) != 2 {
-		t.Fatalf("Expected 2 RequirementsLock.Dependency, got %d", len(c.RequirementsLock.Dependencies))
+	if len(c.Lock.Dependencies) != 2 {
+		t.Fatalf("Expected 2 Lock.Dependency, got %d", len(c.Lock.Dependencies))
 	}
 
 	for _, dep := range c.Dependencies() {
diff --git a/pkg/chart/loader/testdata/frobnitz-1.2.3.tgz b/pkg/chart/loader/testdata/frobnitz-1.2.3.tgz
index a8ba8ec6f4838980e28e67d8f619cc097ccd03f5..983820e0619f2eab82530fd6b4d35fd198c338c1 100644
GIT binary patch
literal 3491
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
RB1AL@{tpnH47LDx007J`{*V9w

literal 3559
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

diff --git a/pkg/chart/loader/testdata/frobnitz/requirements.lock b/pkg/chart/loader/testdata/frobnitz/Chart.lock
similarity index 100%
rename from pkg/chart/loader/testdata/frobnitz/requirements.lock
rename to pkg/chart/loader/testdata/frobnitz/Chart.lock
diff --git a/pkg/chart/loader/testdata/frobnitz/charts/mariner-4.3.2.tgz b/pkg/chart/loader/testdata/frobnitz/charts/mariner-4.3.2.tgz
index ac499ec9fe2422d6eeaca7455279c7409ce4c21d..88c24d822573423dccc1f07e60dd13eb6782eb13 100644
GIT binary patch
literal 917
zcmV;G18V#qiwFR35{Fv=1MQc4NEAUF#}A~E?Li1ak>PMc^m5(3-Mg#9EYV6agF+~K
zSmWKCx3YVC?ao$OArVoOLH$uwgpg5@C0f}7dei>}y<epG&jr2diUc3c?VX1jC6aeh
z&WDBBJ!a=OH{aiD6{tymq-9y+2*+_wyB(OL!(on`O^l3D051q4@8Fyw#{-TRc$>`v
z?D5=GFNThxMz#Vqgmm=ld1RW``<r#5|06d3BPdb*^L$XlY!y`G;kQA~!y$^l*5Bsj
z2k39-M5hIC!@rfE8R7c-p@Li>>IIAk>26I5U`h46KrSdivI5*;&j4Ok14TwT()<V`
zo!N*q-JB${0&8P@YIqf^l`IfIeh>1yC8WC;05U<u0F=ui)>K_5zX713fT~Ma)v8>;
zhjBo6Wo4nwPzlJ0b*oBNuTz?)Bd^2^S~-?yIV<zG5AHvq|53-M3=BR0iz4Ts`9Bf#
z>W>kLK1f144lXcs{q4MsqxvU;Ui~*h*+6=H8i2v-zrfoE>Mw92t^bK21LPwwG-M1S
z9$*&w?7V{9<t0mVix=jwOa>_NNje}G1f{vfOESp}1!9amz$=l09jo9K680J8W&y{l
zB4^6bUt!)cVIyvtoUqvqM0^bdprq*ltDro5uj^zz$xj}uR6_%?bQHE9X(6oUYgUHo
zv%7GMK_+1rz?y+*PcU?T&i`a^BcCdJkjCP`aAbqQ;-4gd{_$_)c-~IqKN0ke?!L;?
zSQ;4&=>KEiX_@9{7K<yY|J=r4@h^%(H2!%K_fAs(opuMU{|O;|Z?Z*A*|pk|^!`y%
z<y~&#==Dv;o;za#C%=z+eNblR?L1cN-jOz{a6;&t@v3csZxyp4J=Ej4IN4KpqV>fi
z*PORqc`cJ>pd&%?asA<jHAwwhTXNLfupdoJEj;M0n!N1ht3&MQ^p+`C>Ze`|zTD<s
z{cvmZy^b`!D<hQMW1L-EP=?hHUHd-g?3sOSUd^TDE56)+cwu+J>n#}{JAz+Y-`34K
zx^DZk3$0f_OmtmqdUK%eS*T_1jd7LdP6Us8uLN(Gr9JOBQ#ftrf%;3QjrNtDq3vx&
zY{&dcp?O{Vm`|nMsH`kl^KNnXt-IMh{PjEI)5e|`E<ZVyl3$(NXrwka!l%lnTAbAX
rTsjvuJ*c*{TBiRUStt|=g+ifFC=?2XLZMJ7lwsiqQ%4%t04M+e<ao%`

literal 935
zcmV;Y16ceYiwFSX$c0+~1MQb@XcK1~$0LJPZbM}_aZ~8CbV>)y<t}%ZXpl;+&Wf{x
zw$n-(>`C$@xp{xW^E{_%m4cMMnR`=kA^~+nbT5=mRQ&&EFz4Jlx)<xPZ??h^(V+$@
zxK*q5$t4YKMN3%|*?c|(p1b6^=lA6K{{Ec_v2G#k_mmJxl0upW+%Xt*M=7A@#{xiB
z6jfGKB`Al0BrCEad4N{RO^xCZ3NhOX#0U}e^m%MrJpPPz3jd=x{zoti`qw2PreYg3
zjp?_+&LgO*PuD*Xk|*e|Nt)&X()4fTNnUXMEoh=JD0qPoLnMmz6xD4j3~E6=GE5N7
zc?O8v7_4<72wR9EB5X#OxRX>-5d%Wf&aLA0vISDeiXkhiBN7$>@PWJmXha~zHX-ag
z05D3~M5i`x3xg!3DH8VkQ5u>l1Bp@F^p85FYdZf((V$lnWl{19&->v1CyYPp(v*Rz
z=YLg|Ri6LL!KnTevFL*=v`gRuQ`cXU13|8TIT+P{Gc+7TO49&LR{s@Qo2b7c2YCH2
z2UTDtibKbsAnyTgp<h;4U)$K+P`hqbjVM%s=A=#l`#`X<cHR3vHp7IJq8NzltY8-_
zctWR1C*l@xYMX}7fL6l25^_eO20LN58_4?_NI@MFKy47oT@%9A(=B$}W;+-Z(^1ZT
zzJ>6*k9h@Q%<gh62Af2~fMN&no?z-cng7`kMM>L;AuQ6=bYz3c;-4je@$ny!<bcBC
zzZ{H>?y<`ASb8y-(Ek_T(|qo0mPixr|K7%A@vpKU3-PZiYJk=MkQP*V{Fj5u9Wy<D
zUg>J}ymY&7;FC^i?#rof2Ip2(ez7A{oes4t{Y{tdwR9bSXU)5}ZYR!0zC663^UU&F
z4}M?hpC#YD_G|y;mDv^P`gqlW!^aOc`Fff@Kiz&PvGet=pM(#0Zd`@8RXZ!%FZe!s
z^{qFTTi>Uze|z%5<r60!e!ORJ>B0M}ck7ROdjC0<mRq-Gw|q9Rzxl6w!^f7L&0JjH
zxajTd`R>1m2Zyph@7k2HwzrU$p^nO}ClB51-rH~K&bc@G!XNxn_g%*i-JMI0%>HWe
z=_~UZ>77#znNRoC%-QziqLGSd#Vj)Hsp+}c_nY%*?VhTU0hk$?|HqArhOYjWtMgl5
z@hX>khcdf*k7lnfc<;=N@dwkff5VoqW3PFtpN}pa4u`|xa5x+ehr{7;I2_J&@E8dW
JuRj1N003B=-M9b%

diff --git a/pkg/chart/loader/testdata/frobnitz_backslash-1.2.3.tgz b/pkg/chart/loader/testdata/frobnitz_backslash-1.2.3.tgz
index bc6be27aa6d1afe8959df123f150919b74e514e8..513bfca1a413a8a2f87747beb25180247ae66423 100644
GIT binary patch
literal 3619
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

literal 3617
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

diff --git a/pkg/chart/loader/testdata/frobnitz_backslash/requirements.lock b/pkg/chart/loader/testdata/frobnitz_backslash/Chart.lock
similarity index 100%
rename from pkg/chart/loader/testdata/frobnitz_backslash/requirements.lock
rename to pkg/chart/loader/testdata/frobnitz_backslash/Chart.lock
diff --git a/pkg/chart/loader/testdata/mariner/charts/albatross-0.1.0.tgz b/pkg/chart/loader/testdata/mariner/charts/albatross-0.1.0.tgz
index f34758e120e49702c5029755b49eaa181d593574..fa8ef5acabc88a4af21f37f638398f409bcefe64 100644
GIT binary patch
literal 291
zcmV+;0o?u{iwFR35{Fv=1MSpHYQr!P24JssiopkPrT7Kjm23(<g`A9IgB%4(4)peQ
z+~7cHS_*L=^#3-q8DvSL-`dnVIP3jGv=}L6nddasqL`{&WpDM2RGMb0kYy$nNtI@K
z8BxC6mM#V#v>Ugg9kb`#ePdhGe6Y^>9CQ66^gRD{t6fN5bZ_qcjqyH;EW15_wNh8}
z&(pGqNZxxR@A>ER-|L<$nqPs~vfsGw5IVcB=#ie-^t3s>3~H>S=b>h|=fGYZ+4-qS
zCMuDlwWoFBSp4*X;7cy~KWa0uU*ZSwS^i~SUgv-8NB+OVJpVDg!3`V>u`{;TrV>PY
p2(5J$t*v3#ZFh`x0{{R300000000000002|Mz7L(0N(&8005*?j-CJj

literal 292
zcmV+<0o(o`iwFSX$c0+~1MSq`YJ)Ho25_(Q6bB!mi<&5SH+nPJQ^fXIg|sP2EbQ%P
zyJDfN8-uz(?EBpuFAg#B<kQ&3MDId)NM<9YthA<6Ez47txq7Q-lof@_3RRR@MRI&7
zbwYZ+EnN&D8b5Buc;>*j`^L7m{a~H*Ii~tYm}&mY&iJ@^F<X1@cZ}boRO<Hpvpl<+
zzgAKuB=5bE_x$tu@648Knr?wub6EL)AA7f}>5-n;ZfSMA8PqyY&qKq0$B~0Lun(su
zxyTk$bnduLnu?!35PZoc{|93S4s-kfKFhz<)ph<$og@F>VVeIK-slHTh1giv7+VV>
qGsMpMnwHM8@7Ehfx&Z(H000000000000000exp}+u4EDbC;$LV29I_C

diff --git a/pkg/chart/requirements.go b/pkg/chart/requirements.go
index bb2d1d11c..2c17a97c6 100644
--- a/pkg/chart/requirements.go
+++ b/pkg/chart/requirements.go
@@ -49,10 +49,10 @@ type Dependency struct {
 	Alias string `json:"alias,omitempty"`
 }
 
-// RequirementsLock is a lock file for requirements.
+// Lock is a lock file for requirements.
 //
 // It represents the state that the dependencies should be in.
-type RequirementsLock struct {
+type Lock struct {
 	// Genderated is the date the lock file was last generated.
 	Generated time.Time `json:"generated"`
 	// Digest is a hash of the requirements file used to generate it.
diff --git a/pkg/chartutil/requirements_test.go b/pkg/chartutil/requirements_test.go
index 4d35c07cf..1683c01e2 100644
--- a/pkg/chartutil/requirements_test.go
+++ b/pkg/chartutil/requirements_test.go
@@ -35,12 +35,12 @@ func TestLoadRequirements(t *testing.T) {
 	verifyRequirements(t, c)
 }
 
-func TestLoadRequirementsLock(t *testing.T) {
+func TestLoadChartLock(t *testing.T) {
 	c, err := loader.Load("testdata/frobnitz")
 	if err != nil {
 		t.Fatalf("Failed to load testdata: %s", err)
 	}
-	verifyRequirementsLock(t, c)
+	verifyChartLock(t, c)
 }
 
 func TestRequirementsEnabled(t *testing.T) {
@@ -426,7 +426,7 @@ func verifyRequirements(t *testing.T, c *chart.Chart) {
 	}
 }
 
-func verifyRequirementsLock(t *testing.T, c *chart.Chart) {
+func verifyChartLock(t *testing.T, c *chart.Chart) {
 	if len(c.Metadata.Requirements) != 2 {
 		t.Errorf("Expected 2 requirements, got %d", len(c.Metadata.Requirements))
 	}
diff --git a/pkg/chartutil/testdata/dependent-chart-alias/requirements.lock b/pkg/chartutil/testdata/dependent-chart-alias/Chart.lock
similarity index 100%
rename from pkg/chartutil/testdata/dependent-chart-alias/requirements.lock
rename to pkg/chartutil/testdata/dependent-chart-alias/Chart.lock
diff --git a/pkg/chartutil/testdata/frobnitz/requirements.lock b/pkg/chartutil/testdata/frobnitz/Chart.lock
similarity index 100%
rename from pkg/chartutil/testdata/frobnitz/requirements.lock
rename to pkg/chartutil/testdata/frobnitz/Chart.lock
diff --git a/pkg/chartutil/testdata/frobnitz_backslash/requirements.lock b/pkg/chartutil/testdata/frobnitz_backslash/Chart.lock
similarity index 100%
rename from pkg/chartutil/testdata/frobnitz_backslash/requirements.lock
rename to pkg/chartutil/testdata/frobnitz_backslash/Chart.lock
diff --git a/pkg/downloader/manager.go b/pkg/downloader/manager.go
index d4461d4bf..b80fd8d5c 100644
--- a/pkg/downloader/manager.go
+++ b/pkg/downloader/manager.go
@@ -73,14 +73,14 @@ func (m *Manager) Build() error {
 
 	// If a lock file is found, run a build from that. Otherwise, just do
 	// an update.
-	lock := c.RequirementsLock
+	lock := c.Lock
 	if lock == nil {
 		return m.Update()
 	}
 
 	req := c.Metadata.Requirements
 	if sum, err := resolver.HashReq(req); err != nil || sum != lock.Digest {
-		return errors.New("requirements.lock is out of sync with Chart.yaml")
+		return errors.New("Chart.lock is out of sync with Chart.yaml")
 	}
 
 	// Check that all of the repos we're dependent on actually exist.
@@ -155,7 +155,7 @@ func (m *Manager) Update() error {
 	}
 
 	// If the lock file hasn't changed, don't write a new one.
-	oldLock := c.RequirementsLock
+	oldLock := c.Lock
 	if oldLock != nil && oldLock.Digest == lock.Digest {
 		return nil
 	}
@@ -176,7 +176,7 @@ func (m *Manager) loadChartDir() (*chart.Chart, error) {
 // resolve takes a list of requirements and translates them into an exact version to download.
 //
 // This returns a lock file, which has all of the requirements normalized to a specific version.
-func (m *Manager) resolve(req []*chart.Dependency, repoNames map[string]string, hash string) (*chart.RequirementsLock, error) {
+func (m *Manager) resolve(req []*chart.Dependency, repoNames map[string]string, hash string) (*chart.Lock, error) {
 	res := resolver.New(m.ChartPath, m.HelmHome)
 	return res.Resolve(req, repoNames, hash)
 }
@@ -585,12 +585,12 @@ func (m *Manager) loadChartRepositories() (map[string]*repo.ChartRepository, err
 }
 
 // writeLock writes a lockfile to disk
-func writeLock(chartpath string, lock *chart.RequirementsLock) error {
+func writeLock(chartpath string, lock *chart.Lock) error {
 	data, err := yaml.Marshal(lock)
 	if err != nil {
 		return err
 	}
-	dest := filepath.Join(chartpath, "requirements.lock")
+	dest := filepath.Join(chartpath, "Chart.lock")
 	return ioutil.WriteFile(dest, data, 0644)
 }
 
diff --git a/pkg/resolver/resolver.go b/pkg/resolver/resolver.go
index 7072547f1..367529f0c 100644
--- a/pkg/resolver/resolver.go
+++ b/pkg/resolver/resolver.go
@@ -47,7 +47,7 @@ func New(chartpath string, helmhome helmpath.Home) *Resolver {
 }
 
 // Resolve resolves dependencies and returns a lock file with the resolution.
-func (r *Resolver) Resolve(reqs []*chart.Dependency, repoNames map[string]string, d string) (*chart.RequirementsLock, error) {
+func (r *Resolver) Resolve(reqs []*chart.Dependency, repoNames map[string]string, d string) (*chart.Lock, error) {
 
 	// Now we clone the dependencies, locking as we go.
 	locked := make([]*chart.Dependency, len(reqs))
@@ -107,7 +107,7 @@ func (r *Resolver) Resolve(reqs []*chart.Dependency, repoNames map[string]string
 	if len(missing) > 0 {
 		return nil, errors.Errorf("can't get a valid version for repositories %s. Try changing the version constraint in Chart.yaml", strings.Join(missing, ", "))
 	}
-	return &chart.RequirementsLock{
+	return &chart.Lock{
 		Generated:    time.Now(),
 		Digest:       d,
 		Dependencies: locked,
diff --git a/pkg/resolver/resolver_test.go b/pkg/resolver/resolver_test.go
index 84cf54ccf..7ec0cd387 100644
--- a/pkg/resolver/resolver_test.go
+++ b/pkg/resolver/resolver_test.go
@@ -25,7 +25,7 @@ func TestResolve(t *testing.T) {
 	tests := []struct {
 		name   string
 		req    []*chart.Dependency
-		expect *chart.RequirementsLock
+		expect *chart.Lock
 		err    bool
 	}{
 		{
@@ -61,7 +61,7 @@ func TestResolve(t *testing.T) {
 			req: []*chart.Dependency{
 				{Name: "alpine", Repository: "http://example.com", Version: ">=0.1.0"},
 			},
-			expect: &chart.RequirementsLock{
+			expect: &chart.Lock{
 				Dependencies: []*chart.Dependency{
 					{Name: "alpine", Repository: "http://example.com", Version: "0.2.0"},
 				},
@@ -72,7 +72,7 @@ func TestResolve(t *testing.T) {
 			req: []*chart.Dependency{
 				{Name: "signtest", Repository: "file://../../../../cmd/helm/testdata/testcharts/signtest", Version: "0.1.0"},
 			},
-			expect: &chart.RequirementsLock{
+			expect: &chart.Lock{
 				Dependencies: []*chart.Dependency{
 					{Name: "signtest", Repository: "file://../../../../cmd/helm/testdata/testcharts/signtest", Version: "0.1.0"},
 				},
-- 
GitLab