Hi,

2012/9/17 Daniel Kucharski <inspi...@gmail.com>:
> Hey Fabien,
>
> The release approach seems indeed good way to move forward.   However if you
> would want to have symfony2 being used in a more enterprise enviroment I'm
> afraid that 3 years of LTS isn't enough.  Especially because they are not
> always in the driving seat to keep up with releases.   I know that for most
> web projects 3 years a long time, but it isn't in the enterprise world.
> Especially if already takes sometimes one year to deliver a project.

It's true. Enterprise is a specific world.

Do you think that there is a demand for a distribution with longer time support?

>
> On Mon, Sep 17, 2012 at 8:41 AM, Javier Eguiluz <javier.egui...@gmail.com>
> wrote:
>>
>> Fabien, thank you for sharing the proposal of the new realease process and
>> for making it debatable.
>>
>> In my opinion, the proposed changes are great and they will improve the
>> quality of Symfony and its ecosystem.
>>
>> The only drawback I see is the new set of pull request rules. I think that
>> sticking to those rules would be awesome ... but a bit unrealistic.
>> Documenting every change (even if you don't know if it's going to be
>> accepted), updating changelog and UPGRADE, adding tests for all supported
>> PHP versions, etc. for every single code change is so cumbersome that most
>> people don't do it even for their own projects.
>>
>> --
>> Javier Eguiluz
>> www.symfony.es
>>
>> On Mon, Sep 17, 2012 at 7:01 AM, Fabien Potencier
>> <fabien.potenc...@symfony-project.com> wrote:
>>>
>>> My keynote last week at Symfony Live London was about adopting a formal
>>> release process. In fact, I've talked about adopting a shorter release cycle
>>> for Symfony for quite some time now, and I think that this is the right time
>>> to discuss it.
>>>
>>> As we have all noticed, Symfony enjoys a large community of "core"
>>> developers: a core developer being someone who contribute to Symfony on a
>>> regular basis. The flow of pull requests has been outstanding and steady for
>>> the past two years, and with such an activity, trying to release often
>>> without a clear roadmap is quite difficult. Adopting a more formal release
>>> cycle will also give more visibility to the contributors and allow for
>>> everyone to understand when a new feature might be available in Symfony.
>>>
>>> So, here is my initial proposal, which is the one I've talked about
>>> during Symfony Live and of course, it is up for discussion. I would like to
>>> apply the new release process as soon as possible and if possible for
>>> Symfony 2.2. And whenever we all agree on the final version of this
>>> proposal, it will be included in the official Symfony documentation.
>>>
>>> This release process only applies to the code hosted on the
>>> symfony/symfony repository, but of course, I hope that third-party code
>>> related to Symfony (like the Symfony bundles) will also adopt it (at least,
>>> just for the timeline).
>>>
>>> Let's list the goals for the new process:
>>>
>>>  * Shorten the release cycle;
>>>
>>>  * Keep backward compatibility as much as possible;
>>>
>>>  * Enhance the overall quality of the framework (not just the code, but
>>> documentation, bundles, ...);
>>>
>>>  * Give more visibility to our "customers": developers using the
>>> framework to get their job done and Open-Soure projects using/embedding
>>> Symfony;
>>>
>>>  * Improve the experience of Symfony core contributors by controlling the
>>> flow of incoming pull requests (why pull requests are not always merged
>>> right away? when will a new feature be merged? when breaking BC is
>>> acceptable? ...);
>>>
>>>  * Coordinate our timeline with projects that we are using (Doctrine,
>>> Propel, Monolog, Assetic, Twig, ...) but also with projects that are
>>> using/embedding Symfony;
>>>
>>>  * Give time to the Symfony ecosystem to catch up with the new versions
>>> (bundleauthors, documentation writers, translators, ...);
>>>  * Allow developers to benefit from the new features faster.
>>>
>>> That's a lot to take care of!
>>>
>>> So, without further ado, here is my plan.
>>>
>>> Timeline
>>> --------
>>>
>>> Historically, we've been able to release a new major version every year
>>> since 2005. Nothing was even written about that, but that's what we did.
>>>
>>> From now on, I propose to adopt a *time-based model* for Symfony and I
>>> think that having a new major release every six months is a good compromise:
>>> it gives plenty of time to work on new features but it also allows for
>>> non-ready features to be postponed to the next version (without having to
>>> wait too much for the next cycle).
>>>
>>> Six months should be fast enough for developers who want to work on the
>>> latest and the greatest; but at the same time, companies might want more
>>> time to learn and upgrade. The way to make everyone happy is to ensure an
>>> easy upgrade path from one version to the next one. Take Twig as an example:
>>> I've been able to release a new major version every month and a half since
>>> 1.0; that's very fast and it has been possible because we've kept backward
>>> compatibility between all major releases (and of course the scope of Twig is
>>> also smaller).
>>>
>>> Six month releases mean that two releases fit in a year and so, everybody
>>> knows when releases will be made without having to check on the website: for
>>> Symfony it will be at the end of May and at the end of November of each
>>> year. That brings predictability and visibility.
>>>
>>> The key is keeping backward compatibility. We must be much more careful
>>> when breaking backward compatibility; and the possibility to break backward
>>> compatibility depends on the component we are talking about. The following
>>> components must never break backward compatibility because they are the
>>> low-level architecture of the framework and also because so many people rely
>>> on them:
>>>
>>>  * ClassLoader
>>>  * Console
>>>  * DependencyInjection
>>>  * EventDispatcher
>>>  * HttpFoundation
>>>  * HttpKernel
>>>  * Routing
>>>
>>> Backward compatibility should be easy to keep for the following
>>> components:
>>>
>>>  * BrowserKit
>>>  * CssSelector
>>>  * DomCrawler
>>>  * Filesystem
>>>  * Finder
>>>  * Locale
>>>  * OptionsResolver
>>>  * Process
>>>  * Templating
>>>  * Yaml
>>>
>>> And these components should probably become more stable soon, but that's
>>> not that easy (yet):
>>>
>>>  * Config
>>>  * Form
>>>  * Security
>>>  * Serializer
>>>  * Translation
>>>  * Validator
>>>
>>> Six months can be seen as a rather short period to make a new release,
>>> especially if we look at what we did in the past. I think we can make it
>>> work because we have now more people able to help, but also because the six
>>> month period itself should be cut in shorter periods:
>>>
>>>  * Development: 4 months to add new features and to enhance existing
>>> ones;
>>>
>>>  * Stabilisation: 2 months to fix bugs, prepare the release, and wait for
>>> the whole ecosystem to catch up.
>>>
>>> During the development phase, we can revert any new feature if we think
>>> that we won't be able to finish it in time or if we think that it won't be
>>> stable enough to be included.
>>>
>>> During the stabilisation phase, some developers might still work on new
>>> features for the next version, but it would be better if most developers can
>>> concentrate on finishing the current version.
>>>
>>> By the way, when I have a look at the pull requests today, I think that
>>> we already have enough features for Symfony 2.2.
>>>
>>> Long Term Support release
>>> -------------------------
>>>
>>> We've not yet published our LTS release for Symfony2. As I mentioned it
>>> in the past, the first LTS should be Symfony 2.3.
>>>
>>> Each LTS release will be supported for a 3 year period but it will also
>>> be supported for at least a year after the next LTS is released. So, it
>>> means that we are going to release a new LTS version every two years.
>>>
>>> This dual release cycle should make everyone happy. If you are a fast
>>> mover, you want to work with the latest and the greatest, stick with the
>>> standard support releases: you have a new version every six months, and you
>>> have two months to upgrade to the next one. If you are a big company, and
>>> you want more stability, stick with the long term support releases: you get
>>> a new version every two years and you have a year to upgrade.
>>>
>>> Schedule
>>> --------
>>>
>>> To make things more concrete, here is the schedule for the next few
>>> versions:
>>>
>>>  * Symfony 2.2 will be released at the end of February 2013;
>>>
>>>  * Symfony 2.3 (the first LTS) will be released at the end of Mai 2013
>>> (only 3 months after 2.2 as it will be a "special" release in the sense that
>>> we will mainly remove the 2.0 BC layer and also because I think that May and
>>> November are the best months for releases);
>>>
>>>  * Symfony 2.4 will be released at the end of November 2013;
>>>
>>>  * Symfony 2.5 will be released at the end of Mai 2014;
>>>
>>>  * ...
>>>
>>> So, why not releasing Symfony 2.2 earlier as we already have so many
>>> features waiting in the pull request queue? Because of the next section:
>>> this is our last chance to break backward compatibility.
>>>
>>> Symfony 3.0
>>> -----------
>>>
>>> After the release of Symfony 2.3, backward compatibility will be kept at
>>> all cost. If it is not possible, the feature/enhancement will be scheduled
>>> for Symfony 3.0. And the work on 3.0 will start whenever we think that we
>>> have enough great features under our belt to make it worth it.
>>>
>>> Maintenance
>>> -----------
>>>
>>> After Symfony 2.3, non LTS releases will be maintained for 8 months to
>>> give people plenty of time to upgrade (keep in mind that even if no BC
>>> breaks will have occurred, you might need to upgrade your applications to
>>> benefit from the new features and the new best practices).
>>>
>>> Contributions
>>> -------------
>>>
>>> To make the new process works well (no BC and a fixed schedule), we need
>>> to formalise the contribution process a bit more. Every new Symfony feature
>>> or enhancement must be worked on via Git pull requests. A few months ago, we
>>> formalised the pull request process a bit by adding a required
>>> [header](http://symfony.com/doc/current/contributing/code/patches.html#make-a-pull-request)/check
>>> list. But I've done a poor job in enforcing the rule. So, I'm going to be
>>> uncompromising about it now and at the same time I'd like to introduce even
>>> more checks in the list.
>>>
>>> A pull request will only be merged if the following rules are met:
>>>
>>>  * The code is correct and it uses the Symfony way of doing things
>>> (naming conventions, coding standards, ...);
>>>
>>>  * The new code is tested (or the bug to fix is covered by tests) and all
>>> the tests pass on all supported PHP versions;
>>>
>>>  * The documentation has been updated (with a pending pull request on
>>> symfony/symfony-docs);
>>>
>>>  * The changelog and upgrade files have been updated;
>>>
>>>  * No backward compatibility break has been introduced;
>>>
>>>  * If it is a fix, it has been applied to the oldest and still supported
>>> Symfony version;
>>>
>>>  * For major features, a RFC has been written, discussed, and approved.
>>>
>>> As I said at the beginning, this is a draft, and you are all welcome to
>>> chime in and propose changes.
>>>
>>>
>>> --
>>> Fabien Potencier
>>> Sensio CEO - Symfony lead developer
>>> sensiolabs.com | symfony.com | fabien.potencier.org
>>> Tél: +33 1 40 99 80 80
>>>
>>> --
>>> If you want to report a vulnerability issue on symfony, please send it to
>>> security at symfony-project.com
>>>
>>> You received this message because you are subscribed to the Google
>>> Groups "symfony developers" group.
>>> To post to this group, send email to symfony-devs@googlegroups.com
>>> To unsubscribe from this group, send email to
>>> symfony-devs+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/symfony-devs?hl=en
>>
>>
>> --
>> If you want to report a vulnerability issue on symfony, please send it to
>> security at symfony-project.com
>>
>> You received this message because you are subscribed to the Google
>> Groups "symfony developers" group.
>> To post to this group, send email to symfony-devs@googlegroups.com
>> To unsubscribe from this group, send email to
>> symfony-devs+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/symfony-devs?hl=en
>
>
> --
> If you want to report a vulnerability issue on symfony, please send it to
> security at symfony-project.com
>
> You received this message because you are subscribed to the Google
> Groups "symfony developers" group.
> To post to this group, send email to symfony-devs@googlegroups.com
> To unsubscribe from this group, send email to
> symfony-devs+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/symfony-devs?hl=en



-- 
Best regards,
Michal

http://eventhorizon.pl/
https://getactive.pl/

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to symfony-devs@googlegroups.com
To unsubscribe from this group, send email to
symfony-devs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en

Reply via email to