Have a "static analysis tool" party

During the v1.3 release retrospective, we discussed the idea of having a "documentation party".
@SgtCoDFish I can't remember well, do you remember the specifics? :sweat_smile:

I suggested blocking out an hour or two where we try and squash a bunch of code-quality issues, such as making sure that every publicly exported function under pkg/ in https://github.com/jetstack/cert-manager has a doc comment.
That would allow us to add more automated static analysis tools, save everyone time and save nitpicky comments about code style in reviews.
As an example, looking at pkg/ currently and trying to ignore generated code
$ golint $(go list ./pkg/... | grep -v pkg/apis | grep -v pkg/internal/apis) | wc -l
403

$ staticcheck $(go list ./pkg/... | grep -v pkg/apis | grep -v pkg/internal/apis)  | wc -l
92

$ golangci-lint run --out-format tab --sort-results ./pkg/... | wc -l
63

we might choose to ignore some of the checks these tools make, but some of them are gonna be valuable.

See https://github.com/jetstack/cert-manager/pull/3037 and https://github.com/jetstack/cert-manager/pull/3940

Batch 1:
pkg/controller/certificates/issuing/issuing_controller_test.go:1004:14                   errcheck     Error return value of `w.Register` is not checked
pkg/controller/certificates/requestmanager/requestmanager_controller_test.go:534:4       gosimple     S1011: should replace loop with `builder.CertManagerObjects = append(builder.CertManagerObjects, test.requests...)`
pkg/issuer/ca/setup.go:38:2                                                              deadcode     `messageErrorInvalidKeyPair` is unused
pkg/acme/util.go:38:1: exported function IsFailureState should have comment or be unexported
pkg/acme/accounts/registry.go:32:1: comment on exported type Registry should be of the form "Registry ..." (with optional leading article)
pkg/acme/webhook/cmd/cmd.go:32:1: exported function RunWebhookServer should have comment or be unexported
pkg/api/testing/bazel.go:43:1: exported function CRDDirectory should have comment or be unexported
pkg/controller/builder.go:54:1: comment on exported function NewBuilder should be of the form "NewBuilder ..."
pkg/controller/builder.go:64:1: exported method Builder.For should have comment or be unexported
pkg/controller/builder.go:88:1: exported method Builder.Complete should have comment or be unexported
pkg/controller/context.go:91:6: exported type IssuerOptions should have comment or be unexported
pkg/controller/context.go:106:6: exported type ACMEOptions should have comment or be unexported
pkg/controller/context.go:139:6: exported type IngressShimOptions should have comment or be unexported
pkg/controller/context.go:147:6: exported type CertificateOptions should have comment or be unexported
pkg/controller/context.go:153:6: exported type SchedulerOptions should have comment or be unexported
pkg/controller/acmechallenges/controller.go:218:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/acmeorders/selectors/dns_zones.go:26:1: exported function DNSZones should have comment or be unexported
pkg/controller/certificaterequests/approver/sync.go:32:2: exported const ApprovedMessage should have comment (or a comment on this block) or be unexported
pkg/controller/certificaterequests/selfsigned/selfsigned.go:44:2: exported const CRControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificaterequests/selfsigned/selfsigned.go:50:6: exported type SelfSigned should have comment or be unexported
pkg/controller/certificaterequests/selfsigned/selfsigned.go:70:1: exported function NewSelfSigned should have comment or be unexported
pkg/controller/certificaterequests/selfsigned/selfsigned.go:80:1: exported method SelfSigned.Sign should have comment or be unexported
pkg/controller/certificaterequests/venafi/venafi.go:44:2: exported const CRControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificaterequests/venafi/venafi.go:47:6: exported type Venafi should have comment or be unexported
pkg/controller/certificaterequests/venafi/venafi.go:65:1: exported function NewVenafi should have comment or be unexported
pkg/controller/certificaterequests/venafi/venafi.go:75:1: exported method Venafi.Sign should have comment or be unexported
pkg/controller/certificates/trigger/trigger_controller.go:50:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificates/trigger/trigger_controller.go:78:1: exported function NewController should have comment or be unexported
pkg/controller/certificates/trigger/trigger_controller.go:86:4: exported func NewController returns unexported type *trigger.controller, which can be annoying to use
pkg/controller/issuers/controller.go:147:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/test/reactors.go:28:1: exported function NTimesReactor should have comment or be unexported
pkg/controller/test/reactors.go:42:1: exported function ObjectCreatedReactor should have comment or be unexported
pkg/controller/test/reactors.go:61:1: exported function ObjectDeletedReactor should have comment or be unexported
pkg/feature/features.go:27:2: comment on exported const ValidateCAA should be of the form "ValidateCAA ..."
pkg/internal/istio/istio.go:39:1: exported function VirtualServiceGvr should have comment or be unexported
pkg/internal/istio/istio.go:43:6: exported type VirtualService should have comment or be unexported
pkg/internal/istio/istio.go:60:1: exported method VirtualService.ToUnstructured should have comment or be unexported
pkg/internal/istio/istio.go:69:1: exported function VirtualServiceFromUnstructured should have comment or be unexported
pkg/issuer/helper.go:27:6: exported type Helper should have comment or be unexported
pkg/issuer/acme/dns/acmedns/acmedns_test.go:30:2: var acmednsAccountJson should be acmednsAccountJSON
pkg/issuer/acme/dns/acmedns/acmedns_test.go:44:2: var accountJson should be accountJSON
pkg/issuer/acme/dns/acmedns/acmedns_test.go:58:2: var accountJson should be accountJSON
pkg/issuer/acme/dns/acmedns/acmedns_test.go:64:2: var accountJson should be accountJSON
pkg/issuer/acme/dns/rfc2136/rfc2136.go:21:1: package comment is detached; there should be no blank lines between it and the package statement
pkg/issuer/acme/dns/rfc2136/rfc2136.go:66:9: if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary)
pkg/issuer/acme/http/http.go:149:1: exported method Solver.Check should have comment or be unexported
pkg/issuer/acme/http/http.go:201:18: method buildChallengeUrl should be buildChallengeURL
pkg/issuer/ca/setup.go:43:1: exported method CA.Setup should have comment or be unexported
pkg/issuer/vault/vault.go:28:6: exported type Vault should have comment or be unexported
pkg/issuer/vault/vault.go:40:1: exported function NewVault should have comment or be unexported
pkg/issuer/venafi/client/venaficlient.go:40:6: exported type VenafiClientBuilder should have comment or be unexported
pkg/issuer/venafi/client/venaficlient.go:73:1: exported function New should have comment or be unexported
pkg/issuer/venafi/client/venaficlient.go:150:1: exported method Venafi.Ping should have comment or be unexported
pkg/issuer/venafi/client/venaficlient.go:154:1: exported method Venafi.ReadZoneConfiguration should have comment or be unexported
pkg/issuer/venafi/client/venaficlient.go:158:1: exported method Venafi.SetClient should have comment or be unexported
pkg/logs/testing/log_testing.go:34:1: exported method TestLogger.Info should have comment or be unexported
pkg/logs/testing/log_testing.go:42:1: exported method TestLogger.Enabled should have comment or be unexported
pkg/logs/testing/log_testing.go:42:1: receiver name should not be an underscore, omit the name if it is unused
pkg/logs/testing/log_testing.go:50:1: exported method TestLogger.V should have comment or be unexported
pkg/logs/testing/log_testing.go:54:1: exported method TestLogger.WithName should have comment or be unexported
pkg/logs/testing/log_testing.go:59:1: exported method TestLogger.WithValues should have comment or be unexported
pkg/util/kube/pki.go:72:1: exported function SecretTLSCertChain should have comment or be unexported
pkg/util/kube/pki.go:91:1: exported function SecretTLSKeyPair should have comment or be unexported
pkg/util/kube/pki.go:118:1: exported function SecretTLSCert should have comment or be unexported
pkg/util/predicate/certificate.go:34:1: comment on exported function CertificateNextPrivateKeySecretName should be of the form "CertificateNextPrivateKeySecretName ..."
pkg/webhook/handlers/interfaces.go:28:6: exported type ValidatingAdmissionHook should have comment or be unexported
pkg/webhook/handlers/interfaces.go:38:6: exported type MutatingAdmissionHook should have comment or be unexported
pkg/webhook/handlers/interfaces.go:44:6: exported type ConversionHook should have comment or be unexported
pkg/webhook/server/tls/dynamic_source.go:58:1: exported method DynamicSource.Run should have comment or be unexported
pkg/webhook/server/tls/dynamic_source.go:156:1: exported method DynamicSource.GetCertificate should have comment or be unexported
pkg/webhook/server/tls/dynamic_source.go:165:1: exported method DynamicSource.Healthy should have comment or be unexported
pkg/controller/certificates/requestmanager/requestmanager_controller_test.go:534:4: should replace loop with builder.CertManagerObjects = append(builder.CertManagerObjects, test.requests...) (S1011)
pkg/internal/apis/acme/v1beta1/zz_generated.conversion.go:695:2: out.KeyAlgorithm is deprecated: keyAlgorithm exists for historical compatibility reasons and should not be used. golang/x/crypto/acme hardcodes the algorithm to HS256 so setting this field will have no effect. See https://github.com/jetstack/cert-manager/issues/3220#issuecomment-809438314  (SA1019)
pkg/internal/apis/acme/v1beta1/zz_generated.conversion.go:695:43: in.KeyAlgorithm is deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme. +optional  (SA1019)
pkg/internal/apis/acme/v1beta1/zz_generated.conversion.go:710:2: out.KeyAlgorithm is deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme. +optional  (SA1019)
pkg/internal/apis/acme/v1beta1/zz_generated.conversion.go:710:46: in.KeyAlgorithm is deprecated: keyAlgorithm exists for historical compatibility reasons and should not be used. golang/x/crypto/acme hardcodes the algorithm to HS256 so setting this field will have no effect. See https://github.com/jetstack/cert-manager/issues/3220#issuecomment-809438314  (SA1019)
pkg/internal/apis/certmanager/validation/certificaterequest.go:144:4: ineffective break statement. Did you mean to break out of the outer loop? (SA4011)
pkg/issuer/acme/dns/cloudflare/cloudflare.go:64:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/cloudflare/cloudflare.go:68:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/cloudflare/cloudflare.go:166:14: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/cloudflare/cloudflare.go:172:27: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/cloudflare/cloudflare.go:239:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/cloudflare/cloudflare.go:259:16: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/cloudflare/cloudflare.go:261:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/rfc2136/rfc2136.go:81:16: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/rfc2136/rfc2136.go:127:10: error strings should not be capitalized (ST1005)
pkg/issuer/acme/http/http.go:142:15: error strings should not be capitalized (ST1005)
pkg/logs/testing/log_testing.go:42:7: receiver name should not be an underscore, omit the name if it is unused (ST1006)
pkg/util/kube/pki.go:24:2: package "k8s.io/api/core/v1" is being imported more than once (ST1019)
pkg/util/kube/pki.go:25:2: other import of "k8s.io/api/core/v1"

