Skip to main content
Apps pin the framework — feather-framework[extras]==X.Y.Z in requirements.txt — and move when they bump the pin, so an upgrade never happens by surprise. CHANGELOG.md carries an “Upgrade notes” block for every release that needs one. Read the blocks between your pin and your target.

The upgrade itself

Two changes account for most breakage

A bare install no longer brings WeasyPrint, google-cloud-storage, psycopg2, redis, rq, resend, gunicorn or pytest. An app that used any of them must name the extra, or the first import fails with a message naming the install command.See the dependencies table. feather-framework[all] reproduces the pre-0.9.8 install if you would rather not work out the list now.
Replace the absolute @source line in static/css/app.css with:
and add .feather-templates to .gitignore. Older scaffolds baked the absolute path of the installed Feather package into that file, so images built anywhere but the machine that ran feather new silently lack every framework component style.
This one fails silently rather than loudly, which is why it is worth checking even if everything looks fine locally.

Worth grepping for

The changelog explains each of these in full.
A framework upgrade is a good moment to run feather security-check, which fails on dependency versions below the floors each release sets.