PatchWise automates patch review and static analysis for the Linux kernel, streamlining upstream contributions and ensuring code quality.
- Automated Patch Review: Runs static analysis and style checks on kernel patches.
- Integration with Mailing Lists: Processes patches sent via email and responds automatically.
- Flexible Review Selection: Choose which review checks to run.
- Rich Logging: Colorized and file-based logging for easy debugging.
- LLM Integration: Uses Artificial Intelligence for commit message analysis and suggestions.
- AI Code Review: Leverages artificial intelligence to provide insights on code quality and potential issues. Integrated with Language Server Protocol (LSP) for context-aware code review. Support for multiple LLMs and providers, including OpenAI.
- Python 3.10 or newer
- Access to a Linux kernel git repository
-
Create and activate a virtual environment:
python3.10 -m venv .venv source .venv/bin/activate -
Install PatchWise:
pip install patchwise
-
Set up your API key:
Obtain your API key from your provider and set it as an environment variable:
export OPENAI_API_KEY=<your-api-key>
Add this line to your shell profile (e.g.,
~/.bashrcor~/.zshrc) for persistence. -
Run help message:
patchwise --help
-
Run PatchWise:
Run PatchWise in the root of your kernel workspace:
patchwise
By default, PatchWise will review the
HEADcommit. Use the--commitsflag to review a specific commit:patchwise --commits <commit-sha>
To run only short reviews, use:
patchwise --short-reviews
To run specific reviews, use the
--reviewsflag:patchwise --reviews checkpatch dt_checker
To see available reviews and other options, run:
patchwise --help
### Create and activate a virtual environment
python3.10 -m venv .venv
# Required every time you start a new shell session
source .venv/bin/activate
### Install PatchWise
pip install patchwise
# Required every time you start a new shell session
# unless you've added it to your shell profile (e.g., ~/.bashrc or ~/.zshrc)
# You can find your API key from your provider
export OPENAI_API_KEY=<your-api-key>
### Run PatchWise in your kernel workspace that has the patch you want to review already applied
cd linux-next
patchwise-h,--help: Show help message and exit
--commits: Space separated list of commit SHAs/refs, or a single commit range in start..end format. (default: [HEAD])--repo-path: Path to the kernel workspace root. Uses your current directory if not specified. (default:$PWD)--reviews: Space-separated list of reviews to run. (default: all available reviews)--short-reviews: Run only short reviews. Overrides--reviews.--install: Install missing dependencies for the specified reviews. This will not run any reviews, only install dependencies.
--model: Specify the AI model to use for code review. (default:openai/Pro).--provider: The base URL for the AI model API. (default:https://api.openai.com/v1)--api-key: The API key for the AI model API. If not provided, it will be read from theOPENAI_API_KEYenvironment variable.
--log-level: Set the logging level. (default:INFO)--log-file: Path to the log file (default:<package_path>/sandbox/patchwise.log)
If you'd like to develop new features or fix existing issues:
- Fork the repository and create a new branch for your changes.
- Make your changes with clear, descriptive commit messages.
- Ensure your code follows the project's coding standards and passes all tests.
- Submit a pull request (PR) with a detailed description of your changes to pull your changes into the staging branch in the main repository.
Please make sure to follow our contribution guidelines before submitting a pull request. CONTRIBUTING.md
- Report an Issue on GitHub
- Open a Discussion on GitHub
- E-mail us for general questions
PatchWise is licensed under the BSD-3-clause License. See LICENSE.txt for the full license text.