Open yordis opened 5 months ago
A few things from this,
References
be a private field instead of exposing it? You can still assign r.References
. Ideally, Provider Authors shouldn't care about replacing the entire r.References,
and in that case, we can add r.ReplaceReferences(references)
, but I am not sure when this would be necessary.
Description of your changes
@haarchri was helping at https://github.com/crossplane-contrib/provider-upjet-digitalocean/pull/41 (thank you), and during the code review, I noticed a oversee where he replaced the existing
r.References
as follow:I am glad that I saw the diff, but honestly, this is a straightforward thing to miss when they are so much code-generated files noise, or people tend to ignore those.
As @haarchri explained, "That's why I prefer this, for example, https://github.com/crossplane-contrib/provider-upjet-aws/blob/main/config/elbv2/config.go#L13," which is a really common scenario.
I never considered using the existing style. I didn't think much about it. He didn’t try to break things. Still, we ran into the issue. Since we are talking about "style" here, it is really difficult to be objective and define who is more proper.
So, the fix here is to expose an SDK API that avoids such a mistake.
I am not proposing adding getters and setters everywhere either, just reacting to the situation and figuring out how to mitigate the issues in the future; as I usually say, "let the code teach you what to do, not the other way around."
I have:
make reviewable
to ensure this PR is ready for review.backport release-x.y
labels to auto-backport this PR if necessary.How has this code been tested