Batch 2:
pkg/controller/acmechallenges/scheduler/scheduler_test.go:84:16                          errcheck     Error return value of `s.scheduleN` is not checked
pkg/controller/acmechallenges/scheduler/scheduler_test.go:98:16                          errcheck     Error return value of `s.scheduleN` is not checked
pkg/controller/acmechallenges/scheduler/scheduler_test.go:112:16                         errcheck     Error return value of `s.scheduleN` is not checked
pkg/controller/acmechallenges/scheduler/scheduler_test.go:314:51                         errcheck     Error return value of `` is not checked
pkg/controller/certificaterequests/venafi/venafi_test.go:787:2                           structcheck  `issuer` is unused
pkg/controller/certificates/revisionmanager/revisionmanager_controller.go:51:2           deadcode     `certificateGvk` is unused
pkg/controller/issuers/sync_test.go:55:12                                                errcheck     Error return value of `c.Register` is not checked
pkg/internal/api/mutation/registry.go:138:3                                              gosimple     S1023: redundant break statement
pkg/internal/api/mutation/registry.go:157:3                                              gosimple     S1023: redundant break statement
pkg/issuer/acme/dns/dns.go:164:2                                                         gosimple     S1008: should use 'return strategy == cmacme.FollowStrategy' instead of 'if strategy == cmacme.FollowStrategy { return true }; return false'
pkg/issuer/acme/dns/rfc2136/rfc2136_test.go:58:23                                        errcheck     Error return value of `server.Shutdown` is not checked
pkg/issuer/acme/dns/rfc2136/rfc2136_test.go:336:12                                       errcheck     Error return value of `w.WriteMsg` is not checked
pkg/issuer/acme/dns/rfc2136/rfc2136_test.go:355:12                                       errcheck     Error return value of `w.WriteMsg` is not checked
pkg/issuer/acme/dns/rfc2136/rfc2136_test.go:361:12                                       errcheck     Error return value of `w.WriteMsg` is not checked
pkg/issuer/acme/http/pod.go:240:2                                                        gosimple     S1011: should replace loop with `pod.Spec.Tolerations = append(pod.Spec.Tolerations, podTempl.Spec.Tolerations...)`
pkg/webhook/server/tls/file_source.go:140:5                                              gosimple     S1004: should use bytes.Equal(keyData, f.cachedKeyBytes) instead
pkg/acme/accounts/test/registry.go:34:1: exported method FakeRegistry.AddClient should have comment or be unexported
pkg/acme/accounts/test/registry.go:38:1: exported method FakeRegistry.RemoveClient should have comment or be unexported
pkg/acme/accounts/test/registry.go:42:1: exported method FakeRegistry.GetClient should have comment or be unexported
pkg/acme/accounts/test/registry.go:46:1: exported method FakeRegistry.ListClients should have comment or be unexported
pkg/acme/webhook/apis/acme/doc.go:23:2: exported const GroupName should have comment (or a comment on this block) or be unexported
pkg/acme/webhook/cmd/server/start.go:36:6: exported type WebhookServerOptions should have comment or be unexported
pkg/acme/webhook/cmd/server/start.go:46:1: exported function NewWebhookServerOptions should have comment or be unexported
pkg/acme/webhook/cmd/server/start.go:66:1: exported function NewCommandStartWebhookServer should have comment or be unexported
pkg/acme/webhook/cmd/server/start.go:92:1: exported method WebhookServerOptions.Validate should have comment or be unexported
pkg/acme/webhook/cmd/server/start.go:96:1: exported method WebhookServerOptions.Complete should have comment or be unexported
pkg/acme/webhook/cmd/server/start.go:100:1: exported method WebhookServerOptions.Config should have comment or be unexported
pkg/acme/webhook/cmd/server/start.go:121:1: exported method WebhookServerOptions.RunWebhookServer should have comment or be unexported
pkg/api/util/conditions.go:117:1: exported function GetCertificateCondition should have comment or be unexported
pkg/api/util/conditions.go:126:1: exported function GetCertificateRequestCondition should have comment or be unexported
pkg/api/util/conditions.go:267:1: comment on exported function CertificateRequestReadyReason should be of the form "CertificateRequestReadyReason ..."
pkg/api/util/conditions.go:287:1: comment on exported function CertificateRequestInvalidRequestMessage should be of the form "CertificateRequestInvalidRequestMessage ..."
pkg/api/util/conditions.go:304:1: comment on exported function CertificateRequestHasInvalidRequest should be of the form "CertificateRequestHasInvalidRequest ..."
pkg/controller/controller.go:47:1: exported function NewController should have comment or be unexported
pkg/controller/controller.go:135:1: receiver name b should be consistent with previous receiver name c for controller
pkg/controller/acmeorders/selectors/labels.go:25:1: exported function Labels should have comment or be unexported
pkg/controller/cainjector/setup.go:49:2: exported var MutatingWebhookSetup should have comment or be unexported
pkg/controller/certificaterequests/sync.go:42:1: exported method Controller.Sync should have comment or be unexported
pkg/controller/certificaterequests/ca/ca.go:40:2: exported const CRControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificaterequests/ca/ca.go:45:6: exported type CA should have comment or be unexported
pkg/controller/certificaterequests/ca/ca.go:64:1: exported function NewCA should have comment or be unexported
pkg/controller/certificaterequests/ca/ca.go:73:1: comment on exported method CA.Sign should be of the form "Sign ..."
pkg/controller/certificates/keymanager/keymanager_controller.go:52:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificates/keymanager/keymanager_controller.go:69:1: exported function NewController should have comment or be unexported
pkg/controller/certificates/keymanager/keymanager_controller.go:76:4: exported func NewController returns unexported type *keymanager.controller, which can be annoying to use
pkg/controller/certificates/revisionmanager/revisionmanager_controller.go:47:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificates/revisionmanager/revisionmanager_controller.go:65:1: exported function NewController should have comment or be unexported
pkg/controller/certificates/revisionmanager/revisionmanager_controller.go:65:110: exported func NewController returns unexported type *revisionmanager.controller, which can be annoying to use
pkg/controller/certificates/trigger/trigger_controller_test.go:257:12: if block ends with a return statement, so drop this else and outdent its block
pkg/controller/test/recorder.go:33:1: exported method FakeRecorder.Event should have comment or be unexported
pkg/controller/test/recorder.go:37:1: exported method FakeRecorder.Eventf should have comment or be unexported
pkg/controller/test/recorder.go:41:1: exported method FakeRecorder.PastEventf should have comment or be unexported
pkg/controller/test/recorder.go:44:1: exported method FakeRecorder.AnnotatedEventf should have comment or be unexported
pkg/internal/api/mutation/registry.go:54:6: exported type MutateFunc should have comment or be unexported
pkg/internal/api/mutation/registry.go:55:6: exported type MutateUpdateFunc should have comment or be unexported
pkg/internal/api/mutation/registry.go:88:1: comment on exported method Registry.AddMutateUpdateFunc should be of the form "AddMutateUpdateFunc ..."
pkg/internal/vault/fake/client.go:25:6: exported type Client should have comment or be unexported
pkg/internal/vault/fake/client.go:31:1: exported function NewFakeClient should have comment or be unexported
pkg/internal/vault/fake/client.go:40:1: exported method Client.WithNewRequest should have comment or be unexported
pkg/internal/vault/fake/client.go:45:1: exported method Client.WithRawRequest should have comment or be unexported
pkg/internal/vault/fake/client.go:52:1: exported method Client.NewRequest should have comment or be unexported
pkg/internal/vault/fake/client.go:56:1: exported method Client.SetToken should have comment or be unexported
pkg/internal/vault/fake/client.go:60:1: exported method Client.Token should have comment or be unexported
pkg/internal/vault/fake/client.go:64:1: exported method Client.RawRequest should have comment or be unexported
pkg/internal/vault/fake/client.go:68:1: exported method Client.Sys should have comment or be unexported
pkg/issuer/factory.go:28:1: comment on exported type IssuerConstructor should be of the form "IssuerConstructor ..." (with optional leading article)
pkg/issuer/factory.go:30:6: type name will be used as issuer.IssuerConstructor by other packages, and that stutters; consider calling this Constructor
pkg/issuer/factory.go:37:1: comment on exported function RegisterIssuer should be of the form "RegisterIssuer ..."
pkg/issuer/issuer.go:23:6: exported type Interface should have comment or be unexported
pkg/issuer/issuer.go:30:6: exported type IssueResponse should have comment or be unexported
pkg/issuer/venafi/client/api/customfield.go:19:6: exported type CustomFieldType should have comment or be unexported
pkg/issuer/venafi/client/api/customfield.go:22:2: exported const CustomFieldTypePlain should have comment (or a comment on this block) or be unexported
pkg/metrics/metrics.go:67:1: exported function New should have comment or be unexported
pkg/metrics/metrics.go:182:1: exported method Metrics.Shutdown should have comment or be unexported
pkg/util/util.go:29:1: exported function OnlyOneNotNil should have comment or be unexported
pkg/util/util.go:42:1: exported function EqualSorted should have comment or be unexported
pkg/util/util.go:56:1: exported function EqualUnsorted should have comment or be unexported
pkg/util/util.go:73:1: comment on exported function EqualURLsUnsorted should be of the form "EqualURLsUnsorted ..."
pkg/util/util.go:97:1: comment on exported function EqualIPsUnsorted should be of the form "EqualIPsUnsorted ..."
pkg/util/util.go:124:1: comment on exported function EqualKeyUsagesUnsorted should be of the form "EqualKeyUsagesUnsorted ..."
pkg/util/util.go:157:1: exported function RandStringRunes should have comment or be unexported
pkg/util/pki/csr.go:39:1: exported function IPAddressesForCertificate should have comment or be unexported
pkg/util/pki/csr.go:51:1: exported function URIsForCertificate should have comment or be unexported
pkg/util/pki/csr.go:60:1: exported function DNSNamesForCertificate should have comment or be unexported
pkg/util/pki/csr.go:69:1: exported function URLsFromStrings should have comment or be unexported
pkg/util/pki/csr.go:90:1: exported function IPAddressesToString should have comment or be unexported
pkg/util/pki/csr.go:98:1: exported function URLsToString should have comment or be unexported
pkg/util/pki/csr.go:146:1: exported function BuildKeyUsages should have comment or be unexported
pkg/util/pki/csr.go:169:1: exported function BuildCertManagerKeyUsages should have comment or be unexported
pkg/util/pki/csr.go:332:1: comment on exported function GenerateTemplateFromCertificateRequest should be of the form "GenerateTemplateFromCertificateRequest ..."
pkg/util/pki/csr.go:343:1: exported function GenerateTemplateFromCSRPEM should have comment or be unexported
pkg/util/pki/csr.go:351:1: exported function GenerateTemplateFromCSRPEMWithUsages should have comment or be unexported
pkg/webhook/handlers/mutation.go:34:6: exported type RegistryBackedMutator should have comment or be unexported
pkg/webhook/handlers/mutation.go:40:1: exported function NewRegistryBackedMutator should have comment or be unexported
pkg/webhook/handlers/mutation.go:49:1: exported method RegistryBackedMutator.Mutate should have comment or be unexported
pkg/webhook/server/tls/file_source.go:71:1: exported method FileCertificateSource.Run should have comment or be unexported
pkg/webhook/server/tls/file_source.go:112:1: exported method FileCertificateSource.GetCertificate should have comment or be unexported
pkg/webhook/server/tls/file_source.go:121:1: exported method FileCertificateSource.Healthy should have comment or be unexported
pkg/controller/certificaterequests/venafi/venafi_test.go:43:2: package "github.com/jetstack/cert-manager/pkg/controller/test" is being imported more than once (ST1019)
pkg/controller/certificaterequests/venafi/venafi_test.go:44:2: other import of "github.com/jetstack/cert-manager/pkg/controller/test"
pkg/controller/certificates/revisionmanager/revisionmanager_controller.go:51:2: var certificateGvk is unused (U1000)
pkg/internal/api/mutation/registry.go:138:3: redundant break statement (S1023)
pkg/internal/api/mutation/registry.go:157:3: redundant break statement (S1023)
pkg/internal/apis/acme/v1/zz_generated.conversion.go:695:2: out.KeyAlgorithm is deprecated: keyAlgorithm exists for historical compatibility reasons and should not be used. golang/x/crypto/acme hardcodes the algorithm to HS256 so setting this field will have no effect. See https://github.com/jetstack/cert-manager/issues/3220#issuecomment-809438314  (SA1019)
pkg/internal/apis/acme/v1/zz_generated.conversion.go:695:43: in.KeyAlgorithm is deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme. +optional  (SA1019)
pkg/internal/apis/acme/v1/zz_generated.conversion.go:710:2: out.KeyAlgorithm is deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme. +optional  (SA1019)
pkg/internal/apis/acme/v1/zz_generated.conversion.go:710:41: in.KeyAlgorithm is deprecated: keyAlgorithm exists for historical compatibility reasons and should not be used. golang/x/crypto/acme hardcodes the algorithm to HS256 so setting this field will have no effect. See https://github.com/jetstack/cert-manager/issues/3220#issuecomment-809438314  (SA1019)
pkg/internal/apis/certmanager/validation/certificaterequest_test.go:31:2: package "github.com/jetstack/cert-manager/pkg/util/pki" is being imported more than once (ST1019)
pkg/internal/apis/certmanager/validation/certificaterequest_test.go:32:2: other import of "github.com/jetstack/cert-manager/pkg/util/pki"
pkg/issuer/acme/dns/akamai/akamai.go:205:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/dns.go:164:2: should use 'return strategy == cmacme.FollowStrategy' instead of 'if strategy == cmacme.FollowStrategy { return true }; return false' (S1008)
pkg/issuer/acme/http/pod.go:240:2: should replace loop with pod.Spec.Tolerations = append(pod.Spec.Tolerations, podTempl.Spec.Tolerations...) (S1011)
pkg/issuer/venafi/client/venaficlient_test.go:25:2: package "k8s.io/client-go/listers/core/v1" is being imported more than once (ST1019)
pkg/issuer/venafi/client/venaficlient_test.go:26:2: other import of "k8s.io/client-go/listers/core/v1"
pkg/webhook/server/tls/file_source.go:140:5: should use bytes.Equal(keyData, f.cachedKeyBytes) instead (S1004)
pkg/webhook/server/tls/file_source.go:140:54: should use bytes.Equal(certData, f.cachedCertBytes) instead (S1004)

