Towards Symfony 2.1

People are getting nervous about the release of Symfony 2.1, and this post
tries to give all the information I have at my disposal as of today.

First, I want to apologize for the lack of communication during the last few
weeks, but I wanted to have a solid plan before taking any decision and before
announcing anything official on this blog.

The discussion about the 2.1 release schedule started some time ago when I
asked the community about the best plan for Symfony 2.1 on the developers
mailing-list.
I suggested two possible options back then:

Wait for the form component to stabilize before releasing Symfony 2.1;

Release 2.1 as soon as possible (by reverting some changes made on the form
component -- and reintroduce them after the release).

The form component being one of the most used Symfony features and one that is
not declared as stable yet, its state is very important to take into account
before each release of the framework.

The plan I'm describing in this post has been taken thanks to the numerous
comments (almost 80 as of now) on the mailing-list thread I've mentioned
above. Thanks to all developers who contributed to the discussion.

So, based on the feedback from the community (the vast majority wanted to wait
instead of releasing earlier), and after many discussions on the state of the
form component with
Bernhard and
Victor, we chose recently
that the only viable option was to wait for the form to stabilize for the
following reasons:

The work needed to stabilize the form component is almost finished (all
major backward compatibility breaks should be finished before Symfony Live
in Paris);

Many bundles have adjusted to the form changes already, so reverting would
have been a nightmare for these bundles;

Having less releases with backward compatibility breaks is better for the
community (we have tried hard to keep BC whenever possible and to pack all
major BC breaks for the form component in 2.1);

Documentation update would also have been more challenging as we would have
to revert some doc changes as well if we had reverted some form changes;

Many blogs have already talked about the changes that occurred in forms for
2.1, so that would be confusing as well if we had reverted some of them.

Reverting all form changes to avoid some of the above issues was not even
an option as some BC breaks were done to fix major bugs in the form
component;

Composer is used everywhere in Symfony 2.1 and even if it has been much
more stable for the last couple of weeks, waiting a bit more will help the
transition a lot.

So, the release schedule for Symfony 2.1 reads as follows:

First 2.1 beta release after the hacking day at Symfony Live Paris (we will
try to work hard during the hacking day to stabilize things and see how we
can make the update easier -- if you have some big apps, please come and
try to upgrade them with the help of Bernhard and other core team members,
that will help us a lot);

First release candidate mid-July;

Final release at the end of August (releasing at the end of August means
that Symfony 2.1 will be out just a year after Symfony 2.0).

What's next? After the Symfony 2.1 release, we would like to release more
often. Having shorter release cycle means that we need less BC breaks. And as
all the major BC breaks for the form components will have been made in 2.1, it
will be much more easier to upgrade. So, expect a Symfony 2.2 release before
the end of 2012.

Releasing new versions is great, but having a long term support release is
even better. For Symfony 2.1, we have marked some features as deprecated
because they have been replaced with something better. That makes Symfony 2.1
more compatible with applications developed for Symfony 2.0 (less hard BC
breaks) and at the same time, it gives developers plenty of time to upgrade.
As deprecated features will be removed in Symfony 2.3, the 2.3 version will be the first
LTS release for Symfony2.

Last, but not the least, I want to talk a bit about how the Symfony community
works. Like any other Open-Source project, Symfony is made by passionate
developers and volunteers all around the world (more than 460 at the time of writing) and sometimes, some of the major
contributors cannot dedicate as much time to the project as they would want. This has impacts on our the release cycle.

Of course, getting paid to contribute to an Open-Source project is probably
the best way to ensure the best involvement on the long run, but that's pretty
rare... I'm one of the few lucky ones to have this great status!

Today, I'm really happy to announce that
SensioLabs has decided to give more free time to Victor Berchet so that he
can dedicate more time to his work on the Symfony core; and SensioLabs has been sponsoring Bernhard Schussek's work on the
form and validator components for the last couple of months and it will continue to do so for the foreseeable future.

BTW in case there are more companies looking to sponsor work on Symfony2 .. I am sure if you post about this you can find developers interested. There are both students and freelancers among the top contributors. The benefit of such sponsoring is that you can affect their priorities to ensure that your concrete business needs are addressed.