Bento automatically tailors linters and static analysis with sane defaults on a per-project basis, letting you focus on writing code rather than configuring tools. Bento is free, fully-featured, and you can run Bento on as many projects as you like.
Bento is supported on macOS Mojave (10.14) and Ubuntu 18.04+, and requires Python 3.6 or later, and pip3.
Bento supports npm-packaged JavaScript and Python, and is ideal for monorepos.
To run Bento on projects that include JavaScript, Node.js is required and the following versions are supported:
- Node.js 8 (8.10.0 and above)
- Node.js 10 (10.13.0 and above)
- Anything above Node.js 11.10.1
Bento is a command-line tool that is simple to install:
pip3 install bento-cli
The workflow for Bento is:
- Initialize Bento
- Run Bento checks on your source code
- Fix issues or archive unnecessary warning and errors
- Disable undesired checks
- Add Bento to git pre-commit hooks
- Add Bento to the CI pipeline (e.g., CircleCI)
In your project directory, run:
bento init
and add some of the artifacts bento produces to your .gitignore file:
printf "# Bento tools:\n.bento/" >> .gitignore
To trigger Bento to analyze your project, run:
bento check
The archive
command whitelists outstanding issues to fix later. This lets you continue coding with a clean slate without having to address all your tech debt as soon as you adopt a new tool. New issues introduced from this point forward will be reported by Bento until the next time you run the archive
command.
Archive issues by running:
bento archive
Enable/disable a specific check by running:
bento enable [OPTIONS] TOOL CHECK
or
bento disable [OPTIONS] TOOL CHECK
where:
-
TOOL
refers to the tool that includes the check, for example,r2c.eslint
-
CHECK
refers to the label for the check you want to enable, for exampleno-console
Example:
bento enable r2c.eslint no-console
You can find the tool and check names in the output of bento check
. Bento currently supports the following tools:
Language | Supported Tools |
---|---|
Python | Bandit, Flake8 |
JavaScript | ESLint |
If there are tools you'd like us to add, please let us know by creating an issue.
Bento can install itself as a pre-commit hook, so it runs before each commit and blocks on failures.
To install bento as a pre-commit hook, simply run:
bento install-hook
Here’s a short preview of Bento in action:
Join the Bento channel in our community Slack to receive and give support, talk with other users, and share things about Bento. The r2c team is there and ready to help!
Please refer to the terms and privacy document.
Copyright (c) r2c.