September 12, 2017 Ryan Weaver

A Symfony unicorn!!? It's real! On September 5th, the Symfony Components crossed a huge landmark: the 1 billionth download! This happened less than one year after the last milestone: 500 million downloads. That's right: the PHP community downloaded the Symfony components more than 500 million times in just one year. That's well over 1 million downloads every day!

There are so many people that have made this possible, and we would like to thank all of you who have supported Symfony: developers, contributors, companies, evangelists and - of course - users! There are now over 80 Symfony packages and 1,500 people have contributed code to these. None of this is possible without your help. Congrats!

The Symfony Components & Upgrading to Symfony 4¶ How is it possible to have so many downloads? The Symfony components are of course used in the Symfony Framework... but that's only the start. Today, you'll find some parts of Symfony in almost every major PHP project, like Drupal, Laravel, Composer, OroCRM, Akeneo PIM and many, many others. This is a great honor, and also a serious responsibility. To handle this, Symfony created a Backwards Compatibility Promise: a commitment to strictly follow semantic versioning so that anyone using Symfony can safely and confidently upgrade. Symfony also has a predictable release cycle: a minor release every 6 months, with a long-term support (LTS) release every 2 years. Symfony 4 will be released in November 2017. And since this is a major version, it will contain backwards compatibility breaks. In many ways, that's unacceptable: Symfony users (developers & projects) need to be able to upgrade their code without introducing bugs or spending countless hours reading the CHANGELOG and hunting for changes. That's why - just like with Symfony 3 - we continue to use our Continuous Upgrade Path: a system where deprecated features trigger deprecation notices that can be seen in Symfony's web debug toolbar, or after running your tests. This allows you to update your code little-by-little, at your own pace. When you've removed all the deprecated calls, upgrading is easy and safe. With the continuous upgrade path, your project is never left behind. That's very important.