Releases: masonitedev/masonite
v5.4.1
Bug fixes
Package providers resolve their root through the import system. PackageProvider.root() located a package's directory with a first-occurrence substring search over the provider's __file__. When the project path itself contained the package name before the real module directory — an app created at /tmp/<pkg>-smoke, or an editable install from a repo directory named like the package — the search matched too early and the provider crashed on boot with views() first argument must be a folder containing all package views. The directory is now resolved via importlib, which is immune to path coincidences (#24).
v5.4.0
CoreKernel: a minimal kernel for leaner custom boots
The framework kernel is now split into two layers. A new public CoreKernel registers only the essentials — environment, response handler, storage path, and the router/middleware/loader capsules plus an empty command registry. The standard Kernel extends it to add the built-in craft commands and, only under the test runner, the test response capsule.
Subclass CoreKernel when you want a slimmer boot (a queue worker, an embedded service) that doesn't need the full command line.
Lighter imports
All command and testing imports inside the kernels are now lazy. Importing masonite.foundation no longer pulls in cleo, the command suite, or the testing helpers, and production boots never import the testing helpers at all.
Upgrading from 5.3
Drop-in upgrade — the standard Kernel behaves exactly as before. One behavior change: the tests.response capsule is now bound only when running under the test runner. If you relied on that binding outside of tests, register it in a service provider.
Full notes: https://docs.masonite.dev/whats-new/masonite-5.4/
v5.3.0
What's New
Redis queue driver
A new redis queue driver with the same surface as the other drivers (push, consume, retry, failed-jobs table, queue:work / queue:retry). Delayed jobs are stored in a sorted set and promoted when due, poison messages are discarded without killing the worker, and configuration ships in the skeleton (REDIS_HOST/REDIS_PORT/REDIS_PASSWORD). Thanks @ReS4 for the original implementation (#2).
Queue.push() now forwards options to drivers, so queue.push(job, delay="10 minutes") works through the public API for every driver.
Vite + Tailwind CSS 4
New projects build their assets with Vite 8 and Tailwind CSS 4, replacing the legacy laravel-mix webpack pipeline — npm audit on a fresh project goes from 12 findings to zero. All four frontend presets (tailwind, vue, react, bootstrap) were ported. Existing Mix projects keep working and the mix() helper remains available. (docs)
Security — pip-audit clean
This release clears every known vulnerability across the dependency tree:
cleo2.1 (craft CLI migrated; fixes exposure to CVE-2022-42966). Custom commands keep the same docstring signature format — no changes needed.cryptography >= 46.0.7(CVE-2026-26007, CVE-2026-34073, CVE-2026-39892)pytestis no longer a production dependency (moved to thetestextra, now pytest 9)- skeleton
axios^1.17 (20+ advisories in the 0.x line) strong(breach=True)validation now calls the Have I Been Pwned k-anonymity API directly — no extra package needed- Unmaintained
hashids,hfilesizeandpwnedapiremoved
Upgrade notes
- Requires
masonite-framework-orm >= 3.1(its CLI also moved to cleo 2) - hashid feature now uses Sqids: generated hashes differ from previous versions. Hashed IDs are ephemeral by design (encoded in a response, decoded on the next request); only values persisted across the upgrade are affected. (docs)
- The Vonage notification driver now requires the v4 SDK (
pip install "vonage>=4"); theto_vonagenotification API is unchanged masonite.tests.TestCasenow requires pytest explicitly:pip install masonite-framework[test]
Full Changelog: v5.2.0...v5.3.0
v5.2.0 — Styled craft serve output
What's new
Styled craft serve output
- Branded startup banner with the framework version and server URL — printed once, even with the auto-reloader.
- Laravel-style request logs: timestamp, method and path with the status code dotted out to the terminal edge and colored by status class (2xx violet, 4xx amber, 5xx red).
- File-change reloads now show as a single muted
↻line. - Plain-text fallback honoring
NO_COLOR, dumb terminals and non-TTY output.
Cleaner startup
- Werkzeug's development-server warning and address/reloader chatter are no longer printed (errors are kept).
- Suppressed the
cleo0.8re.splitDeprecationWarning on Python 3.13+.
Full Changelog: v5.1.0...v5.2.0
v5.1.0 — New project wizard
What's New
masonite new — interactive project wizard 🧙
Creating a Masonite application is now a guided experience:
pip install masonite-framework
masonite new blog- Arrow-key menus to pick your stack (full-stack or API only), frontend preset (Tailwind, Bootstrap, Vue, React or none) and database (SQLite, MySQL, Postgres)
- Creates a virtual environment and installs dependencies automatically
- Generates your
APP_KEY, writes your.env, initializes a git repository - Offers to start the development server when it finishes
- Every step is also a flag for CI/scripting:
masonite new blog --api --db=postgres --no-input project startkeeps working as an alias
Bundled project skeleton
The starter project now ships inside the framework package — project creation is instant, works offline and no longer depends on GitHub downloads (which had rate limits and a broken default repository). --repo/--branch/--release still let you craft from custom templates.
The skeleton is fully updated for Masonite 5: config/logging.py, environment-driven database config, API-ready providers and Masonite 5 dependency pins.
New welcome page
A fresh, self-contained welcome page following the Masonite brand (Great Pyramid mark, violet palette, Sora) with automatic light/dark mode — plus matching 403/404/500 and maintenance pages. The old Tailwind-2-by-CDN page is gone.
Other
- New
masoniteconsole script (alongsideproject) - New dependency:
questionary(arrow-key prompts)
Full Changelog: v5.0.1...v5.1.0
v5.0.1
Masonite 5.0.1
- Masonite ORM dependency now points to the renamed
masonite-framework-ormpackage (3.0.1+) published from the masonitedev organization. Imports are unchanged. - Documentation links now point to https://docs.masonite.dev.
See the v5.0.0 release notes for the full 5.0 changelog and the upgrade guide.
v5.0.0
Masonite 5.0.0
First release from the masonitedev organization. The PyPI package is now masonite-framework (replaces masonite).
Highlights
- New logging system (finishes #718):
Logfacade withterminal,single,daily,stack,syslogandslackdrivers, configured inconfig/logging.py. Unhandled exceptions are logged automatically with their full traceback, and channels support apropagateoption. - Python 3.10–3.13 support (3.8/3.9 dropped — end of life).
- Modernized dependencies: Pendulum 3, Masonite ORM 3, Werkzeug 3, bcrypt 4+, cryptography 42+, Jinja2 3.1+, multipart 1.x.
- Modern packaging: single PEP 621
pyproject.toml, trusted publishing (OIDC) to PyPI. - Validation messages now include the actual missing key,
memcacheddriver rename, hashid moved to its own module, CGI replaced withmultipart.
Upgrading from 4.x
pip uninstall masonite
pip install "masonite-framework>=5,<6"Imports are unchanged (import masonite). See the upgrade guide in the README.