Batch 3:
pkg/controller/certificaterequests/ca/ca_test.go:441:21                                  errcheck     Error return value of `controller.Register` is not checked
pkg/controller/certificates/revisionmanager/revisionmanager_controller_test.go:228:4     gosimple     S1011: should replace loop with `builder.CertManagerObjects = append(builder.CertManagerObjects, test.requests...)`
pkg/controller/register.go:37:39                                                         gosimple     S1019: should use make(map[string]Constructor) instead
pkg/internal/api/mutation/registry_test.go:367:22                                        errcheck     Error return value of `reg.AddMutateFunc` is not checked
pkg/internal/api/mutation/registry_test.go:370:28                                        errcheck     Error return value of `reg.AddMutateUpdateFunc` is not checked
pkg/internal/apis/acme/validation/order.go:45:29                                         gosimple     S1004: should use !bytes.Equal(old.Request, new.Request) instead
pkg/internal/apis/acme/validation/order.go:62:33                                         gosimple     S1004: should use !bytes.Equal(old.Certificate, new.Certificate) instead
pkg/internal/apis/certmanager/validation/issuer_test.go:44:2                             deadcode     `validCloudflareProvider` is unused
pkg/issuer/acme/dns/dns_test.go:64:3                                                     structcheck  `domain` is unused
pkg/issuer/acme/dns/route53/route53.go:35:2                                              deadcode     `maxRetries` is unused
pkg/util/coverage/coverage.go:62:24                                                      errcheck     Error return value of `flag.CommandLine.Parse` is not checked
pkg/webhook/server/tls/file_source_test.go:60:15                                         errcheck     Error return value of `source.Run` is not checked
pkg/webhook/server/tls/file_source_test.go:101:15                                        errcheck     Error return value of `source.Run` is not checked
pkg/acme/client/fake.go:51:1: exported method FakeACME.AuthorizeOrder should have comment or be unexported
pkg/acme/client/fake.go:58:1: exported method FakeACME.GetOrder should have comment or be unexported
pkg/acme/client/fake.go:65:1: exported method FakeACME.FetchCert should have comment or be unexported
pkg/acme/client/fake.go:72:1: exported method FakeACME.FetchCertAlternatives should have comment or be unexported
pkg/acme/client/fake.go:80:1: exported method FakeACME.WaitOrder should have comment or be unexported
pkg/acme/client/fake.go:87:1: exported method FakeACME.CreateOrderCert should have comment or be unexported
pkg/acme/client/fake.go:94:1: exported method FakeACME.Accept should have comment or be unexported
pkg/acme/client/fake.go:101:1: exported method FakeACME.GetChallenge should have comment or be unexported
pkg/acme/client/fake.go:108:1: exported method FakeACME.GetAuthorization should have comment or be unexported
pkg/acme/client/fake.go:115:1: exported method FakeACME.WaitAuthorization should have comment or be unexported
pkg/acme/client/fake.go:122:1: exported method FakeACME.Register should have comment or be unexported
pkg/acme/client/fake.go:129:1: exported method FakeACME.GetReg should have comment or be unexported
pkg/acme/client/fake.go:136:1: exported method FakeACME.HTTP01ChallengeResponse should have comment or be unexported
pkg/acme/client/fake.go:143:1: exported method FakeACME.DNS01ChallengeRecord should have comment or be unexported
pkg/acme/client/fake.go:150:1: exported method FakeACME.Discover should have comment or be unexported
pkg/acme/client/fake.go:159:1: exported method FakeACME.UpdateReg should have comment or be unexported
pkg/acme/webhook/apis/acme/v1alpha1/register.go:36:2: exported var SchemeBuilder should have comment or be unexported
pkg/acme/webhook/registry/challengepayload/challenge_payload.go:32:6: exported type REST should have comment or be unexported
pkg/acme/webhook/registry/challengepayload/challenge_payload.go:40:1: exported function NewREST should have comment or be unexported
pkg/acme/webhook/registry/challengepayload/challenge_payload.go:46:1: exported method REST.New should have comment or be unexported
pkg/acme/webhook/registry/challengepayload/challenge_payload.go:50:1: exported method REST.GroupVersionKind should have comment or be unexported
pkg/acme/webhook/registry/challengepayload/challenge_payload.go:54:1: exported method REST.NamespaceScoped should have comment or be unexported
pkg/acme/webhook/registry/challengepayload/challenge_payload.go:58:1: exported method REST.Create should have comment or be unexported
pkg/api/util/duration.go:27:1: exported function DefaultCertDuration should have comment or be unexported
pkg/controller/helper.go:23:1: exported method IssuerOptions.ResourceNamespace should have comment or be unexported
pkg/controller/helper.go:31:1: exported method IssuerOptions.CanUseAmbientCredentials should have comment or be unexported
pkg/controller/acmeorders/selectors/selector.go:23:6: exported type Selector should have comment or be unexported
pkg/controller/certificaterequests/acme/acme.go:44:2: exported const CRControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificaterequests/acme/acme.go:47:6: exported type ACME should have comment or be unexported
pkg/controller/certificaterequests/acme/acme.go:70:1: exported function NewACME should have comment or be unexported
pkg/controller/certificaterequests/acme/acme.go:80:1: exported method ACME.Sign should have comment or be unexported
pkg/controller/certificaterequests/util/reporter.go:36:6: exported type Reporter should have comment or be unexported
pkg/controller/certificaterequests/util/reporter.go:41:1: exported function NewReporter should have comment or be unexported
pkg/controller/certificaterequests/util/reporter.go:48:1: exported method Reporter.Failed should have comment or be unexported
pkg/controller/certificaterequests/util/reporter.go:62:1: exported method Reporter.Denied should have comment or be unexported
pkg/controller/certificaterequests/util/reporter.go:74:1: exported method Reporter.InvalidRequest should have comment or be unexported
pkg/controller/certificaterequests/util/reporter.go:79:1: exported method Reporter.Pending should have comment or be unexported
pkg/controller/certificaterequests/util/reporter.go:95:1: exported method Reporter.Ready should have comment or be unexported
pkg/controller/certificates/util.go:36:1: exported function PrivateKeyMatchesSpec should have comment or be unexported
pkg/controller/certificates/internal/secretsmanager/secret.go:41:6: exported type SecretsManager should have comment or be unexported
pkg/controller/certificates/internal/secretsmanager/secret.go:57:1: exported function New should have comment or be unexported
pkg/controller/certificates/metrics/controller.go:35:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificates/metrics/controller.go:52:1: exported function NewController should have comment or be unexported
pkg/controller/certificates/metrics/controller.go:56:4: exported func NewController returns unexported type *metrics.controller, which can be annoying to use
pkg/controller/test/util.go:28:6: exported type StringGenerator should have comment or be unexported
pkg/controller/test/util.go:32:1: exported function RandStringBytes should have comment or be unexported
pkg/controller/test/util.go:40:1: exported function FixedString should have comment or be unexported
pkg/internal/vault/fake/vault.go:28:6: exported type Vault should have comment or be unexported
pkg/internal/vault/fake/vault.go:34:1: exported function New should have comment or be unexported
pkg/internal/vault/fake/vault.go:51:1: exported method Vault.Sign should have comment or be unexported
pkg/internal/vault/fake/vault.go:55:1: exported method Vault.WithSign should have comment or be unexported
pkg/internal/vault/fake/vault.go:62:1: exported method Vault.WithNew should have comment or be unexported
pkg/internal/vault/fake/vault.go:67:1: exported method Vault.New should have comment or be unexported
pkg/internal/vault/fake/vault.go:76:1: exported method Vault.Sys should have comment or be unexported
pkg/internal/vault/fake/vault.go:80:1: exported method Vault.IsVaultInitializedAndUnsealed should have comment or be unexported
pkg/issuer/acme/dns/akamai/edgegridauth.go:57:7: exported const NoMaxBody should have comment or be unexported
pkg/issuer/acme/http/solver/solver.go:28:6: exported type HTTP01Solver should have comment or be unexported
pkg/issuer/acme/http/solver/solver.go:38:1: exported method HTTP01Solver.Listen should have comment or be unexported
pkg/issuer/fake/factory.go:24:6: exported type Factory should have comment or be unexported
pkg/issuer/fake/factory.go:30:1: exported method Factory.IssuerFor should have comment or be unexported
pkg/issuer/selfsigned/selfsigned.go:36:1: exported function NewSelfSigned should have comment or be unexported
pkg/issuer/venafi/setup.go:30:1: exported method Venafi.Setup should have comment or be unexported
pkg/issuer/venafi/client/fake/connector.go:25:6: exported type Connector should have comment or be unexported
pkg/issuer/venafi/client/fake/connector.go:35:1: exported method Connector.Default should have comment or be unexported
pkg/issuer/venafi/client/fake/connector.go:42:1: exported method Connector.Ping should have comment or be unexported
pkg/issuer/venafi/client/fake/connector.go:49:1: exported method Connector.ReadZoneConfiguration should have comment or be unexported
pkg/issuer/venafi/client/fake/connector.go:56:1: exported method Connector.RetrieveCertificate should have comment or be unexported
pkg/issuer/venafi/client/fake/connector.go:63:1: exported method Connector.RequestCertificate should have comment or be unexported
pkg/issuer/venafi/client/fake/connector.go:70:1: exported method Connector.RenewCertificate should have comment or be unexported
pkg/util/version.go:24:6: exported type Version should have comment or be unexported
pkg/util/version.go:40:1: exported function VersionInfo should have comment or be unexported
pkg/webhook/handlers/validation.go:44:1: exported function NewRegistryBackedValidator should have comment or be unexported
pkg/webhook/handlers/validation.go:44:105: exported func NewRegistryBackedValidator returns unexported type *handlers.registryBackedValidator, which can be annoying to use
pkg/controller/acmeorders/checks.go:31:23: error strings should not be capitalized (ST1005)
pkg/controller/acmeorders/checks.go:37:23: error strings should not be capitalized (ST1005)
pkg/controller/certificaterequests/ca/ca_test.go:51:2: package "github.com/jetstack/cert-manager/pkg/controller/test" is being imported more than once (ST1019)
pkg/controller/certificaterequests/ca/ca_test.go:52:2: other import of "github.com/jetstack/cert-manager/pkg/controller/test"
pkg/controller/certificaterequests/ca/ca_test.go:55:2: package "github.com/jetstack/cert-manager/test/unit/listers" is being imported more than once (ST1019)
pkg/controller/certificaterequests/ca/ca_test.go:56:2: other import of "github.com/jetstack/cert-manager/test/unit/listers"
pkg/controller/certificates/revisionmanager/revisionmanager_controller_test.go:228:4: should replace loop with builder.CertManagerObjects = append(builder.CertManagerObjects, test.requests...) (S1011)
pkg/controller/register.go:37:39: should use make(map[string]Constructor) instead (S1019)
pkg/internal/apis/acme/validation/order.go:45:29: should use !bytes.Equal(old.Request, new.Request) instead (S1004)
pkg/internal/apis/acme/validation/order.go:62:33: should use !bytes.Equal(old.Certificate, new.Certificate) instead (S1004)
pkg/issuer/acme/dns/route53/route53.go:181:10: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/route53/route53.go:208:10: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/route53/route53.go:220:18: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/route53/route53.go:259:14: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/route53/route53.go:265:14: error strings should not be capitalized (ST1005)
pkg/util/pki/csr_test.go:32:2: package "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1" is being imported more than once (ST1019)
pkg/util/pki/csr_test.go:33:2: other import of "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"

