Comments (9)
From @vaibhavsingh97 on February 16, 2018 12:15
Hi @krousey Can I take this issue? Any resources to fix this issue will be a great help :)
from cluster-api.
From @krousey on February 16, 2018 17:42
@vaibhavsingh97 Sure! go vet and go fmt would be the easiest to start with, and they cover areas that aren't someone protected against by our current CI build and test.
I started a CI scripts directory here: https://github.com/kubernetes/kube-deploy/tree/master/scripts
Here are the PRs I submitted to turn on build and testing in CI and on PRs. Hopefully that will be instructive enough.
- kubernetes-retired/kube-deploy#584
- kubernetes-retired/kube-deploy#590
- kubernetes/test-infra#6761
- kubernetes/test-infra#6787
- kubernetes/test-infra#6792
Also, if you're running the scripts locally, I would recommend Go 1.9+ because they changed the way go tools handle the vendor directory to make it easier.
from cluster-api.
@alvaroaleman did some of this in #589 and go vet
is taken care of by the migration to kubebuilder.
from cluster-api.
@roberthbailey Regarding a Verify vendor dependencies are correct
, there is still kubernetes/test-infra#9874 open.
When that is done I think the only missing part is the gofmt
, we execute it in the presubmits but we don't fail a presubmit if it creates a diff
from cluster-api.
Spell checkers would probably be handy - other k repos use misspell https://github.com/kubernetes/kubernetes/blob/master/hack/verify-spelling.sh
misspell is good at not having false positives, but only detects common misspellings. Other ones suggested in the meeting: aspell
from cluster-api.
Some linting would be useful. For example, to ensure errors aren't ignored.
@randomvariable suggested the "meta-linter" https://github.com/golangci/golangci-lint, which is currently used in the AWS provider.
from cluster-api.
@roberthbailey @rsdcastro Will take this. I think meta-linter is a good approach for that as it's runs a lot of checks including go vet, fmt.
from cluster-api.
Will take this.
Cool.
From the AWS set up, there's this in our build.bazel:
https://github.com/kubernetes-sigs/cluster-api-provider-aws/blob/master/BUILD.bazel#L67
and https://github.com/kubernetes-sigs/cluster-api-provider-aws/blob/master/.golangci.yml defines our current linters.
I tried a whole bunch of linters, this came out best because it's a singularly compiled binary, and some of the other metalinters shell out, and it's difficult to control versioning and installation of dependencies in a CI context when they do that.
from cluster-api.
I think now that we have vendor and bazel verification, this issue is almost there to be closed. The only thing missing is gometalinter.
from cluster-api.
Related Issues (20)
- Bump to cert-manager 1.14.2 HOT 2
- A 5 control-plane nodes cluster does not recover if loosing 2 nodes at the same time HOT 1
- CAPI unable to delete node: cluster is being deleted HOT 4
- Consistent reporting of paused resources HOT 5
- clusterctl support for downloading kubeconfig as context within existing kubeconfig HOT 3
- Allow MachinePools without MachinePoolMachines to exist in workload cluster for clusterctl upgrade e2e test HOT 1
- Deprecate & remove "clusterctl alpha topology plan" HOT 2
- Tests running on k8s latest commit are failing HOT 5
- make generate-go-openapi prints error/warning HOT 3
- CABPK manifest is missing metadata HOT 6
- add hivelocity infra provider to clusterctl HOT 2
- Wrong urls for clusterawsadm file for both Linux and MacOs in the quick start HOT 4
- Check Kubetest parameters HOT 3
- add default worker-machine-count in clusterctl HOT 3
- Overrides not working in .cluster-api/ only in .config/cluster-api HOT 2
- Question about custom certificates HOT 7
- MD.Status.ReadyReplicas changes from 3 to 0 when machineset_controller updateStatus() hits "Unable to retrieve Node status" error HOT 6
- Manual remediation of Machines HOT 3
- ✨Simplify alternative control-plane implementation HOT 1
- Implement a smoke test for clusterctl plugins HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cluster-api.