Skip to content

Releases: masonitedev/masonite

v5.4.1

07 Jun 21:35

Choose a tag to compare

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

07 Jun 20:15

Choose a tag to compare

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

07 Jun 13:52

Choose a tag to compare

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:

  • cleo 2.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)
  • pytest is no longer a production dependency (moved to the test extra, 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, hfilesize and pwnedapi removed

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"); the to_vonage notification API is unchanged
  • masonite.tests.TestCase now requires pytest explicitly: pip install masonite-framework[test]

Full Changelog: v5.2.0...v5.3.0

v5.2.0 — Styled craft serve output

07 Jun 01:37

Choose a tag to compare

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 cleo 0.8 re.split DeprecationWarning on Python 3.13+.

Full Changelog: v5.1.0...v5.2.0

v5.1.0 — New project wizard

06 Jun 20:17

Choose a tag to compare

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 start keeps 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 masonite console script (alongside project)
  • New dependency: questionary (arrow-key prompts)

Full Changelog: v5.0.1...v5.1.0

v5.0.1

06 Jun 03:10

Choose a tag to compare

Masonite 5.0.1

See the v5.0.0 release notes for the full 5.0 changelog and the upgrade guide.

v5.0.0

06 Jun 01:54

Choose a tag to compare

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): Log facade with terminal, single, daily, stack, syslog and slack drivers, configured in config/logging.py. Unhandled exceptions are logged automatically with their full traceback, and channels support a propagate option.
  • 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, memcached driver rename, hashid moved to its own module, CGI replaced with multipart.

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.