Batch 4:
pkg/controller/acmeorders/sync_test.go:621:12                                            errcheck     Error return value of `c.Register` is not checked
pkg/controller/certificaterequests/acme/acme_test.go:636:21                              errcheck     Error return value of `controller.Register` is not checked
pkg/controller/test/actions.go:74:5                                                      gosimple     S1002: should omit comparison to bool constant, can be simplified to `matches`
pkg/internal/apis/certmanager/identity/certificaterequests/certificaterequests.go:108:2  gosimple     S1023: redundant `return` statement
pkg/internal/vault/vault.go:182:5                                                        gosimple     S1002: should omit comparison to bool constant, can be simplified to `!ok`
pkg/issuer/acme/setup.go:50:2                                                            deadcode     `successAccountVerified` is unused
pkg/issuer/acme/setup.go:56:2                                                            deadcode     `messageAccountVerified` is unused
pkg/util/pki/generate_test.go:345:3                                                      structcheck  `key` is unused
pkg/webhook/authority/authority.go:302:5                                                 gosimple     S1024: should use time.Until instead of t.Sub(time.Now())
pkg/webhook/handlers/validation_test.go:88:18                                            gosimple     S1039: unnecessary use of fmt.Sprintf
pkg/webhook/handlers/validation_test.go:101:18                                           gosimple     S1039: unnecessary use of fmt.Sprintf
pkg/acme/client/interfaces.go:27:6: exported type Interface should have comment or be unexported
pkg/acme/webhook/webhook.go:19:1: package comment is detached; there should be no blank lines between it and the package statement
pkg/acme/webhook/webhook.go:28:6: exported type Solver should have comment or be unexported
pkg/acme/webhook/apis/acme/v1alpha1/types.go:114:6: exported type ChallengeAction should have comment or be unexported
pkg/acme/webhook/apis/acme/v1alpha1/types.go:117:2: exported const ChallengeActionPresent should have comment (or a comment on this block) or be unexported
pkg/acme/webhook/apis/acme/v1alpha1/types.go:121:6: exported type ChallengeResponse should have comment or be unexported
pkg/api/util/issuers.go:57:1: comment on exported function IssuerKind should be of the form "IssuerKind ..."
pkg/controller/util.go:34:2: exported var KeyFunc should have comment or be unexported
pkg/controller/util.go:37:1: exported function DefaultItemBasedRateLimiter should have comment or be unexported
pkg/controller/util.go:41:1: exported function HandleOwnedResourceNamespacedFunc should have comment or be unexported
pkg/controller/util.go:91:1: exported method QueuingEventHandler.Enqueue should have comment or be unexported
pkg/controller/util.go:100:1: exported method QueuingEventHandler.OnAdd should have comment or be unexported
pkg/controller/util.go:104:1: exported method QueuingEventHandler.OnUpdate should have comment or be unexported
pkg/controller/util.go:111:1: exported method QueuingEventHandler.OnDelete should have comment or be unexported
pkg/controller/util.go:126:1: exported method BlockingEventHandler.Enqueue should have comment or be unexported
pkg/controller/util.go:130:1: exported method BlockingEventHandler.OnAdd should have comment or be unexported
pkg/controller/util.go:134:1: exported method BlockingEventHandler.OnUpdate should have comment or be unexported
pkg/controller/util.go:141:1: exported method BlockingEventHandler.OnDelete should have comment or be unexported
pkg/controller/acmeorders/controller.go:156:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificaterequests/controller.go:40:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificaterequests/controller.go:45:6: exported type Issuer should have comment or be unexported
pkg/controller/certificaterequests/controller.go:49:6: exported type Controller should have comment or be unexported
pkg/controller/certificaterequests/controller.go:174:1: exported method Controller.ProcessItem should have comment or be unexported
pkg/controller/certificaterequests/vault/vault.go:36:2: exported const CRControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificaterequests/vault/vault.go:39:6: exported type Vault should have comment or be unexported
pkg/controller/certificaterequests/vault/vault.go:56:1: exported function NewVault should have comment or be unexported
pkg/controller/certificaterequests/vault/vault.go:65:1: exported method Vault.Sign should have comment or be unexported
pkg/controller/certificates/internal/test/test.go:42:6: exported type CryptoBundle should have comment or be unexported
pkg/controller/certificates/internal/test/test.go:75:1: exported function MustCreateCryptoBundle should have comment or be unexported
pkg/controller/certificates/readiness/readiness_controller.go:50:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificates/readiness/readiness_controller.go:71:1: exported function NewController should have comment or be unexported
pkg/controller/certificates/readiness/readiness_controller.go:79:4: exported func NewController returns unexported type *readiness.controller, which can be annoying to use
pkg/controller/certificates/trigger/policies/constants.go:20:2: comment on exported const DoesNotExist should be of the form "DoesNotExist ..."
pkg/controller/certificates/trigger/policies/constants.go:22:2: comment on exported const MissingData should be of the form "MissingData ..."
pkg/controller/certificates/trigger/policies/constants.go:24:2: comment on exported const InvalidKeyPair should be of the form "InvalidKeyPair ..."
pkg/controller/certificates/trigger/policies/constants.go:26:2: comment on exported const SecretMismatch should be of the form "SecretMismatch ..."
pkg/controller/certificates/trigger/policies/constants.go:28:2: comment on exported const IncorrectIssuer should be of the form "IncorrectIssuer ..."
pkg/controller/certificates/trigger/policies/constants.go:30:2: comment on exported const RequestChanged should be of the form "RequestChanged ..."
pkg/controller/certificates/trigger/policies/constants.go:32:2: comment on exported const Renewing should be of the form "Renewing ..."
pkg/controller/certificates/trigger/policies/constants.go:34:2: comment on exported const Expired should be of the form "Expired ..."
pkg/controller/clusterissuers/controller.go:155:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/ingress-shim/controller.go:41:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/test/actions.go:27:6: exported type ActionMatchFn should have comment or be unexported
pkg/controller/test/actions.go:29:6: exported type Action should have comment or be unexported
pkg/controller/test/actions.go:41:1: exported function NewCustomMatch should have comment or be unexported
pkg/controller/test/actions.go:62:1: exported function NewAction should have comment or be unexported
pkg/internal/api/validation/registry.go:38:6: exported type ValidateFunc should have comment or be unexported
pkg/internal/api/validation/registry.go:39:6: exported type ValidateUpdateFunc should have comment or be unexported
pkg/internal/vault/vault.go:39:6: exported type VaultClientBuilder should have comment or be unexported
pkg/internal/vault/vault.go:39:6: type name will be used as vault.VaultClientBuilder by other packages, and that stutters; consider calling this ClientBuilder
pkg/internal/vault/vault.go:42:6: exported type Interface should have comment or be unexported
pkg/internal/vault/vault.go:48:6: exported type Client should have comment or be unexported
pkg/internal/vault/vault.go:56:6: exported type Vault should have comment or be unexported
pkg/internal/vault/vault.go:64:1: exported function New should have comment or be unexported
pkg/internal/vault/vault.go:91:1: exported method Vault.Sign should have comment or be unexported
pkg/internal/vault/vault.go:212:55: method result roleId should be roleID
pkg/internal/vault/vault.go:212:63: method result secretId should be secretID
pkg/internal/vault/vault.go:234:2: var roleId should be roleID
pkg/internal/vault/vault.go:234:10: var secretId should be secretID
pkg/internal/vault/vault.go:341:1: exported method Vault.Sys should have comment or be unexported
pkg/internal/vault/vault.go:371:1: exported method Vault.IsVaultInitializedAndUnsealed should have comment or be unexported
pkg/issuer/acme/dns/rfc2136/provider.go:36:6: exported type Solver should have comment or be unexported
pkg/issuer/acme/dns/rfc2136/provider.go:45:6: exported type Option should have comment or be unexported
pkg/issuer/acme/dns/rfc2136/provider.go:47:1: exported function WithNamespace should have comment or be unexported
pkg/issuer/acme/dns/rfc2136/provider.go:53:1: exported function New should have comment or be unexported
pkg/issuer/acme/dns/rfc2136/provider.go:61:1: exported method Solver.Name should have comment or be unexported
pkg/issuer/acme/dns/rfc2136/provider.go:65:1: exported method Solver.Present should have comment or be unexported
pkg/issuer/acme/dns/rfc2136/provider.go:79:1: exported method Solver.CleanUp should have comment or be unexported
pkg/issuer/acme/dns/rfc2136/provider.go:93:1: exported method Solver.Initialize should have comment or be unexported
pkg/issuer/acme/dns/util/wait.go:49:5: exported var RecursiveNameservers should have comment or be unexported
pkg/issuer/acme/dns/util/wait.go:192:1: exported function ValidateCAA should have comment or be unexported
pkg/issuer/fake/helper.go:25:6: exported type Helper should have comment or be unexported
pkg/issuer/fake/helper.go:31:1: exported method Helper.GetGenericIssuer should have comment or be unexported
pkg/issuer/selfsigned/setup.go:31:1: exported method SelfSigned.Setup should have comment or be unexported
pkg/issuer/venafi/venafi.go:49:1: exported function NewVenafi should have comment or be unexported
pkg/issuer/venafi/client/fake/venafi.go:27:6: exported type Venafi should have comment or be unexported
pkg/issuer/venafi/client/fake/venafi.go:34:1: exported method Venafi.Ping should have comment or be unexported
pkg/issuer/venafi/client/fake/venafi.go:38:1: exported method Venafi.RequestCertificate should have comment or be unexported
pkg/issuer/venafi/client/fake/venafi.go:42:1: exported method Venafi.RetrieveCertificate should have comment or be unexported
pkg/issuer/venafi/client/fake/venafi.go:46:1: exported method Venafi.ReadZoneConfiguration should have comment or be unexported
pkg/issuer/venafi/client/fake/venafi.go:50:1: exported method Venafi.SetClient should have comment or be unexported
pkg/util/errors/errors.go:23:1: exported function NewInvalidData should have comment or be unexported
pkg/util/errors/errors.go:27:1: exported function IsInvalidData should have comment or be unexported
pkg/webhook/authority/authority.go:91:6: exported type SignFunc should have comment or be unexported
pkg/webhook/authority/authority.go:95:1: exported method DynamicAuthority.Run should have comment or be unexported
pkg/webhook/server/tls/source.go:25:2: exported var ErrNotAvailable should have comment or be unexported
pkg/webhook/server/tls/source.go:28:6: exported type CertificateSource should have comment or be unexported
pkg/controller/certificaterequests/acme/acme_test.go:40:2: package "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1" is being imported more than once (ST1019)
pkg/controller/certificaterequests/acme/acme_test.go:41:2: other import of "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"
pkg/controller/ingress-shim/controller.go:127:23: error strings should not be capitalized (ST1005)
pkg/controller/ingress-shim/controller.go:132:23: error strings should not be capitalized (ST1005)
pkg/controller/test/actions.go:74:5: should omit comparison to bool constant, can be simplified to matches (S1002)
pkg/internal/apis/acme/v1alpha2/zz_generated.conversion.go:695:2: out.KeyAlgorithm is deprecated: keyAlgorithm exists for historical compatibility reasons and should not be used. golang/x/crypto/acme hardcodes the algorithm to HS256 so setting this field will have no effect. See https://github.com/jetstack/cert-manager/issues/3220#issuecomment-809438314  (SA1019)
pkg/internal/apis/acme/v1alpha2/zz_generated.conversion.go:695:43: in.KeyAlgorithm is deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme. +optional  (SA1019)
pkg/internal/apis/acme/v1alpha2/zz_generated.conversion.go:710:2: out.KeyAlgorithm is deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme. +optional  (SA1019)
pkg/internal/apis/acme/v1alpha2/zz_generated.conversion.go:710:47: in.KeyAlgorithm is deprecated: keyAlgorithm exists for historical compatibility reasons and should not be used. golang/x/crypto/acme hardcodes the algorithm to HS256 so setting this field will have no effect. See https://github.com/jetstack/cert-manager/issues/3220#issuecomment-809438314  (SA1019)
pkg/internal/apis/certmanager/identity/certificaterequests/certificaterequests.go:108:2: redundant return statement (S1023)
pkg/internal/vault/vault.go:182:5: should omit comparison to bool constant, can be simplified to !ok (S1002)
pkg/issuer/acme/dns/azuredns/azuredns.go:169:14: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/azuredns/azuredns.go:175:14: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/util/wait.go:96:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/util/wait.go:215:12: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/util/wait.go:222:12: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/util/wait.go:230:12: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/util/wait.go:301:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/util/wait.go:319:14: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/util/wait.go:366:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/util/wait.go:389:13: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/util/wait.go:427:11: error strings should not be capitalized (ST1005)
pkg/issuer/acme/setup.go:101:14: error strings should not be capitalized (ST1005)
pkg/webhook/authority/authority.go:302:5: should use time.Until instead of t.Sub(time.Now()) (S1024)
pkg/webhook/handlers/validation_test.go:88:18: unnecessary use of fmt.Sprintf (S1039)
pkg/webhook/handlers/validation_test.go:101:18: unnecessary use of fmt.Sprintf (S1039)
pkg/webhook/handlers/validation_test.go:124:18: unnecessary use of fmt.Sprintf (S1039)
pkg/webhook/handlers/validation_test.go:138:18: unnecessary use of fmt.Sprintf (S1039)
pkg/webhook/handlers/validation_test.go:165:18: unnecessary use of fmt.Sprintf (S1039)
pkg/webhook/handlers/validation_test.go:179:18: unnecessary use of fmt.Sprintf (S1039)

