setup-dvc | husky | |
---|---|---|
1 | 125 | |
29 | 31,590 | |
- | - | |
3.2 | 8.6 | |
about 1 month ago | about 1 month ago | |
JavaScript | JavaScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
setup-dvc
-
Pre-commit: framework for managing/maintaining multi-language pre-commit hooks
Here's our setup, which is the result of several iterations and ergonomics refinements. Note: our stack is 90% python, with TS for frontend. Also 95% devs use mac (there's one data scientist on windows, he uses WSL).
We install enough utilities with `brew` to get pyenv working, use that to build all python versions. Then iirc `brew install pipx`, maybe it's `pip3 install --user pipx`. Anyway, that's the only python library binary installed outside a venv.
Pipx installs isort, black, dvc, and pre-commit.
Every repo has a Makefile. This drives all the common operations. Pyproject.toml (/eslint.json?) set the config for isort and black (or eslint). `make format` runs isort and black on python, eslint on js. `make lint` just verifies.
Pre-commit only runs the lint, it doesn't format. It also runs some scripts to ensure you aren't accidentally committing large files. Pre-commit also runs several DVC actions (the default dvc hooks) on commit, push, and checkout. These run in a venv managed by pre-commit. We just pin the version.
Github actions has a dedicated lint.yaml which runs a python linter action. We use the black version here to define which black pipx installs. We use `act` if we wanna see how an action runs without sending a commit just to trigger jobs.
As an aside, I'm still fiddling with the dvc `pre-commit` post-checkout hooks. They don't always pull the files when they ought to.
Most of the actual unit/integration tests run in containers, but they can run in a venv with the same logic, thanks to makefile. We use a dvc action to sync files in CI.
So yeah there's technically 2 copies of black and dvc, but we just use pinning. In practice, we've only had one issue with discrepancies in behavior locally vs CI, which was local black not catching a rule to avoid ''' for docstrings; using """ fixed it. On the whole, pre-commit saves against a lot of annoying goofs, but CI system is law, so we largely harmonize against that.
IMHO, this is the least egregious "double accounting" we have in local vs staging ci vs production ci (I lost that battle, manager would rather keep staing.yaml and production.yaml, rather than parameterize. Shrug.gif).
Technologies referenced:
https://dvc.org/
https://github.com/iterative/setup-dvc
https://github.com/marketplace/actions/python-linter
https://github.com/nektos/act
husky
-
I switch from Eslint to Biome
Reading Biome doc I also switched from husky to lefthook.
-
Streamline Your Workflow: Setting Up Git Hooks with Husky to Simplify Version Updates
Dive deeper into the world of Husky with the official documentation. Explore the capabilities of Standard Version through its comprehensive documentation. Unravel the mysteries of semantic-release with its detailed documentation. Discover the versatility of bumpp with its comprehensive documentation.
-
Git Project Configuration With Husky and ESLint
Letâs walk through the steps for a one-time setup to configure husky pre-commit and pre-push hooks, ESLint with code styles conventions, prettier code formatter, and lint-staged. Husky automatically runs a script on each commit or push. This is useful for linting files to enforce code styles that keeps the entire code base following conventions.
- Padronizando seu código através dos Git Hooks
- Angular 14 + Prettier + Husky Setup
-
How Automation Saved Me from Oops Moments: Never Skip Tests in Production Again!
We were already using lint-staged and have a pre-commit hook in place using Husky in our project for linter and prettier. So it made sense to add a check here.
- Pre-commit with husky & lint-staged
-
How to Improve Development Experience of your React Project
Now, let's talk about Husky. It's a wonderful tool that enables you to run scripts on any Git hooks. We'll add a pre-commit hook to run ESLint and Stylelint checks before committing. This ensures that we don't commit code with errors.
- Como adicionar hooks aos commits de seu projeto utilizando Husky
-
My script to install husky, commitlint and lint-staged with zx
In all my projects I use husky, lint-staged and commitlint.