cube-js / cube

📊 Cube — The Semantic Layer for Building Data Applications
https://cube.dev
Other
17.64k stars 1.75k forks source link

Add precommit hooks #324

Open hassankhan opened 4 years ago

hassankhan commented 4 years ago

Is your feature request related to a problem? Please describe. It would be a better developer experience if lint checks were run as a Git precommit hook, as opposed to the somewhat longer feedback loop of a CI failure.

Describe the solution you'd like Many such tools/toolchains exist on NPM, lint-staged and husky being the most popular.

lint-staged allows for linting only staged files, and husky sets up Git precommit hooks in your project.

Additionally, tools such as commitlint can be used to enforce Git commit message styles (in this case, conventional commits) while commitizen can be used to provide a CLI wizard for commit messages.

Additional context lint-staged: https://github.com/okonet/lint-staged husky: https://github.com/typicode/husky commitlint: https://github.com/conventional-changelog/commitlint commitizen: https://github.com/commitizen/cz-cli

paveltiunov commented 4 years ago

@hassankhan We had husky in place but it doesn't support per package checks instead of running full test suite. It make sense to revisit if they fixed this.

hassankhan commented 4 years ago

husky probably never will support per-package checks, but that's exactly where lint-staged comes in.

paveltiunov commented 4 years ago

@hassankhan lint-staged looks good. We can try it out.