Batch 5
pkg/controller/acmeorders/util.go:84:6                                                   deadcode     `hashChallenge` is unused
pkg/controller/certificaterequests/approver/approver.go:72:14                            staticcheck  SA4021: x = append(y) is equivalent to x = y
pkg/controller/certificaterequests/vault/vault_test.go:535:21                            errcheck     Error return value of `controller.Register` is not checked
pkg/controller/certificates/trigger/policies/policies.go:121:26                          gosimple     S1039: unnecessary use of fmt.Sprintf
pkg/controller/clusterissuers/sync_test.go:55:12                                         errcheck     Error return value of `c.Register` is not checked
pkg/controller/ingress-shim/sync.go:301:2                                                gosimple     S1005: unnecessary assignment to the blank identifier
pkg/controller/test/context_builder.go:52:10                                             errcheck     Error return value of `flag.Set` is not checked
pkg/controller/test/context_builder.go:53:28                                             errcheck     Error return value of `.Set` is not checked
pkg/ctl/scheme.go:61:26                                                                  errcheck     Error return value of `Scheme.AddConversionFunc` is not checked
pkg/ctl/scheme.go:67:26                                                                  errcheck     Error return value of `Scheme.AddConversionFunc` is not checked
pkg/internal/apis/certmanager/validation/certificate_for_issuer_test.go:34:2             deadcode     `defaultTestCrtName` is unused
pkg/internal/istio/istio_deepcopy.gen.go:36:2                                            gosimple     S1023: redundant `return` statement
pkg/internal/istio/istio_deepcopy.gen.go:69:2                                            gosimple     S1023: redundant `return` statement
pkg/issuer/acme/dns/rfc2136/provider_test.go:42:23                                       errcheck     Error return value of `server.Shutdown` is not checked
pkg/issuer/acme/dns/rfc2136/provider_test.go:77:23                                       errcheck     Error return value of `server.Shutdown` is not checked
pkg/issuer/vault/setup.go:37:2                                                           deadcode     `messageVaultHealthCheckFailed` is unused
pkg/issuer/venafi/client/request.go:143:5                                                gosimple     S1023: redundant break statement
pkg/logs/logs.go:68:8                                                                    errcheck     Error return value of `fs.Set` is not checked
pkg/webhook/server/server.go:58:30                                                       errcheck     Error return value is not checked
pkg/webhook/server/server.go:59:25                                                       errcheck     Error return value is not checked
pkg/webhook/server/server.go:209:12                                                      errcheck     Error return value is not checked
pkg/webhook/server/server.go:380:15                                                      errcheck     Error return value of `codec.Decode` is not checked
pkg/acme/client/middleware/logger.go:34:1: exported function NewLogger should have comment or be unexported
pkg/acme/client/middleware/logger.go:49:1: exported method Logger.AuthorizeOrder should have comment or be unexported
pkg/acme/client/middleware/logger.go:58:1: exported method Logger.GetOrder should have comment or be unexported
pkg/acme/client/middleware/logger.go:67:1: exported method Logger.FetchCert should have comment or be unexported
pkg/acme/client/middleware/logger.go:76:1: exported method Logger.FetchCertAlternatives should have comment or be unexported
pkg/acme/client/middleware/logger.go:85:1: exported method Logger.WaitOrder should have comment or be unexported
pkg/acme/client/middleware/logger.go:94:1: exported method Logger.CreateOrderCert should have comment or be unexported
pkg/acme/client/middleware/logger.go:103:1: exported method Logger.Accept should have comment or be unexported
pkg/acme/client/middleware/logger.go:112:1: exported method Logger.GetChallenge should have comment or be unexported
pkg/acme/client/middleware/logger.go:121:1: exported method Logger.GetAuthorization should have comment or be unexported
pkg/acme/client/middleware/logger.go:130:1: exported method Logger.WaitAuthorization should have comment or be unexported
pkg/acme/client/middleware/logger.go:139:1: exported method Logger.Register should have comment or be unexported
pkg/acme/client/middleware/logger.go:148:1: exported method Logger.GetReg should have comment or be unexported
pkg/acme/client/middleware/logger.go:157:1: exported method Logger.HTTP01ChallengeResponse should have comment or be unexported
pkg/acme/client/middleware/logger.go:162:1: exported method Logger.DNS01ChallengeRecord should have comment or be unexported
pkg/acme/client/middleware/logger.go:167:1: exported method Logger.Discover should have comment or be unexported
pkg/acme/client/middleware/logger.go:176:1: exported method Logger.UpdateReg should have comment or be unexported
pkg/acme/webhook/apiserver/apiserver.go:38:2: exported var Scheme should have comment or be unexported
pkg/acme/webhook/apiserver/apiserver.go:67:6: exported type Config should have comment or be unexported
pkg/acme/webhook/apiserver/apiserver.go:72:6: exported type ExtraConfig should have comment or be unexported
pkg/acme/webhook/apiserver/apiserver.go:91:6: exported type CompletedConfig should have comment or be unexported
pkg/api/scheme.go:50:5: exported var Scheme should have comment or be unexported
pkg/api/scheme.go:51:5: exported var Codecs should have comment or be unexported
pkg/api/scheme.go:52:5: exported var ParameterCodec should have comment or be unexported
pkg/api/util/names.go:27:1: exported function ComputeName should have comment or be unexported
pkg/api/util/names.go:46:1: exported function DNSSafeShortenTo52Characters should have comment or be unexported
pkg/controller/acmeorders/selectors/dns_names.go:25:1: exported function DNSNames should have comment or be unexported
pkg/controller/certificaterequests/approver/approver.go:36:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificaterequests/approver/approver.go:84:1: exported method Controller.ProcessItem should have comment or be unexported
pkg/controller/certificaterequests/fake/fake.go:26:6: exported type Issuer should have comment or be unexported
pkg/controller/certificates/issuing/issuing_controller.go:54:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificates/issuing/issuing_controller.go:77:1: exported function NewController should have comment or be unexported
pkg/controller/certificates/issuing/issuing_controller.go:86:4: exported func NewController returns unexported type *issuing.controller, which can be annoying to use
pkg/controller/certificates/requestmanager/requestmanager_controller.go:54:2: exported const ControllerName should have comment (or a comment on this block) or be unexported
pkg/controller/certificates/requestmanager/requestmanager_controller.go:71:1: exported function NewController should have comment or be unexported
pkg/controller/certificates/requestmanager/requestmanager_controller.go:77:4: exported func NewController returns unexported type *requestmanager.controller, which can be annoying to use
pkg/controller/certificates/trigger/policies/policies.go:34:6: exported type Input should have comment or be unexported
pkg/controller/certificates/trigger/policies/policies.go:57:1: comment on exported type Chain should be of the form "Chain ..." (with optional leading article)
pkg/controller/certificates/trigger/policies/policies.go:73:1: exported function NewTriggerPolicyChain should have comment or be unexported
pkg/controller/certificates/trigger/policies/policies.go:85:1: exported function SecretDoesNotExist should have comment or be unexported
pkg/controller/certificates/trigger/policies/policies.go:92:1: exported function SecretIsMissingData should have comment or be unexported
pkg/controller/certificates/trigger/policies/policies.go:107:1: exported function SecretPublicKeysDiffer should have comment or be unexported
pkg/controller/certificates/trigger/policies/policies.go:119:1: exported function SecretPrivateKeyMatchesSpec should have comment or be unexported
pkg/controller/certificates/trigger/policies/policies.go:140:1: exported function SecretIssuerAnnotationsNotUpToDate should have comment or be unexported
pkg/controller/certificates/trigger/policies/policies.go:152:1: exported function CurrentCertificateRequestNotValidForSpec should have comment or be unexported
pkg/controller/test/context_builder.go:139:1: exported method Builder.FakeKubeClient should have comment or be unexported
pkg/controller/test/context_builder.go:143:1: exported method Builder.FakeKubeInformerFactory should have comment or be unexported
pkg/controller/test/context_builder.go:147:1: exported method Builder.FakeDynamicClient should have comment or be unexported
pkg/controller/test/context_builder.go:151:1: exported method Builder.FakeDynamicSharedInformerFactory should have comment or be unexported
pkg/controller/test/context_builder.go:155:1: exported method Builder.FakeCMClient should have comment or be unexported
pkg/controller/test/context_builder.go:159:1: exported method Builder.FakeCMInformerFactory should have comment or be unexported
pkg/controller/test/context_builder.go:163:1: exported method Builder.EnsureReactorCalled should have comment or be unexported
pkg/controller/test/context_builder.go:198:1: exported method Builder.AllReactorsCalled should have comment or be unexported
pkg/controller/test/context_builder.go:208:1: exported method Builder.AllEventsCalled should have comment or be unexported
pkg/controller/test/context_builder.go:287:1: exported method Builder.Start should have comment or be unexported
pkg/controller/test/context_builder.go:295:1: exported method Builder.Sync should have comment or be unexported
pkg/controller/test/context_builder.go:320:1: exported method Builder.Events should have comment or be unexported
pkg/ctl/scheme.go:17:1: package comment should be of the form "Package ctl ..."
pkg/issuer/acme/dns/acmedns/acmedns.go:43:2: var accountJson should be accountJSON
pkg/issuer/acme/dns/acmedns/acmedns.go:50:43: func parameter accountJson should be accountJSON
pkg/issuer/acme/dns/clouddns/clouddns.go:40:1: exported function NewDNSProvider should have comment or be unexported
pkg/issuer/acme/dns/webhook/webhook.go:37:6: exported type Webhook should have comment or be unexported
pkg/issuer/acme/dns/webhook/webhook.go:41:1: exported method Webhook.Name should have comment or be unexported
pkg/issuer/acme/dns/webhook/webhook.go:117:1: exported method Webhook.Initialize should have comment or be unexported
pkg/issuer/ca/ca.go:42:1: exported function NewCA should have comment or be unexported
pkg/issuer/fake/issuer.go:26:6: exported type Issuer should have comment or be unexported
pkg/issuer/vault/setup.go:49:1: exported method Vault.Setup should have comment or be unexported
pkg/issuer/venafi/client/request.go:41:5: exported var ErrorMissingSubject should have comment or be unexported
pkg/issuer/venafi/client/request.go:41:38: error strings should not be capitalized or end with punctuation or a newline
pkg/issuer/venafi/client/request.go:43:1: comment on exported method Venafi.RequestCertificate should be of the form "RequestCertificate ..."
pkg/issuer/venafi/client/request.go:57:1: exported method Venafi.RetrieveCertificate should have comment or be unexported
pkg/logs/logs.go:38:2: exported var Log should have comment or be unexported
pkg/logs/logs.go:42:2: comment on exported const ErrorLevel should be of the form "ErrorLevel ..."
pkg/logs/logs.go:44:2: exported const WarnLevel should have comment (or a comment on this block) or be unexported
pkg/logs/logs.go:83:2: exported const ResourceNameKey should have comment (or a comment on this block) or be unexported
pkg/logs/logs.go:94:1: exported function WithResource should have comment or be unexported
pkg/logs/logs.go:112:1: exported function WithRelatedResource should have comment or be unexported
pkg/logs/logs.go:130:1: exported function WithRelatedResourceName should have comment or be unexported
pkg/logs/logs.go:140:1: exported function FromContext should have comment or be unexported
pkg/logs/logs.go:152:1: exported function NewContext should have comment or be unexported
pkg/logs/logs.go:165:1: exported function V should have comment or be unexported
pkg/logs/logs.go:169:6: exported type LogWithFormat should have comment or be unexported
pkg/logs/logs.go:173:1: exported function WithInfof should have comment or be unexported
pkg/logs/logs.go:177:1: comment on exported method LogWithFormat.Infof should be of the form "Infof ..."
pkg/util/istio/istio.go:27:1: exported function IsInstalled should have comment or be unexported
pkg/util/istio/istio.go:41:1: exported function CanListVirtualService should have comment or be unexported
pkg/util/pki/keyusage.go:91:1: exported function ExtKeyUsageFromOID should have comment or be unexported
pkg/webhook/handlers/conversion.go:37:6: exported type SchemeBackedConverter should have comment or be unexported
pkg/webhook/handlers/conversion.go:45:1: exported function NewSchemeBackedConverter should have comment or be unexported
pkg/webhook/handlers/conversion.go:90:1: exported method SchemeBackedConverter.ConvertV1 should have comment or be unexported
pkg/webhook/handlers/conversion.go:105:1: exported method SchemeBackedConverter.ConvertV1Beta1 should have comment or be unexported
pkg/webhook/server/server.go:77:6: exported type Server should have comment or be unexported
pkg/webhook/server/server.go:121:1: exported method Server.Run should have comment or be unexported
pkg/webhook/server/util/convert.go:32:1: exported function Convert_v1beta1_AdmissionReview_To_admission_AdmissionReview should have comment or be unexported
pkg/webhook/server/util/convert.go:32:6: don't use underscores in Go names; func Convert_v1beta1_AdmissionReview_To_admission_AdmissionReview should be ConvertV1beta1AdmissionReviewToAdmissionAdmissionReview
pkg/webhook/server/util/convert.go:46:1: exported function Convert_v1beta1_AdmissionRequest_To_admission_AdmissionRequest should have comment or be unexported
pkg/webhook/server/util/convert.go:46:6: don't use underscores in Go names; func Convert_v1beta1_AdmissionRequest_To_admission_AdmissionRequest should be ConvertV1beta1AdmissionRequestToAdmissionAdmissionRequest
pkg/webhook/server/util/convert.go:62:1: exported function Convert_admission_AdmissionReview_To_v1beta1_AdmissionReview should have comment or be unexported
pkg/webhook/server/util/convert.go:62:6: don't use underscores in Go names; func Convert_admission_AdmissionReview_To_v1beta1_AdmissionReview should be ConvertAdmissionAdmissionReviewToV1beta1AdmissionReview
pkg/webhook/server/util/convert.go:76:1: exported function Convert_admission_AdmissionRequest_To_v1beta1_AdmissionRequest should have comment or be unexported
pkg/webhook/server/util/convert.go:76:6: don't use underscores in Go names; func Convert_admission_AdmissionRequest_To_v1beta1_AdmissionRequest should be ConvertAdmissionAdmissionRequestToV1beta1AdmissionRequest
pkg/controller/acmeorders/util.go:84:6: func hashChallenge is unused (U1000)
pkg/controller/certificaterequests/approver/approver.go:72:14: x = append(y) is equivalent to x = y (SA4021)
pkg/controller/certificates/trigger/policies/policies.go:121:26: unnecessary use of fmt.Sprintf (S1039)
pkg/controller/ingress-shim/sync.go:36:2: package "github.com/jetstack/cert-manager/pkg/logs" is being imported more than once (ST1019)
pkg/controller/ingress-shim/sync.go:37:2: other import of "github.com/jetstack/cert-manager/pkg/logs"
pkg/controller/ingress-shim/sync.go:125:24: error strings should not be capitalized (ST1005)
pkg/controller/ingress-shim/sync.go:301:2: unnecessary assignment to the blank identifier (S1005)
pkg/internal/apis/acme/v1alpha3/zz_generated.conversion.go:695:2: out.KeyAlgorithm is deprecated: keyAlgorithm exists for historical compatibility reasons and should not be used. golang/x/crypto/acme hardcodes the algorithm to HS256 so setting this field will have no effect. See https://github.com/jetstack/cert-manager/issues/3220#issuecomment-809438314  (SA1019)
pkg/internal/apis/acme/v1alpha3/zz_generated.conversion.go:695:43: in.KeyAlgorithm is deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme. +optional  (SA1019)
pkg/internal/apis/acme/v1alpha3/zz_generated.conversion.go:710:2: out.KeyAlgorithm is deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme. +optional  (SA1019)
pkg/internal/apis/acme/v1alpha3/zz_generated.conversion.go:710:47: in.KeyAlgorithm is deprecated: keyAlgorithm exists for historical compatibility reasons and should not be used. golang/x/crypto/acme hardcodes the algorithm to HS256 so setting this field will have no effect. See https://github.com/jetstack/cert-manager/issues/3220#issuecomment-809438314  (SA1019)
pkg/internal/istio/istio_deepcopy.gen.go:36:2: redundant return statement (S1023)
pkg/internal/istio/istio_deepcopy.gen.go:69:2: redundant return statement (S1023)
pkg/issuer/acme/dns/acmedns/acmedns.go:55:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:43:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:76:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:82:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:86:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:101:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:104:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:109:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:118:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:121:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:126:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:134:15: error strings should not be capitalized (ST1005)
pkg/issuer/acme/dns/clouddns/clouddns.go:234:14: error strings should not be capitalized (ST1005)
pkg/issuer/venafi/client/request.go:41:27: error strings should not be capitalized (ST1005)
pkg/issuer/venafi/client/request.go:41:27: error strings should not end with punctuation or a newline (ST1005)
pkg/issuer/venafi/client/request.go:143:5: ineffective break statement. Did you mean to break out of the outer loop? (SA4011)
pkg/issuer/venafi/client/request.go:143:5: redundant break statement (S1023)
pkg/webhook/handlers/conversion.go:57:15: error strings should not be capitalized (ST1005)
pkg/webhook/handlers/conversion.go:78:16: error strings should not be capitalized (ST1005)
pkg/webhook/handlers/conversion.go:83:16: error strings should not be capitalized (ST1005)

