Skip to content

Upgrade Guide

This page documents breaking changes and migration steps between Arvel releases. When a change requires updating your code, you'll find it here with before/after examples.

Versioning Policy

Arvel follows Semantic Versioning from 1.0.0 onward. Until then, 0.x minor releases may include breaking changes — always documented below.

Upgrading to 0.3.0

Estimated upgrade time: a few minutes.

0.3.0 is a drop-in upgrade from 0.1.0 — it's purely additive, with no breaking changes. Update the dependency and re-sync:

uv lock --upgrade-package arvel
uv sync

To pull every optional feature in one go (the recommended install), use the all extra:

uv add "arvel[all]"

Python 3.14+ has been required since 0.1.0 — no change there.

Upgrading to 0.1.0

0.1.0 was the first public release. There's no documented upgrade path from pre-release versions.

How to Read This Guide

Each future release adds a section here. Breaking changes come with the exact code to change. A couple of conventions worth knowing now, so later migrations read clearly:

  • Service providers. App-level providers are declared in bootstrap/providers.py as a providers list. Some subsystems are opt-in — for example, AuthServiceProvider powers authentication and the Gate:
# bootstrap/providers.py
from arvel.auth.provider import AuthServiceProvider

providers = [
    AuthServiceProvider,
    # ...your other providers...
]
  • Config classes. ArvelSettings subclasses auto-derive their env_prefix from the class name (DbConfigDB_). Set model_config["env_prefix"] explicitly to override.

Next Steps