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 the- OPENAI_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.