Upgrade guides

What breaks when you upgrade, and how to fix it

Each guide is built from the official upgrade notes and from real upgrades we've run on open-source apps, including the problems a passing test suite won't show you.

Python · 6 min read Upgrading Python 3.10 to 3.13: what breaks and how to fix it A tested path from Python 3.10 to 3.13: the dependency pins that block you, the removed modules that crash, and the silent changes a green test suite won’t show. Python 3.10 reached end of life on October 1, 2026. Read the guide PHP · 5 min read Upgrading from PHP 8.2 to 8.4: what breaks and how to fix it The changes that actually break apps moving from PHP 8.2 to 8.4, how to find each one in your code, and the order to do the work in. PHP 8.2 security support ends December 31, 2026. Read the guide Laravel · 6 min read Upgrading Laravel 10 or 11 to Laravel 13: what breaks and how to fix it A tested path from Laravel 10 or 11 to 13: the dependency bumps, the database changes that break migrations, and the silent problems a green test suite won't show you. Laravel 10 and 11 no longer get security fixes. Laravel 12 loses them on February 24, 2027. Read the guide Django · 5 min read Upgrading Django 4.2 to 5.2 LTS: what breaks and how to fix it How to move from Django 4.2 LTS to 5.2 LTS in one go: the removals that crash, the settings Django now ignores without telling you, and the add-on packages that need to move with it. Django 4.2 LTS reached the end of security support in April 2026. Read the guide

Node.js and Rails guides are coming. Need one of those now? Get a free scan and we'll tell you exactly what your upgrade involves.