Could we use a common .golangci.yml file (documentation) that we check-in into the repo?
linters:
  disable-all: true
  enable:
    # Default linters that are run when golangci-lint is run without any
    # .golangci.yml configuration. To find it out, run 'golangci-lint
    # linters' without a .golangci.yml.
    - deadcode
    - errcheck
    - gosimple
    - govet
    - ineffassign
    - staticcheck
    - structcheck
    - typecheck
    - unused
    - varcheck
    # Linters that the cert-manager team decided to opt-in.
    - golint
    #- godot # A sentence starts with a capital letter and ends with a dot.

run:
  skip-dirs:
    - pkg/client
  skip-files:
    - zz_generated

Unpopular opinion: I think that enforcing the rule "All exported functions should have a comment" sucks. Although I agree that we should enforce having comments on non-trivial functions, I think that having a tool on this specific rule is counter-productive.  Notably, the golangci-lint team decided to disable this this rule (https://github.com/golangci/golangci-lint/issues/21).
Although I am all-in for well commented code, I think the "is this function documented enough?" should be enforced at PR time. Otherwise, we will end up with piles of useless/paraphrasing comments such as
// Get the secret.
func Secret() *corev1.Secret {
}

or even worse:
// ...
func Secret() *corev1.Secret {
}

IMO, we have many functions in test/unit/gen that don't really need comments (too self-explanatory).

With https://github.com/jetstack/cert-manager/pull/3963 merged, I think this issue can be closed now; the party was good, I think, and there's definitely stuff we can do in the future to integrate static analysis tools further.


Complete rewrite

Using angular and angular material. Questions? :P This also fixes the majority of the open issues.
edit: Sorry, didn't realize I was supposed to use the development branch till just now.

Thanks!


release notes for v23.1.0-alpha.3

Preview:

v.23.1.0-alpha.3

Thanks @kathancox for the thorough review, let me know if there are any other changes needed!


Csv Import

This closes #143 closes #146 and closes #155
This PR adds in the ability to import in Storage Locations, Partner Agencies, Dropoff Locations, and Diaper Drive Participants through the uploading of spreadsheets. It only allows the uploading if there are none present.
With a partner agency present import button doesn't show up:

With no partner agencies the import button is visible:

Clicking that button opens a modal with import instructions:

Results using dummy data:

Storage locations, Dropoffs, and Diaper Drives work in an identical way.

Also, the info in the welcome letter isn't super good. We should ask @pdxdiaperbank for language/wording of that. I imagine that there are certain terms that diaper banks use that we developers are not aware of.

NICE
:100:


Testing on Expo Go

Hi, I am just starting with using @pushy-me  and I was wondering if there are instructions on how to set this up with Expo Go client to do some initial POCs.  Or do we need to actually deploy our app to the store before we can test things out.

Hi @trajano,
Thanks for reaching out.
Unfortunately, Expo and Expo Go are still not currently supported by Pushy. We currently cannot support Expo apps (detached or not) because Headless JS tasks are not yet supported in ExpoKit and are currently broken:
https://forums.expo.io/t/appregistry-registerheadlesstask/15425
We weren't able to find a solution to wake your app's JS code when the MainActivity is not running, in order to receive the notification and execute desirable JS code to handle it.
Therefore, until Expo adds support for headless JS (which means adding support getReactNativeHost() in HeadlessJsTaskService) we cannot support ExpoKit RN projects.
I apologize but at this time we can only support pure React Native projects and not ExpoKit due to this broken upstream functionality.

I wrote a custom plugin for expo managed builds. It just include configs based on Pushy documentation for react native
https://gist.github.com/farhadeidi/9ec4d591ea50aec15422954ef86083ab

I just wrote a simple Expo plugin to handle Pushy.me in expo managed build. I wrote it based on react-native documentation in website and it works perfectly
@pushy
https://gist.github.com/farhadeidi/9ec4d591ea50aec15422954ef86083ab


fix(logger): remove connection string from logs

Summary
Remove the connection string from logs
Context
The connection strings are exposed once the connection is established.

Pull Request Test Coverage Report for Build 454224327

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 88.889%

Totals

Change from base Build 410085149:
0.0%

Covered Lines:
13

Relevant Lines:
14

💛  - Coveralls


[LiveComponent] UnexpectedTypeException when adding children with focus in put

Hi,
I have an embeded form with Live Component.
When i want to add a children item with a focus input, an error occured.
I made a video for more informations.
Tell me if you need some code to understand that.
https://user-images.githubusercontent.com/47665701/210760261-862e238f-ceff-40af-8d78-cd47583fc446.mov

Hi released version 2.7 resolve this issue. Do you still want some code to understand it?


Feature Request: please add the option to clear all filters with one click.

Maybe in front of English Or at the end of  Expand ? Thank you.

I think it would be better to use the reset button.

When only filters are chosen, the reset is not available.

Not implement yet, just saying using the reset button would be better.

Available since v0.13.0


redis 3.0 cluster , lettuce can not auto failover

redis version 3.2 and cluster  is build with official solution
https://redis.io/topics/cluster-tutorial
i create the cluster:
master A and slave a
master B and slave b
master C and slave c
when my application started ,lettuce will auto create connect with master node A,B,C.
but when i killed node A , lettuce can not failover to a( a has upgrade to Master this time)
lettuce will always send command to A node, but the problem is, node A is down.
As a java redis client ，it should auto update the cluster infomation, and auto reconnect to the new master node a.
I wanted to make sure that I wasn't doing something wrong?

Please enable topology refresh. See the reference documentation for further details.

@mp911de thanks
will it recreate all connection when refresh triggerd?
or it just refreshing the master-slave meta information ?
and i think, if an connection error is detected(or reach max-count in a time window ), a refresh is performed immediately, which is a better solution.
What's your opinion?

another question is in spring data redis, how can i define my ClientOptions.
i trace the source code , i cannot find the place to inject the configuration
LettuceConnectionConfiguration:
private LettuceClientConfiguration getLettuceClientConfiguration(
ClientResources clientResources, Pool pool) {
LettuceClientConfigurationBuilder builder = createBuilder(pool);
applyProperties(builder);
if (StringUtils.hasText(this.properties.getUrl())) {
customizeConfigurationFromUrl(builder);
}
builder.clientResources(clientResources);
customize(builder);
return builder.build();
}


Custom covers are not loaded

Steps to reproduce

Set a custom cover
Reload the app

Expected behavior
Custom covers should be retained
Actual behavior
For some reason, the custom covers are not loading. Instead, the library thumbnail only shows the main color extracted from the cover. It comes up empty on the item's page.
Crash logs
No response
Yōkai version
1.7.13
Android version
Android 14
Device
Samsung Galaxy S23 Ultra
Other details
I only tested this with the local source. It had been working properly for 7 months until the update to 1.7.13. It might also be a cache problem. I will clear cover cache and come back to you.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a short but informative title.
[X] If this is an issue with an extension, or a request for an extension, I should be contacting the extensions repository's maintainer/support for help.
[X] I am reporting an issue exclusive to this fork. I have also checked that is not an issue on the main version of Mihon
[X] I have tried the troubleshooting guide.
[X] I have updated the app to version 1.7.13.
[X] I have updated all installed extensions.
[ ] I have admitted that I am a clown by having checked this box, as I have not read these acknowledgements.
[X] I have filled out all of the requested information in this form.

Clearing the cached covers doesn't fix it.

Actually, I figured out that I can't read the local source either. I expect this to be fixed by the folder structure change planned in your next update.


[G3. Check lists] Onboarding check list for ODAHU QA engineer

Create an onboarding check-list for the ODAHU QA engineer where all services/tools, documents and environments that are relevant for ODAHU testing are specified

Please place it here: https://kb.epam.com/display/EPMCBDCC/[ODAHU]+Onboarding+process


Add the-great-consensus-cleanup-revival review to bitcoin-explained

This PR adds the-great-consensus-cleanup-revival transcript review to the bitcoin-explained directory.

Thank you for your submission. It appears that the transcript was submitted without any edits or changes made. Please ensure that you review and make necessary edits before submitting your work in the future.


Fix various bugs with connection pool handling

Adding requests to the queue used wrong parameters.
onCloseOrRemove() didn't remove sockets from the pool.
When using TLS, the pool contained the underlying connection instead
of the TLS wrapped connection, causing connections to never be
removed.
When a connection was closed and removeSocket() created a new socket
to process requests in the queue, the event handlers were not attached
to the new socket, causing the new socket to not be removed from the
pool when it closed.

That is the cause of https://bugs.debian.org/801897 npm 1.4.21 on Debian Jessie is unable to use a proxy.


Add a link above the grid that links to a KeyStrokeHelp page

Closing as focus is now switched towards basic content accessibility instead of building rich widgets.


Make logo for Bot

Need a Logo for ICC-Discord-Bot
The Bot's logo should describe the collaborative work of ICC & Pragmatic Programmer on this project by using the logo of ICC & Pragmatic Programmer.
Todo:

[x] Assign issue to someone
[x] Provide logos and theme

Discuss in discord server: https://discord.gg/bM9Wy6Yzn2

I'd be interested in taking this issue. I joined the discord and I see the pragmatic programmer logo, but I am not sure about the ICC logo. Can you provide a link?

Hey @Steffanic 👋
Thank you for showing interest!
ICC is an Open Source Competition which is being conducted by TechsAhead.
In order to contribute to this repo, you have to sign up on Devfolio with referral code: ICC016
Let me know once you're done.
Thanks 😃

I'd like to do this.

Assigned to you 😃
Create assets/img folder(s) and upload logo there.
waiting for your PR 😸

Resolved by @ibhavika in #7


We should also save controllerUrl into ~/.mystack/config

We should save it along with the token and also log a info like this:
mystack configuration persisted into ~/.mystack/config.json

closed in https://github.com/topfreegames/mystack-cli/commit/2dfb0727f2a580a52193003b0a7ebe038c305286


🌱 Minor cleanup for e2e tests

What this PR does / why we need it:
Addresses minor cleanup comments made here: https://github.com/kubernetes-sigs/cluster-api-addon-provider-helm/pull/147#pullrequestreview-1852597431
Which issue(s) this PR fixes:
N/A

You might need to rebase off of #163 which should fix the e2e job!

/lgtm
/approve


Add ARc to README

Hey, guys. Nice job you've done here.
I've just migrated a project from Radium to styled-components and added it to README.
Repo: https://github.com/diegohaz/arc
Demo: https://diegohaz.github.io/arc

Awesome, looks great! I'll share it on Twitter later today 👍

Cool project!! I hadn't seen that trick with webpack's alias and having a bunch of `export * from './file', might give that a try in my next project!
Btw, how does this syntax feel for you (picked from here):
/* Hero.js */

const Hero = styled((props) => {
  return (
    <div>{* ... *}</div>
  )
})`
  all: the;
  css: here;
`

export default Hero

I've tended to use this instead, which to me feels better cause I like my css above my renderer, so I thought I'd share it.
/* Hero.js */

const Hero = styled.div`
  all: the;
  css: here;
`

export default props => (
  <Hero>{* ... *}</Hero>
)

Either works though 👍

@geelen I'm still looking for the best way to do that 😄
I will try what you said later, looks nicer and probably will solve a problem I had with tests:
it('renders button by default', () => {
  // needs to shallow twice because my Button is wrapped inside StyledComponent
  const wrapper = shallow(<Button />).shallow()
  expect(wrapper.find('button').length).toBeGreaterThan(0)
})

@geelen How would you deal with a component that renders different element based on the props passed? example:
const Button = ({ kind, disabled, type, ...props, to, href }) => {
  if (href || to) {
    return <Link {...props} />
  }
  return <button {...props} type={type} disabled={disabled} />
}

I need to pass the styles to both of them.


⚠ GitLab Server has degraded performance

In 3954590, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 3027 ms

Resolved: GitLab Server performance has improved in c1cf219.


AST: Don't print satisfied protocol requirements when dumping Decls

This can trigger recursive conformance checking, which can change
how associated type inference behaves due to ordering issues, as
well as cause crashes.
Dumping should be idempotent.

@swift-ci Please smoke test

@swift-ci Please smoke test


Fixes for Makefile issues 1534 and 1609

Makefile fix rollup:  Fixes #1534 and #1609
Description
The makefile has been enhanced in two primary ways

We now make unit-test depend on gotools so we can ensure that the protoc-gen-go prerequisite is met before running the tests (Issue #1609).
We moved unit-test execution to a script so that we can instrument proper cleanup of the docker-based peer (Issue #1534)

Motivation and Context
Bug squashing
How Has This Been Tested?
"make unit-test" has been driven through various scenarios, such as making sure "make clean unit-test" properly rebuild tools, and that unit-test failures do not leave the peer running.
Checklist:

[x] I have added a Signed-off-by
[x] Either no new documentation is required by this change, OR I added new documentation
[x] Either no new tests are required by this change, OR I added new tests
[] I have run goimports, go vet, and golint. I have cleaned up all valid errors and warnings in code I have added or modified. These tools may generate false positives.  The goal is clean, consistent, and readable code.

Signed-off-by: Greg Haskins<EMAIL_ADDRESS>

@srderson ideally fast track this please:  some users have started running into these bugs.

LGTM. Tested locally and confirmed both #1534 and #1609 are resolved.


Document “finalizer”

This is a Feature Request

What would you like to be added

Add a glossary entry for finalizer
and/or improve https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ to have a section specifically that explains what a finalizer is.

Why is this needed
Various pages talk about finalizers, and cluster operators need to understand what these are.
Comments
Ideally (in my view) there should be something with a stable URI, to help with inbound hyperlinks.

If you want to help but need to learn more about finalizers, https://thenewstack.io/deletion-garbage-collection-kubernetes-objects/ (by @moretea) looks like a good starting point.
That page also might be relevant for a whatsnext hyperlink; it's got some level of CNCF blessing too.

If you're working on this issue, consider putting https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#advanced-topics in the whatsnext list. That's mainly about finalizers for CRDs.

/kind feature

Also see #4510

/priority backlog

/remove-lifecycle stale
/help

/remove-lifecycle stale


Adding option for setting TimeoutStartSec in the systemd unit file

We find that our cluster machines can't always restart within the default timeout because the startup can take too long leading to a "restart loop" of the service.
Restart loop:
Jan 06 21:42:31 members-etcd-0 etcd[986]: recovered store from snapshot at index 415335351
Jan 06 21:42:31 members-etcd-0 etcd[986]: restore compact to 209466567
Jan 06 21:43:20 members-etcd-0 etcd[986]: restarting member 833678c85fd850b6 in cluster decccb21f36aa265 at commit index 41
Jan 06 21:43:20 members-etcd-0 bash[986]: raft2022/01/06 21:43:20 INFO: 833678c85fd850b6 switched to configuration voters=(
Jan 06 21:43:20 members-etcd-0 bash[986]: raft2022/01/06 21:43:20 INFO: 833678c85fd850b6 became follower at term 385
Jan 06 21:43:20 members-etcd-0 bash[986]: raft2022/01/06 21:43:20 INFO: newRaft 833678c85fd850b6 [peers: [5a64ff1b0d93c079,
Jan 06 21:43:20 members-etcd-0 etcd[986]: enabled capabilities for version 3.4
Jan 06 21:43:20 members-etcd-0 etcd[986]: added member 5a64ff1b0d93c079 [http://<IP_ADDRESS>:2380] to cluster decccb21f36aa26
Jan 06 21:43:20 members-etcd-0 etcd[986]: added member 833678c85fd850b6 [http://<IP_ADDRESS>:2380] to cluster decccb21f36aa26
Jan 06 21:43:20 members-etcd-0 etcd[986]: added member c66fa42b03d931eb [http://<IP_ADDRESS>:2380] to cluster decccb21f36aa265
Jan 06 21:43:20 members-etcd-0 etcd[986]: set the cluster version to 3.4 from store
Jan 06 21:43:20 members-etcd-0 etcd[986]: simple token is not cryptographically signed
Jan 06 21:43:20 members-etcd-0 etcd[986]: restore compact to 209466567
Jan 06 21:43:41 members-etcd-0 systemd[1]: etcd.service: Start operation timed out. Terminating.
Jan 06 21:43:41 members-etcd-0 systemd[1]: etcd.service: Failed with result 'timeout'.
Jan 06 21:43:41 members-etcd-0 systemd[1]: Failed to start Etcd Server.
-- Subject: Unit etcd.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit etcd.service has failed.
--
-- The result is RESULT.

Given just a bit more time before timeout, we are successful:
Jan 06 21:43:49 members-etcd-0 etcd[1645]: recovered store from snapshot at index 415335351
Jan 06 21:43:49 members-etcd-0 etcd[1645]: restore compact to 209466567
Jan 06 21:44:39 members-etcd-0 etcd[1645]: restarting member 833678c85fd850b6 in cluster decccb21f36aa265 at commit index 4
Jan 06 21:44:39 members-etcd-0 bash[1645]: raft2022/01/06 21:44:39 INFO: 833678c85fd850b6 switched to configuration voters=
Jan 06 21:44:39 members-etcd-0 bash[1645]: raft2022/01/06 21:44:39 INFO: 833678c85fd850b6 became follower at term 385
Jan 06 21:44:39 members-etcd-0 bash[1645]: raft2022/01/06 21:44:39 INFO: newRaft 833678c85fd850b6 [peers: [5a64ff1b0d93c079
Jan 06 21:44:39 members-etcd-0 etcd[1645]: enabled capabilities for version 3.4
Jan 06 21:44:39 members-etcd-0 etcd[1645]: added member c66fa42b03d931eb [http://<IP_ADDRESS>:2380] to cluster decccb21f36aa26
Jan 06 21:44:39 members-etcd-0 etcd[1645]: added member 5a64ff1b0d93c079 [http://<IP_ADDRESS>:2380] to cluster decccb21f36aa2
Jan 06 21:44:39 members-etcd-0 etcd[1645]: added member 833678c85fd850b6 [http://<IP_ADDRESS>:2380] to cluster decccb21f36aa2
Jan 06 21:44:39 members-etcd-0 etcd[1645]: set the cluster version to 3.4 from store
Jan 06 21:44:39 members-etcd-0 etcd[1645]: simple token is not cryptographically signed
Jan 06 21:44:39 members-etcd-0 etcd[1645]: restore compact to 209466567
Jan 06 21:45:30 members-etcd-0 etcd[1645]: starting peer 5a64ff1b0d93c079...
Jan 06 21:45:30 members-etcd-0 etcd[1645]: started HTTP pipelining with peer 5a64ff1b0d93c079

@andrewrothstein is there anything I can do to make this more amenable to being merged?

my humblest apologies for closing this abruptly. I migrated the master branch to main and the net effect must've been the canceling of ur PR. I reinstated it, enhanced it and rebased it onto main. For your consideration: https://github.com/andrewrothstein/ansible-etcd_cluster/commit/78c2ae5f9f7fb9e647a3a8a4c509e876504b85de.
I tagged and published this as v3.0.2 to the galaxy. Thanks for caring enough to open a PR!


Transmitting objects cannot see other transmitting objects

Hi , The following image shows the effect in Codesandbox,It cannot see other transparent objects

you need to create unique FBO/webglRendertarget for each mesh
share the sandbox , i'll edit it
I'll add a storybook example later

you need to create unique FBO/webglRendertarget for each mesh您需要为每个网格创建唯一的 FBO/webglRendertarget
share the sandbox , i'll edit it共享沙盒，我会编辑它
I'll add a storybook example later我稍后会添加一个故事书示例

Sorry for the late reply. I'll try what you said. Thanks


feat: Add jquery plugin tuiCalendar

Please check if the PR fulfills these requirements

[ ] It's submitted to right branch according to our branching model
[ ] It's right issue type on title
[ ] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)
[ ] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes/features)
[ ] Docs have been added/updated (for bug fixes/features)
[ ] It does not introduce a breaking change or has description for the breaking change

Description
Add a jquery plugin for tui-calendar

Thank you for your contribution to TOAST UI product. 🎉 😘 ✨

@kyuwoo-choi Can you review this jquery plugin?


[Arma 3 & DayZ] Fix SteamCMD error checking

Description
Added libcurl as an excluded keyword for error checking. Was causing mod-timeout errors to be misreported as an unknown error.
All Submissions:

[x] Have you ensured there aren't other open Pull Requests for the same update or change?
[x] Have you created a new branch for your changes and PR from that branch and not from your master branch?

Just posting the original error here in case I need to come back and reference it:


API Access to Watchlists

Anyone come up with a way to create/modify/retrieve watchlists?

a

Hi,
I have came up with this code to get some watchlist , not a professional code snippet , but does the work .  This might be helpful
accountid= wb.get_account_id()
watlist = wb.get_watchlists()
print(watlist)

wlt = pd.DataFrame(watlist)
df2 = wlt.set_index("name", drop = False)
df2 = df2.loc["ElectronicVechile", : ]
df2 = df2['tickerList']
df3 = pd.DataFrame(df2)

df3 = df3['symbol']
print(df3)
for i in df3.items():

    print(df3.iloc[:-1])```


make local/remote need the COMMIT-SHA macro

The local and remote targets of the Makefile template define the SNAPSHOT-LINK text macro, which used to define the "snapshot as of this commit" link in the spec metadata. tabatkins/bikeshed#1635, however, removed any usage of that macro, instead using a new COMMIT-SHA macro for the LS status, which those Makefile targets don't define.
This would be solved by removing the SNAPSHOT-LINK definition and adding one for COMMIT-SHA defining it to be the empty string, for example. However, this would create a link pointing to ./commit-snapshots//, which isn't ideal.

A bogus link is the plan in #7. I think that's fine personally. We don't support a full local deploy after all.