Skip to content

Releases: aaronmedina-dev/WhatThePatch

v1.3.3 - Complete Python 3.9 Compatibility Fix

Choose a tag to compare

@aaronmedina-dev aaronmedina-dev released this 30 Jan 02:27
d98adeb

Bug Fix

Complete fix for Python 3.9 compatibility - added from __future__ import annotations to all engine files:

  • engines/__init__.py
  • engines/base.py
  • engines/claude_api.py
  • engines/claude_cli.py
  • engines/openai_api.py
  • engines/openai_codex_cli.py
  • engines/gemini_api.py
  • engines/gemini_cli.py
  • engines/ollama_api.py

Note

v1.3.2 only fixed url_context.py. This release fixes the remaining files that use the | union syntax for type hints.

Upgrade

wtp --update

Or reinstall:

curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bash

v1.3.2 - Python 3.9 Compatibility Fix

Choose a tag to compare

@aaronmedina-dev aaronmedina-dev released this 30 Jan 00:25
d3cd896

Bug Fix

Fixed Python 3.9 compatibility issue that caused installation to fail with:

TypeError: unsupported operand type(s) for |: 'types.GenericAlias' and 'NoneType'

Cause

Missing from __future__ import annotations in url_context.py. The | union syntax for type hints requires Python 3.10+, but this import enables it for Python 3.9.

Affected Users

Users running Python 3.9 who installed v1.3.0 or v1.3.1.

Upgrade

wtp --update

Or reinstall:

curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bash

v1.3.1 - Patch Release

Choose a tag to compare

@aaronmedina-dev aaronmedina-dev released this 29 Jan 13:18
480ba13

What's Fixed

Patch release to restore missing files from v1.3.0 merge conflict.

Restored Files

  • Documentation: docs/ folder with configuration.md, engines.md, external-context.md, prompts.md, troubleshooting.md
  • Ollama Support: engines/ollama_api.py for local LLM support
  • Config: config.example.yaml with Ollama configuration
  • Setup: setup.py with Ollama setup functions
  • Assets: Missing screenshots (wtp_review.png, wtp_report_sample.png, wtp_test-config.png)
  • README: Fixed incomplete sections

Included from v1.3.0

  • Modular architecture (6 new modules)
  • One-line curl installation (install.sh / uninstall.sh)
  • --edit-config command
  • Ollama engine for offline/local LLM reviews
  • Bug fix for large PRs with >300 files

Install / Upgrade

# Fresh install
curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bash

# Upgrade existing
wtp --update

v1.3.0

Choose a tag to compare

@aaronmedina-dev aaronmedina-dev released this 29 Jan 12:56
d3ee33d

What's New

Ollama Support (Local LLMs)

Run PR reviews completely offline with local models via Ollama. No API keys required - your code never leaves your machine.

wtp --switch-engine   # Select "ollama"
wtp --review <PR_URL>

Modular Architecture

Split the monolithic whatthepatch.py (2928 lines) into focused, maintainable modules:

Module Purpose
whatthepatch.py Main entry point
url_context.py URL/file context handling
pr_providers.py GitHub/Bitbucket PR fetching
commands.py CLI command implementations
output.py Output formatting (HTML/MD/TXT)
update.py Self-update system

One-Line Installation

Install:

curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bash

Uninstall:

curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/uninstall.sh | bash

New Features

  • Ollama engine - Run reviews with local LLMs (codellama, llama3, etc.)
  • --edit-config command to open config.yaml in your editor
  • manifest.json for self-update file management
  • Manifest-based setup.py for cleaner installations

Bug Fixes

  • Fixed handling of large PRs with >300 files (GitHub API pagination)

Improvements

  • Removed unused pexpect dependency
  • Cleaned up unused imports
  • Better error handling in install scripts

Upgrading

wtp --update

Or reinstall:

curl -sSL https://raw.githubusercontent.com/aaronmedina-dev/WhatThePatch/main/install.sh | bash

v1.2.1

Choose a tag to compare

@aaronmedina-dev aaronmedina-dev released this 23 Jan 12:59
9992b73

Release v1.2.1

Note: This release jumps from v1.1.1 to v1.2.1 because v1.2.0 was incorrectly set in feature branches instead of the release branch. To maintain proper release workflow integrity, we are releasing as v1.2.1.

New Features

URL Support for External Context

The --context flag now supports URLs in addition to local file paths:

  • Remote file fetching: Fetch raw text files from any URL
  • GitHub integration: Auto-converts GitHub blob URLs to raw URLs
  • Bitbucket integration: Full support for Bitbucket file URLs
  • Private repository access: Uses configured GitHub token and Bitbucket credentials for authenticated access
  • HTML to Markdown conversion: Automatically converts HTML documentation pages to Markdown using html2text
  • URL caching: Fetched URLs are cached locally at ~/.whatthepatch/url_cache/ with 1-hour TTL

Usage examples:

# Raw URL
wtp --review <PR_URL> -c https://example.com/docs/api.md

