How the Laravel Release Process Works
Published on by Paul Redmond
The Laravel release process has changed since Laravel 5’s release cycle. We get a fair amount of questions, comedic comments, and confusion about Laravel’s new release process announced at Laracon US 2019. For some reason, people get the impression that the number of releases has hastened, but in reality, most things are similar to what we grew accustomed to with Laravel 5 releases.
Before we get into the details of understanding the release process, let’s cover the most significant changes since Laravel 6’s release a few months back.
Laravel 6 and Semver
The most significant change to Laravel’s release process is the switch Semantic Versioning (Semver). Before Laravel 6, we had what was considered a major release every six months. For example, the release of Laravel 5.4 was followed by Laravel 5.5 six months later. So twice a year, the Laravel framework would bump the second number. Going from Laravel 5.4 to Laravel 5.5 contained breaking changes.
At the request of the broader community, Laravel adopted semantic versioning starting with the release of Laravel 6 in September 2019. Semver means that any time a new backward-compatible feature gets added to the framework, Laravel bumps the second number (MINOR).
An example is the release of Laravel 6.1.0, and weeks later, the release of Laravel 6.2.0. The change from Laravel 6.1 to 6.2 is roughly the same as when Laravel released 5.5.1 and 5.5.2, and so on:
If you’re not familiar with Semver, here are the basics of what it means from the Semantic Versioning homepage:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
The Updated Release Process
The Laravel 6 Release Notes provide excellent information about the new release process Laravel adopted started with Laravel 6. In many regards, we will continue to see weekly releases we’ve been used to, but if new features are added, the MINOR version number will change.
While Laravel tends to release about once a week, it doesn’t matter how frequently as long as you understand that even within one week, the framework could go from 6.5.0 to 6.6.0.
I would like to further point out to the community that the way the team works on Laravel hasn’t changed much between Laravel 5.8 and Laravel 6.0. Sure, a few nuanced changes such as how releases are versioned are to be expected, but the process of accepting pull requests, merging code, and tagging releases haven’t changed much at all.
Proposed Release Schedule
Laravel v6 is the next Long-term Support (LTS) version of Laravel. You can expect to receive bugfixes until September 3rd, 2021, and security updates until September 3rd, 2022.
Version | Release | Bug Fixes Until | Security Fixes Until |
---|---|---|---|
5.5 (LTS) | August 30th, 2017 | August 30th, 2019 | August 30th, 2020 |
5.6 | February 7th, 2018 | August 7th, 2018 | February 7th, 2019 |
5.7 | September 4th, 2018 | March 4th, 2019 | September 4th, 2019 |
5.8 | February 26th, 2019 | August 26th, 2019 | February 26th, 2020 |
6 (LTS) | September 3rd, 2019 | September 3rd, 2021 | September 3rd, 2022 |
Further, we can typically expect a new major version of Laravel about every six months. That means that around February 2020, we can expect the release of Laravel 7.0.0.
Here’s an updated table of the history of Laravel releases:
History of Laravel Releases
Version | Release | Bug Fixes Until | Security Fixes Until |
---|---|---|---|
V1 | June 2011 | – | – |
V2 | September 2011 | – | – |
v3 | February 2012 | – | – |
v4 | May 2013 | – | – |
5.0 | Feb 4th, 2015 | Aug 4th, 2015 | Feb 4th, 2016 |
5.1 (LTS) | Jun 9th, 2015 | Jun 9th, 2017 | Jun 9th, 2018 |
5.2 | Dec 21st, 2015 | Jun 21st, 2016 | Dec 21st, 2016 |
5.3 | Aug 23rd, 2016 | Feb 23rd, 2017 | Aug 23rd, 2017 |
5.4 | Jan 24th, 2017 | Jul 24th, 2017 | Jan 24th, 2018 |
5.5 (LTS) | Aug 30th, 2017 | Aug 30th, 2019 | Aug 30th, 2020 |
5.6 | Feb 7th, 2018 | Aug 7th, 2018 | Feb 7th, 2019 |
5.7 | Sep 4, 2018 | Feb 4th, 2019 | Sep 4th, 2019 |
5.8 | Feb 26th, 2019 | Aug 26th, 2019 | Feb 26th, 2020 |
6.0 (LTS) | Sep 3rd, 2019 | Sep 3rd, 2021 | Sep 3rd, 2022 |
7.0 | Mar 3rd, 2020 | Sep 3rd, 2020 | Mar 3rd, 2021 |
8.0 | Sep 8th, 2020 | Mar 8th, 2021 | Sep 8th, 2021 |
* We are trying to demonstrate an example of how releases work—dates are not confirmed.