nebius/SWE-rebench-V2-PRs huggingface dataset:
Repository: rust-ndarray/ndarray
Pull request #715 (2019-09-16 20:40:16)

Add support for empty s![] call
This is nice just for consistency with the other dimensionalities. I'm not sure if it's useful in practice, but it doesn't do any harm.

Related to #714 and #693.


Patch:
diff --git a/src/slice.rs b/src/slice.rs
index 53dbae0a..349e1fa8 100644
--- a/src/slice.rs
+++ b/src/slice.rs
@@ -604,6 +604,17 @@ macro_rules! s(
             }
         }
     };
+    // empty call, i.e. `s![]`
+    (@parse ::std::marker::PhantomData::<$crate::Ix0>, []) => {
+        {
+            #[allow(unsafe_code)]
+            unsafe {
+                $crate::SliceInfo::new_unchecked([], ::std::marker::PhantomData::<$crate::Ix0>)
+            }
+        }
+    };
+    // Catch-all clause for syntax errors
+    (@parse $($t:tt)*) => { compile_error!("Invalid syntax in s![] call.") };
     // convert range/index into SliceOrIndex
     (@convert $r:expr) => {
         <$crate::SliceOrIndex as ::std::convert::From<_>>::from($r)
@@ -612,8 +623,6 @@ macro_rules! s(
     (@convert $r:expr, $s:expr) => {
         <$crate::SliceOrIndex as ::std::convert::From<_>>::from($r).step_by($s as isize)
     };
-    // Catch-all clause for syntax errors
-    (@parse $($t:tt)*) => { compile_error!("Invalid syntax in s![], expected at least one index or range") };
     ($($t:tt)*) => {
         // The extra `*&` is a workaround for this compiler bug:
         // https://github.com/rust-lang/rust/issues/23014


Test patch:
diff --git a/tests/array.rs b/tests/array.rs
index ea5c1e82..6b9985c0 100644
--- a/tests/array.rs
+++ b/tests/array.rs
@@ -92,6 +92,13 @@ fn test_slice() {
     assert!(vi.iter().zip(A.iter()).all(|(a, b)| a == b));
 }
 
+#[deny(unsafe_code)]
+#[test]
+fn test_slice_ix0() {
+    let arr = arr0(5);
+    assert_eq!(arr.slice(s![]), aview0(&5));
+}
+
 #[test]
 fn test_slice_edge_cases() {
     let mut arr = Array3::<u8>::zeros((3, 4, 5));
Repository: rust-ndarray/ndarray
Pull request #862 (2020-12-14 22:24:02)

Fix Zip::indexed for the 0-dimensional case
This commit fixes a panic for 0-dimensional, indexed `Zip` instances
which results from an out-of-bounds index in a call to
`IndexPtr::stride_offset` in `Zip::inner`. Basically, the "stride" for
`IndexPtr` is the axis to update, but for the 0-dimensional case,
there are no axes, so `IndexPtr::stride_offset` cannot be called
without panicking due to the `self.index[stride]` access.

The chosen solution is to add a special check to `Zip::apply_core` for
the 0-dimensional case. Another possible solution would be to modify
the loop of `Zip::inner` such that an offset would not be performed
for an index of zero.


Patch:
diff --git a/src/zip/mod.rs b/src/zip/mod.rs
index 333911c6..ed92e250 100644
--- a/src/zip/mod.rs
+++ b/src/zip/mod.rs
@@ -691,12 +691,14 @@ impl<P, D> Zip<P, D>
 where
     D: Dimension,
 {
-    fn apply_core<F, Acc>(&mut self, acc: Acc, function: F) -> FoldWhile<Acc>
+    fn apply_core<F, Acc>(&mut self, acc: Acc, mut function: F) -> FoldWhile<Acc>
     where
         F: FnMut(Acc, P::Item) -> FoldWhile<Acc>,
         P: ZippableTuple<Dim = D>,
     {
-        if self.layout.is(CORDER | FORDER) {
+        if self.dimension.ndim() == 0 {
+            function(acc, unsafe { self.parts.as_ref(self.parts.as_ptr()) })
+        } else if self.layout.is(CORDER | FORDER) {
             self.apply_core_contiguous(acc, function)
         } else {
             self.apply_core_strided(acc, function)


Test patch:
diff --git a/tests/azip.rs b/tests/azip.rs
index 9027927f..b553d7fb 100644
--- a/tests/azip.rs
+++ b/tests/azip.rs
@@ -303,6 +303,19 @@ fn test_clone() {
     });
 }
 
+#[test]
+fn test_indices_0() {
+    let a1 = arr0(3);
+
+    let mut count = 0;
+    Zip::indexed(&a1).apply(|i, elt| {
+        count += 1;
+        assert_eq!(i, ());
+        assert_eq!(*elt, 3);
+    });
+    assert_eq!(count, 1);
+}
+
 #[test]
 fn test_indices_1() {
     let mut a1 = Array::default(12);
Repository: rust-ndarray/ndarray
Pull request #1237 (2022-11-29 21:57:14)

implement DoubleEndedIterator for 1d `LanesIter`
In a project I wanted to iterate over the rows and columns of a 2d array in reverse but while `rows` and `columns` exist, the resulting `LanesIter` does not implement `DoubleEndedIterator` as of yet. It is possible to use indexing via `row` with reversed indices but that is less ergonomic.

This PR fixes this at least for 1d `LanesIter` and now allows one to do:
```
let a = ArcArray::from_iter(0..8).reshape((4, 2));
for (row, check) in a.rows().into_iter().rev().zip(&[[6, 7], [4, 5], [2, 3], [0, 1]]) {
    assert_equal(row, check);
}
```

The implementation just delegates to the underlying 1d `Baseiter` which implements `DoubleEndedIterator`.
The trait is not implemented for higher dimensions however, which would need some additional work.


Patch:
diff --git a/src/iterators/mod.rs b/src/iterators/mod.rs
index 49c9c188..35b2d725 100644
--- a/src/iterators/mod.rs
+++ b/src/iterators/mod.rs
@@ -732,6 +732,15 @@ where
     }
 }
 
+impl<'a, A> DoubleEndedIterator for LanesIter<'a, A, Ix1>
+{
+    fn next_back(&mut self) -> Option<Self::Item> {
+        self.iter.next_back().map(|ptr| unsafe {
+            ArrayView::new_(ptr, Ix1(self.inner_len), Ix1(self.inner_stride as Ix))
+        })
+    }
+}
+
 // NOTE: LanesIterMut is a mutable iterator and must not expose aliasing
 // pointers. Due to this we use an empty slice for the raw data (it's unused
 // anyway).
@@ -772,6 +781,15 @@ where
     }
 }
 
+impl<'a, A> DoubleEndedIterator for LanesIterMut<'a, A, Ix1>
+{
+    fn next_back(&mut self) -> Option<Self::Item> {
+        self.iter.next_back().map(|ptr| unsafe {
+            ArrayViewMut::new_(ptr, Ix1(self.inner_len), Ix1(self.inner_stride as Ix))
+        })
+    }
+}
+
 #[derive(Debug)]
 pub struct AxisIterCore<A, D> {
     /// Index along the axis of the value of `.next()`, relative to the start


Test patch:
diff --git a/tests/iterators.rs b/tests/iterators.rs
index fd071603..b2cd58ec 100644
--- a/tests/iterators.rs
+++ b/tests/iterators.rs
@@ -39,6 +39,22 @@ fn double_ended() {
     assert_equal(aview1(&[1, 2, 3]).into_iter().rev(), [1, 2, 3].iter().rev());
 }
 
+#[test]
+fn double_ended_rows() {
+    let a = ArcArray::from_iter(0..8).into_shape_clone((4, 2)).unwrap();
+    let mut row_it = a.rows().into_iter();
+    assert_equal(row_it.next_back().unwrap(), &[6, 7]);
+    assert_equal(row_it.next().unwrap(), &[0, 1]);
+    assert_equal(row_it.next_back().unwrap(), &[4, 5]);
+    assert_equal(row_it.next_back().unwrap(), &[2, 3]);
+    assert!(row_it.next().is_none());
+    assert!(row_it.next_back().is_none());
+
+    for (row, check) in a.rows().into_iter().rev().zip(&[[6, 7], [4, 5], [2, 3], [0, 1]]) {
+        assert_equal(row, check);
+    }
+}
+
 #[test]
 fn iter_size_hint() {
     // Check that the size hint is correctly computed
Repository: helm/helm
Pull request #6758 (2019-10-23 07:28:05)

Revert "chartutil.ReadValues is forced to unmarshal numbers into json.Number"
This reverts commit f94bac0643ad5d39c740c57c6c8ea6a4569a1db0.

Due to a major numeric regression detected in dev-v2 reported in #6708,
we believe the master branch (former dev-v3) is also impacted by this
change and will expose the same set of problems. In order to not
jeopardize the stability of helm3 this commit is reverted in favor of a
better fix in the future.


Patch:
diff --git a/pkg/chartutil/values.go b/pkg/chartutil/values.go
index d9b94212c..e1cdf4642 100644
--- a/pkg/chartutil/values.go
+++ b/pkg/chartutil/values.go
@@ -17,7 +17,6 @@ limitations under the License.
 package chartutil
 
 import (
-	"encoding/json"
 	"fmt"
 	"io"
 	"io/ioutil"
@@ -106,10 +105,7 @@ func tableLookup(v Values, simple string) (Values, error) {
 
 // ReadValues will parse YAML byte data into a Values.
 func ReadValues(data []byte) (vals Values, err error) {
-	err = yaml.Unmarshal(data, &vals, func(d *json.Decoder) *json.Decoder {
-		d.UseNumber()
-		return d
-	})
+	err = yaml.Unmarshal(data, &vals)
 	if len(vals) == 0 {
 		vals = Values{}
 	}


Test patch:
diff --git a/pkg/chartutil/testdata/coleridge.yaml b/pkg/chartutil/testdata/coleridge.yaml
index 15535988b..b6579628b 100644
--- a/pkg/chartutil/testdata/coleridge.yaml
+++ b/pkg/chartutil/testdata/coleridge.yaml
@@ -10,4 +10,3 @@ water:
   water:
     where: "everywhere"
     nor: "any drop to drink"
-    temperature: 1234567890
diff --git a/pkg/chartutil/values_test.go b/pkg/chartutil/values_test.go
index 2cb328d5d..a3fe7aeac 100644
--- a/pkg/chartutil/values_test.go
+++ b/pkg/chartutil/values_test.go
@@ -45,7 +45,6 @@ water:
   water:
     where: "everywhere"
     nor: "any drop to drink"
-    temperature: 1234567890
 `
 
 	data, err := ReadValues([]byte(doc))
@@ -246,12 +245,6 @@ func matchValues(t *testing.T, data map[string]interface{}) {
 	} else if o != "everywhere" {
 		t.Errorf("Expected water water everywhere")
 	}
-
-	if o, err := ttpl("{{.water.water.temperature}}", data); err != nil {
-		t.Errorf(".water.water.temperature: %s", err)
-	} else if o != "1234567890" {
-		t.Errorf("Expected water water temperature: 1234567890, got: %s", o)
-	}
 }
 
 func ttpl(tpl string, v map[string]interface{}) (string, error) {
Repository: helm/helm
Pull request #6824 (2019-10-29 20:48:18)

ref(version): lift "unreleased" status
cherry-picked from the `release-3.0` branch.

DO NOT MERGE into master until Helm 3.0.0 has been released.

Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>


Patch:
diff --git a/internal/version/version.go b/internal/version/version.go
index 131a2b130..22439d11b 100644
--- a/internal/version/version.go
+++ b/internal/version/version.go
@@ -33,7 +33,7 @@ var (
 	version = "v3.0"
 
 	// metadata is extra build time data
-	metadata = "unreleased"
+	metadata = ""
 	// gitCommit is the git sha1
 	gitCommit = ""
 	// gitTreeState is the state of the git tree


Test patch:
diff --git a/cmd/helm/testdata/output/version-short.txt b/cmd/helm/testdata/output/version-short.txt
index 5e7749489..d9fb9c736 100644
--- a/cmd/helm/testdata/output/version-short.txt
+++ b/cmd/helm/testdata/output/version-short.txt
@@ -1,1 +1,1 @@
-v3.0+unreleased
+v3.0
diff --git a/cmd/helm/testdata/output/version-template.txt b/cmd/helm/testdata/output/version-template.txt
index c12e29c2d..776c1919b 100644
--- a/cmd/helm/testdata/output/version-template.txt
+++ b/cmd/helm/testdata/output/version-template.txt
@@ -1,1 +1,1 @@
-Version: v3.0+unreleased
\ No newline at end of file
+Version: v3.0
\ No newline at end of file
diff --git a/cmd/helm/testdata/output/version.txt b/cmd/helm/testdata/output/version.txt
index 0d9b536e6..4b493d31c 100644
--- a/cmd/helm/testdata/output/version.txt
+++ b/cmd/helm/testdata/output/version.txt
@@ -1,1 +1,1 @@
-version.BuildInfo{Version:"v3.0+unreleased", GitCommit:"", GitTreeState:"", GoVersion:""}
+version.BuildInfo{Version:"v3.0", GitCommit:"", GitTreeState:"", GoVersion:""}
Repository: helm/helm
Pull request #6959 (2019-11-13 17:32:14)

fix: change error message to contain correct field name
When reporting an incompatible Kubernetes version, due to a version constraint from the kubeVersion field, the error message should report with the correct field name.

Signed-off-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>


Patch:
diff --git a/pkg/action/install.go b/pkg/action/install.go
index 4019dbc54..11862c57a 100644
--- a/pkg/action/install.go
+++ b/pkg/action/install.go
@@ -420,7 +420,7 @@ func (c *Configuration) renderResources(ch *chart.Chart, values chartutil.Values
 
 	if ch.Metadata.KubeVersion != "" {
 		if !chartutil.IsCompatibleRange(ch.Metadata.KubeVersion, caps.KubeVersion.String()) {
-			return hs, b, "", errors.Errorf("chart requires kubernetesVersion: %s which is incompatible with Kubernetes %s", ch.Metadata.KubeVersion, caps.KubeVersion.String())
+			return hs, b, "", errors.Errorf("chart requires kubeVersion: %s which is incompatible with Kubernetes %s", ch.Metadata.KubeVersion, caps.KubeVersion.String())
 		}
 	}
 


Test patch:
diff --git a/pkg/action/install_test.go b/pkg/action/install_test.go
index bb36b843d..4637a4b10 100644
--- a/pkg/action/install_test.go
+++ b/pkg/action/install_test.go
@@ -306,7 +306,7 @@ func TestInstallRelease_KubeVersion(t *testing.T) {
 	vals = map[string]interface{}{}
 	_, err = instAction.Run(buildChart(withKube(">=99.0.0")), vals)
 	is.Error(err)
-	is.Contains(err.Error(), "chart requires kubernetesVersion")
+	is.Contains(err.Error(), "chart requires kubeVersion")
 }
 
 func TestInstallRelease_Wait(t *testing.T) {
Repository: helm/helm
Pull request #7065 (2019-11-25 03:59:04)

v3: -n= flag is mistakenly being passed to plugins
When calling plugins, Helm converts global flags (e.g., --debug, --namespace, etc) into env variables and does **not** pass those flags to the plugin.

The "-n=" flag was forgotten from the list of global flags.  Not a huge deal, but may surprise plugins.

This PR augments the tests to fail on this bug.
Also, it was bothering me that the list of global flags was duplicated, which was the reason this error was made.  I found a way to use a single list.


Patch:
diff --git a/cmd/helm/load_plugins.go b/cmd/helm/load_plugins.go
index 53e082e96..ed99a5164 100644
--- a/cmd/helm/load_plugins.go
+++ b/cmd/helm/load_plugins.go
@@ -127,7 +127,7 @@ func loadPlugins(baseCmd *cobra.Command, out io.Writer) {
 func manuallyProcessArgs(args []string) ([]string, []string) {
 	known := []string{}
 	unknown := []string{}
-	kvargs := []string{"--kube-context", "--namespace", "--kubeconfig", "--registry-config", "--repository-cache", "--repository-config"}
+	kvargs := []string{"--kube-context", "--namespace", "-n", "--kubeconfig", "--registry-config", "--repository-cache", "--repository-config"}
 	knownArg := func(a string) bool {
 		for _, pre := range kvargs {
 			if strings.HasPrefix(a, pre+"=") {
@@ -136,11 +136,21 @@ func manuallyProcessArgs(args []string) ([]string, []string) {
 		}
 		return false
 	}
+
+	isKnown := func(v string) string {
+		for _, i := range kvargs {
+			if i == v {
+				return v
+			}
+		}
+		return ""
+	}
+
 	for i := 0; i < len(args); i++ {
 		switch a := args[i]; a {
 		case "--debug":
 			known = append(known, a)
-		case "--kube-context", "--namespace", "-n", "--kubeconfig", "--registry-config", "--repository-cache", "--repository-config":
+		case isKnown(a):
 			known = append(known, a, args[i+1])
 			i++
 		default:


Test patch:
diff --git a/cmd/helm/plugin_test.go b/cmd/helm/plugin_test.go
index 7bc8fe70c..3fd3a4197 100644
--- a/cmd/helm/plugin_test.go
+++ b/cmd/helm/plugin_test.go
@@ -30,14 +30,27 @@ func TestManuallyProcessArgs(t *testing.T) {
 		"--debug",
 		"--foo", "bar",
 		"--kubeconfig=/home/foo",
+		"--kubeconfig", "/home/foo",
+		"--kube-context=test1",
 		"--kube-context", "test1",
+		"-n=test2",
 		"-n", "test2",
+		"--namespace=test2",
+		"--namespace", "test2",
 		"--home=/tmp",
 		"command",
 	}
 
 	expectKnown := []string{
-		"--debug", "--kubeconfig=/home/foo", "--kube-context", "test1", "-n", "test2",
+		"--debug",
+		"--kubeconfig=/home/foo",
+		"--kubeconfig", "/home/foo",
+		"--kube-context=test1",
+		"--kube-context", "test1",
+		"-n=test2",
+		"-n", "test2",
+		"--namespace=test2",
+		"--namespace", "test2",
 	}
 
 	expectUnknown := []string{
Repository: helm/helm
Pull request #7240 (2019-12-16 17:20:30)

fix(helm): Validate number of arguments in install client
When passing more then two arguments (e.g. due to a mistake in a flag) the following error was returned `must either provide a name or specify --generate-name`, which can be confusing. Now the following error message will be returned `expected at most two arguments, unexpected arguments: bar`, which would at least point the user towards the issue.


Patch:
diff --git a/cmd/helm/status.go b/cmd/helm/status.go
index 92a947c26..92e12dbe0 100644
--- a/cmd/helm/status.go
+++ b/cmd/helm/status.go
@@ -31,13 +31,12 @@ import (
 	"helm.sh/helm/v3/pkg/release"
 )
 
-// NOTE: Keep the list of statuses up-to-date with pkg/release/status.go.
 var statusHelp = `
 This command shows the status of a named release.
 The status consists of:
 - last deployment time
 - k8s namespace in which the release lives
-- state of the release (can be: unknown, deployed, uninstalled, superseded, failed, uninstalling, pending-install, pending-upgrade or pending-rollback)
+- state of the release (can be: unknown, deployed, deleted, superseded, failed or deleting)
 - list of resources that this release consists of, sorted by kind
 - details on last test suite run, if applicable
 - additional notes provided by the chart
diff --git a/pkg/action/install.go b/pkg/action/install.go
index 89a343a6f..dc5941810 100644
--- a/pkg/action/install.go
+++ b/pkg/action/install.go
@@ -555,6 +555,10 @@ func (i *Install) NameAndChart(args []string) (string, string, error) {
 		return nil
 	}
 
+	if len(args) > 2 {
+		return args[0], args[1], errors.Errorf("expected at most two arguments, unexpected arguments: %v", strings.Join(args[2:], ", "))
+	}
+
 	if len(args) == 2 {
 		return args[0], args[1], flagsNotSet()
 	}
diff --git a/pkg/release/status.go b/pkg/release/status.go
index 0e535f9a4..cd025e279 100644
--- a/pkg/release/status.go
+++ b/pkg/release/status.go
@@ -19,7 +19,6 @@ package release
 type Status string
 
 // Describe the status of a release
-// NOTE: Make sure to update cmd/helm/status.go when adding or modifying any of these statuses.
 const (
 	// StatusUnknown indicates that a release is in an uncertain state.
 	StatusUnknown Status = "unknown"


Test patch:
diff --git a/pkg/action/install_test.go b/pkg/action/install_test.go
index 4637a4b10..d6f1c88cd 100644
--- a/pkg/action/install_test.go
+++ b/pkg/action/install_test.go
@@ -505,6 +505,14 @@ func TestNameAndChart(t *testing.T) {
 		t.Fatal("expected an error")
 	}
 	is.Equal("must either provide a name or specify --generate-name", err.Error())
+
+	instAction.NameTemplate = ""
+	instAction.ReleaseName = ""
+	_, _, err = instAction.NameAndChart([]string{"foo", chartName, "bar"})
+	if err == nil {
+		t.Fatal("expected an error")
+	}
+	is.Equal("expected at most two arguments, unexpected arguments: bar", err.Error())
 }
 
 func TestNameAndChartGenerateName(t *testing.T) {
Repository: helm/helm
Pull request #7266 (2019-12-19 08:25:13)

Fix: helm3 - kind sorter incorrectly compares unknown and namespace
**What this PR does / why we need it:**

The kind_sorter incorrectly compares Namespace and unknown type. This PR fixes comparison logic in Less method.

This is to fix a previous issue in helm2 -> https://github.com/helm/helm/issues/4728

I have ported the changes from PR -> https://github.com/helm/helm/pull/5186 

Signed-off-by: Bradley Skuse <bradleyskuse@me.com>



hickeyma: @bradskuse Can you rebase to fix the conflicts?
bradskuse: > @bradskuse Can you rebase to fix the conflicts?

Yes I can do that, I'll look first thing Monday
jgrossmac: would love to see this as well

Patch:
diff --git a/pkg/releaseutil/kind_sorter.go b/pkg/releaseutil/kind_sorter.go
index 3ab8ab2a4..92ffa03f2 100644
--- a/pkg/releaseutil/kind_sorter.go
+++ b/pkg/releaseutil/kind_sorter.go
@@ -134,11 +134,13 @@ func (k *kindSorter) Less(i, j int) bool {
 	b := k.manifests[j]
 	first, aok := k.ordering[a.Head.Kind]
 	second, bok := k.ordering[b.Head.Kind]
-	if first == second {
-		// if both are unknown and of different kind sort by kind alphabetically
-		if !aok && !bok && a.Head.Kind != b.Head.Kind {
+
+	if !aok && !bok {
+		// if both are unknown then sort alphabetically by kind, keep original order if same kind
+		if a.Head.Kind != b.Head.Kind {
 			return a.Head.Kind < b.Head.Kind
 		}
+		return first < second
 	}
 	// unknown kind is last
 	if !aok {


Test patch:
diff --git a/pkg/releaseutil/kind_sorter_test.go b/pkg/releaseutil/kind_sorter_test.go
index f29065f73..4747e8252 100644
--- a/pkg/releaseutil/kind_sorter_test.go
+++ b/pkg/releaseutil/kind_sorter_test.go
@@ -245,3 +245,24 @@ func TestKindSorterKeepOriginalOrder(t *testing.T) {
 		})
 	}
 }
+
+func TestKindSorterNamespaceAgainstUnknown(t *testing.T) {
+	unknown := Manifest{
+		Name: "a",
+		Head: &SimpleHead{Kind: "Unknown"},
+	}
+	namespace := Manifest{
+		Name: "b",
+		Head: &SimpleHead{Kind: "Namespace"},
+	}
+
+	manifests := []Manifest{unknown, namespace}
+	sortByKind(manifests, InstallOrder)
+
+	expectedOrder := []Manifest{namespace, unknown}
+	for i, manifest := range manifests {
+		if expectedOrder[i].Name != manifest.Name {
+			t.Errorf("Expected %s, got %s", expectedOrder[i].Name, manifest.Name)
+		}
+	}
+}
Repository: helm/helm
Pull request #7352 (2020-01-08 17:46:58)

fix(tests): use sigs.k8s.io/yaml
Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>


Patch:
diff --git a/go.mod b/go.mod
index 8e972fdfe..ed074074d 100644
--- a/go.mod
+++ b/go.mod
@@ -59,7 +59,6 @@ require (
 	google.golang.org/genproto v0.0.0-20191028173616-919d9bdd9fe6 // indirect
 	google.golang.org/grpc v1.24.0 // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
-	gopkg.in/yaml.v2 v2.2.4
 	k8s.io/api v0.0.0-20191016110408-35e52d86657a
 	k8s.io/apiextensions-apiserver v0.0.0-20191016113550-5357c4baaf65
 	k8s.io/apimachinery v0.0.0-20191004115801-a2eda9f80ab8


Test patch:
diff --git a/cmd/helm/repo_add_test.go b/cmd/helm/repo_add_test.go
index 1ac61fba8..4dbd0f435 100644
--- a/cmd/helm/repo_add_test.go
+++ b/cmd/helm/repo_add_test.go
@@ -23,7 +23,7 @@ import (
 	"sync"
 	"testing"
 
-	"gopkg.in/yaml.v2"
+	"sigs.k8s.io/yaml"
 
 	"helm.sh/helm/v3/internal/test/ensure"
 	"helm.sh/helm/v3/pkg/repo"