# GitHub file (auto-converts blob to raw)
wtp --review <PR_URL> -c https://github.com/org/repo/blob/main/types.ts

# Bitbucket file
wtp --review <PR_URL> -c https://bitbucket.org/workspace/repo/src/main/README.md

# Developer documentation (HTML auto-converted to Markdown)
wtp --review <PR_URL> -c https://docs.python.org/3/library/asyncio.html

Automatic Dependency Installation

  • After --update: New dependencies are automatically installed after updating the codebase
  • Startup detection: Missing dependencies are detected at startup with helpful error messages and installation instructions
  • Updated file list: The --update command now properly copies all engine files

New Dependency

  • html2text>=2024.2.26 - HTML to Markdown conversion

Full Changelog

v1.1.1...v1.2.1

v1.1.1 - CLI Improvements & Bugfixes

Choose a tag to compare

@aaronmedina-dev aaronmedina-dev released this 22 Jan 23:58
9b03766

Bug Fixes

  • Fix severity badge conversion for emoji shortcodes (:red_circle:, :orange_circle:) in HTML output

Improvements

  • Group --help options by function (Review, Configuration, Prompt, Utility)
  • Remove redundant "Other commands" section from help epilog
  • Add custom argument parser with styled error messages
  • Highlight problematic arguments in yellow on errors
  • Consistent error formatting across the app with print_cli_error()

Upgrade Notes

To upgrade:

wtp --update

v1.1.0 - Gemini Support & Custom Spinner

Choose a tag to compare

@aaronmedina-dev aaronmedina-dev released this 22 Jan 12:10
05c31b7

What's New

Google Gemini Engine Support

  • Added gemini-api engine for Google Gemini API
  • Added gemini-cli engine for Google Gemini CLI
  • Supports model switching with --switch-model

Custom Branded Spinner

  • New animated spinner with fire gradient (yellow -> orange -> red)
  • Uses circle/dot characters: ● ◉ ○ ◌ ⁘ ⁙ ※ ⁜
  • Colors match the WhatThePatch banner

Model Switching for All Engines

  • --switch-model now works consistently across all engines
  • Claude CLI now supports interactive model switching (opus, sonnet, haiku)
  • All CLI engines support model configuration via config.yaml

Pytest Test Suite

  • Added comprehensive test suite with pytest
  • Tests for model management, engine detection, and CLI parsing
  • HTML test reports and coverage reporting
  • Separated dev dependencies into requirements-dev.txt

Improvements

  • Graceful error handling for invalid model names with helpful suggestions
  • Better engine configuration status display showing model for each engine

Bug Fixes

Python 3.9 Compatibility

  • Fixed type hints to use typing module for Python 3.9 compatibility
  • Updated documentation to reflect Python 3.9+ requirement

Setup Installation Fix

  • Added cli_utils.py to INSTALL_FILES in setup.py
  • Fixed installation failing due to missing CLI utilities file

Upgrade Notes

To upgrade:

wtp --update

Or if using git clone:

git pull origin main

v1.0.1 - Bug Fixes & UI Improvements

Choose a tag to compare

@aaronmedina-dev aaronmedina-dev released this 18 Jan 10:30
13d0c17

What's Changed

Bug Fixes

  • Fix stale update notification after running --update - cache is now cleared after updates so version check fetches fresh data

Improvements

  • Modernize --update command interface with Rich styling
    • Styled header and mode display
    • Progress spinner during git pull / file downloads
    • Warning panel for uncommitted changes
    • Success/error panels for results

Upgrade

wtp --update
# or
git pull  # if using git clone

Full Changelog: v1.0.0...v1.0.1

v1.0.0 - Initial Release

Choose a tag to compare

@aaronmedina-dev aaronmedina-dev released this 18 Jan 09:50
8200072

WhatThePatch v1.0.0

The first official release of WhatThePatch - an AI-powered PR review tool.

Features

  • AI-Powered Reviews - Generate comprehensive PR reviews using AI
  • Multi-Platform Support - Works with GitHub and Bitbucket pull requests
  • Multiple AI Engines - Choose from Claude API, Claude CLI, OpenAI API, or OpenAI Codex CLI
  • Rich CLI Interface - Modern terminal UI with colors, panels, and progress spinners
  • External Context - Include private repos or shared libraries as context for better reviews
  • Multiple Output Formats - Export reviews as HTML, Markdown, or plain text
  • Update Notifications - Automatic checks for new versions
  • Customizable Prompts - Tailor review prompts to your team's needs

Installation

# Clone the repository
git clone https://github.com/aaronmedina-dev/WhatThePatch.git
cd WhatThePatch

# Install dependencies
pip install -r requirements.txt

# Run setup
python setup.py

Quick Start

# Review a GitHub PR
python whatthepatch.py --review https://github.com/owner/repo/pull/123

# Review a Bitbucket PR
python whatthepatch.py --review https://bitbucket.org/workspace/repo/pull-requests/456

# Check status
python whatthepatch.py --status

Documentation

See README.md for full documentation.