tektoncd/pipeline

struct `pipelineTask` has a mix value and pointer receivers

Open

#7,092 opened on Sep 5, 2023

View on GitHub
 (6 comments) (1 reaction) (1 assignee)Go (1,943 forks)auto 404
area/apigood first issuekind/bug

Repository metrics

Stars
 (9,013 stars)
PR merge metrics
 (PR metrics pending)

Description

We have a mix of value and pointer receiver functions for pipelineTask:

grep -r "func (pt \*PipelineTask)" pkg/apis/pipeline/v1/
pkg/apis/pipeline/v1//pipeline_types.go:func (pt *PipelineTask) IsMatrixed() bool {
pkg/apis/pipeline/v1//pipeline_types.go:func (pt *PipelineTask) TaskSpecMetadata() PipelineTaskMetadata {
pkg/apis/pipeline/v1//pipeline_defaults.go:func (pt *PipelineTask) SetDefaults(ctx context.Context) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateBetaFields(ctx context.Context) *apis.FieldError {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateMatrix(ctx context.Context) (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateResultsFromMatrixedPipelineTasksNotConsumed(matrixedPipelineTasks sets.String) (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateWorkspaces(workspaceNames sets.String) (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) extractAllParams() Params {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateExecutionStatusVariablesDisallowed() (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt *PipelineTask) validateExecutionStatusVariablesAllowed(ptNames sets.String) (errs *apis.FieldError) {
grep -r "func (pt PipelineTask)" pkg/apis/pipeline/v1/ 
pkg/apis/pipeline/v1//pipeline_types.go:func (pt PipelineTask) HashKey() string {
pkg/apis/pipeline/v1//pipeline_types.go:func (pt PipelineTask) Deps() []string {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) ValidateName() *apis.FieldError {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) Validate(ctx context.Context) (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) validateEmbeddedOrType() (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) validateRefOrSpec() (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) validateCustomTask() (errs *apis.FieldError) {
pkg/apis/pipeline/v1//pipeline_validation.go:func (pt PipelineTask) validateTask(ctx context.Context) (errs *apis.FieldError) {

Such usage is not recommended by the Go documentation:

Struct PipelineTask has methods on both value and pointer receivers. Such usage is not recommended by the Go Documentation. 

Evaluate which one is the best approach and convert all of them to one common syntax.

/kind bug

Contributor guide