Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check whether the tag name is duplicate or not #706

Merged
merged 6 commits into from Jul 13, 2022

Conversation

git-hulk
Copy link
Contributor

@git-hulk git-hulk commented Jul 13, 2022

CHECKLIST

  • Please, describe in details what's your motivation for this PR
  • Did you add tests?
  • Does your code follows the coding style of the rest of the repository?

This closes #705

@chavacava
Copy link
Collaborator

Hi @git-hulk, thanks for the PR
I've made minor refactoring and added some test cases.
One of the test cases fails. When a field has a tag with two keys (for example json and yaml) and these keys have the same name... the rule generates a failure (but it should not) For example, in the following struct, the rule will identify chartName as duplicated.

type HelmChartArgs struct {
	ChartName        string                 `json:"chartName,omitempty" yaml:"chartName,omitempty"`
}

@git-hulk
Copy link
Contributor Author

Hi @git-hulk, thanks for the PR I've made minor refactoring and added some test cases. One of the test cases fails. When a field has a tag with two keys (for example json and yaml) and these keys have the same name... the rule generates a failure (but it should not) For example, in the following struct, the rule will identify chartName as duplicated.

type HelmChartArgs struct {
	ChartName        string                 `json:"chartName,omitempty" yaml:"chartName,omitempty"`
}

Got it, my bad. Will fix this case.

@git-hulk
Copy link
Contributor Author

@chavacava Fixed, thanks for your good catch.

@chavacava
Copy link
Collaborator

@git-hulk I've fixed a problem with the check on protobuf tags

@chavacava chavacava merged commit 8dd3945 into mgechev:master Jul 13, 2022
@chavacava
Copy link
Collaborator

@git-hulk thanks for the PR

If you are motivated ... there are still some tag formats to add to the rule :)

https://github.com/golang/go/wiki/Well-known-struct-tags#list-of-well-known-struct-tags

@git-hulk
Copy link
Contributor Author

@git-hulk thanks for the PR

If you are motivated ... there are still some tag formats to add to the rule :)

https://github.com/golang/go/wiki/Well-known-struct-tags#list-of-well-known-struct-tags

Sure, I’ll be happy to do that

subham-deepsource pushed a commit to DeepSourceCorp/revive that referenced this pull request Aug 5, 2022
* Check whether the tag name is duplicate or not

* - minor refactoring
- continues checking tag even if name is repeated

* adds test cases for duplicated tag names

* adds test case with two tag types (json & yaml)

* Fix allow the same tag name in different tag key

* fix checks on protobuf tag names

Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
Signed-off-by: subham sarkar <subham@deepsource.io>
subham-deepsource pushed a commit to DeepSourceCorp/revive that referenced this pull request Aug 5, 2022
* Check whether the tag name is duplicate or not

* - minor refactoring
- continues checking tag even if name is repeated

* adds test cases for duplicated tag names

* adds test case with two tag types (json & yaml)

* Fix allow the same tag name in different tag key

* fix checks on protobuf tag names

Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
Signed-off-by: subham sarkar <subham@deepsource.io>
subham-deepsource pushed a commit to DeepSourceCorp/revive that referenced this pull request Aug 5, 2022
* Check whether the tag name is duplicate or not

* - minor refactoring
- continues checking tag even if name is repeated

* adds test cases for duplicated tag names

* adds test case with two tag types (json & yaml)

* Fix allow the same tag name in different tag key

