Hi all,
I’m starting this in SIG Testing because it’s based on an issue that
cropped up in test code, but it’s broader than that, hence the
Steering cc; since it’s ultimately about dependencies I’m also
including the dep-approvers with whom I’ve interacted previously.
I’ve run into an issue which has been bothering me for a while, and
I’m curious whether others share my concern or whether it doesn’t
matter (or is too low priority to matter).
Essentially, the question I’m concerned about is whether we should
try to ensure that we (Kubernetes contributors) can contribute changes
to our dependencies; put another way, whether we should try to ensure
that our dependencies can be contributed to by Kubernetes contributors
at large.
The specific incident which led to this is gomock being abandoned and
then transferred to Uber (to be clear, I’m not trying to stigmatise
Uber here). I pushed the PR which acted on that in Kubernetes:
<
https://github.com/kubernetes/kubernetes/pull/120969>; this revealed
a change in behaviour in gomock which affected the generated mocks in
k/k (see
<
https://github.com/kubernetes/kubernetes/pull/120969#discussion_r1347624438>).
In such situations I usually try to help out upstream where I can;
another user had reported the issue
(<
https://github.com/uber-go/mock/issues/80>), so that was taken care
of, but I suggested a possible fix
(<
https://github.com/uber-go/mock/pull/105>). Unfortunately gomock
contributors must sign a CLA, and our legal department told me that I
couldn’t. This wasn’t obvious at the time, CONTRIBUTING.md was updated
two days later (<
https://github.com/uber-go/mock/pull/108>).
Ultimately another user contributed a fix, so that particular problem
was resolved.
But the general issue remains: here we have a non-CNCF project which
is a relatively important dependency for k/k, and at least some
Kubernetes contributors can’t contribute to it.
Does this bother anyone else?
(Since I like to put my time where my mouth is, I have a possible fix
for this particular dependency: we could switch to
stretchr/testify/mock and mockery instead, see
<
https://github.com/skitt/kubernetes/pull/2>. Or we could ask Uber to
relax their CLA. However this shouldn’t be about gomock or Uber
specifically.)
Regards,
--
Stephen Kitt
Senior Principal Software Engineer
Red Hat Application Networking