* fix checks on protobuf tag names

Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
Signed-off-by: subham sarkar <subham@deepsource.io>
subham-deepsource added a commit to DeepSourceCorp/revive that referenced this pull request Aug 5, 2022
* Separating lib from cli (mgechev#655)

* Separating lib from cli

* Renamed NewRevive to New

* Added GetLintFailures helper function

* Moved formatter to call to format since that's when it's needed

* makes fields of Revive struct non-public

* minor modifs in tests: remove unnamed constats

* Added lint package management to lint command

* README message for using revive as a library

* README formatting

* Removed unused method

* Slightly improved wording in README

* Handling format errors

* Renaming file to better reflect intent

* Refactoring pattern usage

* README heads

* renames excludePaths into excludePatterns

Co-authored-by: Bernardo Heynemann <bernardo.heynemann@coinbase.com>
Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
Signed-off-by: subham sarkar <subham@deepsource.io>

* Update the contributors list

Signed-off-by: subham sarkar <subham@deepsource.io>

* Remove debugging output (mgechev#672)

Noticed during migration from our heavily modified "go-lint" to "revive" that there is an additional line printed. I am unsure that the convention for this project is on this, we do not allow adding such a call.

Signed-off-by: subham sarkar <subham@deepsource.io>

* Remove built-in types that existing only for the Go documentation (mgechev#675)

Since these types only exist for documenting Go's standard library there
should be no reason to mark them.

Closes mgechev#673

Signed-off-by: subham sarkar <subham@deepsource.io>

* Fix/677 (mgechev#678)

Signed-off-by: subham sarkar <subham@deepsource.io>

* Lint cleanup (mgechev#679)

Signed-off-by: subham sarkar <subham@deepsource.io>

* add rule datarace (mgechev#683)

Signed-off-by: subham sarkar <subham@deepsource.io>

* Fixes issue mgechev#619 imports-blacklist support regex (mgechev#684)

* Fixes issue mgechev#619 imports-blacklist support regex

* refactors method name and error message

* restores original test cases

Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
Signed-off-by: subham sarkar <subham@deepsource.io>

* fix(var-naming): set node to package name for underscore in package name (mgechev#689)

Setting the entire file AST as the node causes golangci-lint to print
the entire file source as the context, and line and column numbers set
to 1. Point to the package name node instead.

Closes mgechev#688

Signed-off-by: subham sarkar <subham@deepsource.io>

* fix(deps): update module golang.org/x/tools to v0.1.11 (mgechev#696)

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Signed-off-by: subham sarkar <subham@deepsource.io>

* fix(deps): update github.com/chavacava/garif digest to 908ad76 (mgechev#695)

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Signed-off-by: subham sarkar <subham@deepsource.io>

* fix(receiver-naming): distinguish types with parameters (mgechev#692)

* fix(receiver-naming): distinguish types with parameters

* chore: run tests using supported Go versions matrix

Signed-off-by: subham sarkar <subham@deepsource.io>

* Make package comment more confident (mgechev#694)

Signed-off-by: subham sarkar <subham@deepsource.io>

* fix(deps): update github.com/chavacava/garif digest to d6fd61e (mgechev#699)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: subham sarkar <subham@deepsource.io>

* fix issue mgechev#691 (mgechev#700)

Signed-off-by: subham sarkar <subham@deepsource.io>

* fix(deps): update github.com/chavacava/garif digest to 9351721 (mgechev#702)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: subham sarkar <subham@deepsource.io>

* Allow to customize user functions in rule `error-strings` (mgechev#703)

* Allow to customize user functions in rule `error-strings`

* Rollback the Available Rules table format in README

* adds memoization of the rule's configuration

Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
Signed-off-by: subham sarkar <subham@deepsource.io>

* doc: add devlake to README usage (mgechev#704)

Co-authored-by: linyh <yanghui@meri.co>
Signed-off-by: subham sarkar <subham@deepsource.io>

* Check whether the tag name is duplicate or not (mgechev#706)

* Check whether the tag name is duplicate or not

* - minor refactoring
- continues checking tag even if name is repeated

* adds test cases for duplicated tag names

* adds test case with two tag types (json & yaml)

* Fix allow the same tag name in different tag key

* fix checks on protobuf tag names

Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
Signed-off-by: subham sarkar <subham@deepsource.io>

* fix mgechev#670 (mgechev#708)

Signed-off-by: subham sarkar <subham@deepsource.io>

* Fix module name

Signed-off-by: subham sarkar <subham@deepsource.io>

Co-authored-by: Bernardo Heynemann <heynemann@gmail.com>
Co-authored-by: Bernardo Heynemann <bernardo.heynemann@coinbase.com>
Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
Co-authored-by: mgechev <mgechev@gmail.com>
Co-authored-by: Markus Zimmermann <markus.zimmermann@symflower.com>
Co-authored-by: Markus Zimmermann <markus.zimmermann@nethead.at>
Co-authored-by: Yudai Takada <13041216+ydah@users.noreply.github.com>
Co-authored-by: Ville Skyttä <ville.skytta@iki.fi>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Ivan Trubach <mr.trubach@icloud.com>
Co-authored-by: okhowang <3352585+okhowang@users.noreply.github.com>
Co-authored-by: hulk <hulk.website@gmail.com>
Co-authored-by: likyh <l@likyh.com>
Co-authored-by: linyh <yanghui@meri.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Does it make sense to check the duplicate struct tag name?
2 participants