updated CHANGELOG for 2.0.21
updated VERSION for 2.0.21
bumped Symfony version to 2.0.21-DEV
add preferred_query option to ModelType

This enables the ModelChoiceList to use 'preferred_choices' of the parent ChoiceType.
use preferred_choices in favor of preferred_query
HttpUtils must handle RequestMatcher too
Fixed php doc of GenericEvent::__construct
merged branch lyrixx/fix-eventdispatcher (PR #6487)

This PR was merged into the 2.1 branch.

Commits
-------

abf5e51 [EventDispatcher] Fixed php doc of GenericEvent::__construct

Discussion
----------

[EventDispatcher] Fixed php doc of GenericEvent::__construct

```
Bug fix: yes (doc)
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes (no modified)
Fixes the following tickets: -
Todo: -
License of the code: MIT
```

---------------------------------------------------------------------------

by drak at 2012-12-26T21:51:54Z

Well spotted.
merged branch havvg/feature/propel1-modelchoice-preferred (PR #6454)

This PR was merged into the 2.1 branch.

Commits
-------

05fca6d use preferred_choices in favor of preferred_query
6855cff add preferred_query option to ModelType

Discussion
----------

[Propel1] add preferred_choices option to ModelType

This enables the ModelChoiceList to use 'preferred_choices' of the parent ChoiceType.

Ping @willdurand

---------------------------------------------------------------------------

by willdurand at 2012-12-22T09:39:39Z

:+1:
[Tests] Fix namespaces
merged branch franmomu/fix_test_namespaces (PR #6497)

This PR was merged into the 2.1 branch.

Commits
-------

a6704f3 [Tests] Fix namespaces

Discussion
----------

[Tests] Fix namespaces
[Form] Fixed test regression introduced in #6440
merged branch bschussek/issue6440 (PR #6505)

This PR was merged into the 2.1 branch.

Commits
-------

87dcf25 [Form] Fixed test regression introduced in #6440

Discussion
----------

[Form] Fixed test regression introduced in #6440

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -
[Bundle] [FrameworkBundle] fixed typo in phpdoc of the SessionListener.
[Locale] Fixed the StubLocaleTest for ICU versions lower than 4.8.

Symbol for Brazilian Real is BR$ only in ICU 4.8. All previous and later versions use R$.

Links to the data files:
* http://source.icu-project.org/repos/icu/icu/tags/release-4-8/source/data/curr/en.txt
* http://source.icu-project.org/repos/icu/icu/tags/release-4-4/source/data/curr/en.txt
* http://source.icu-project.org/repos/icu/icu/tags/release-49-1/source/data/curr/en.txt
[Form] Fixed failing tests for DateTimeToStringTransformer.

Tests were only failing at the end of the month. PHP uses current day if it is not passed. Since February was used in the test cases, date was being moved to the next month (February has less days than other months).
merged branch hhamon/session_listener_typo (PR #6512)

This PR was merged into the 2.0 branch.

Commits
-------

a88607c [Bundle] [FrameworkBundle] fixed typo in phpdoc of the SessionListener.

Discussion
----------

[Bundle] [FrameworkBundle] fixed typo in phpdoc of the SessionListener.

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -
Revert "[DoctrineBridge] Improved performance of the EntityType when used with the "query_builder" option"

This reverts commit b604eb7b52d3c7ed8828b7fe10f3e172d1451a16.

Conflicts:
	src/Symfony/Bridge/Doctrine/Tests/Form/Type/EntityTypePerformanceTest.php
merged branch jakzal/form-tests-fix (PR #6517)

This PR was merged into the 2.1 branch.

Commits
-------

81967f6 [Form] Fixed failing tests for DateTimeToStringTransformer.

Discussion
----------

[Form] Fixed failing tests for DateTimeToStringTransformer

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -

Tests were only failing at the end of the month. Since February was used in the test cases, date was being moved to the next month (February has less days than other months).

If a day is not passed, \DateTime's constructor will set it to the first day of the month:

```php
var_dump(new \DateTime('2010-02'));

object(DateTime)#1 (3) {
  ["date"]=>
  string(19) "2010-02-01 00:00:00"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(13) "Europe/London"
}
```
\DateTime is used in the test assertions.

However, DateTimeToStringTransformer::reverseTransform() uses \DateTime::createFromFormat(), which sets a missing day to the current day:

```php
var_dump(\DateTime::createFromFormat("Y-m", '2010-02'));

object(DateTime)#1 (3) {
  ["date"]=>
  string(19) "2010-03-01 20:09:26"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(13) "Europe/London"
}
```

I changed the date in the test case to avoid failures. If we need to be sure that month's not going to be changed, I'll update my PR.
merged branch jakzal/stub-tests (PR #6515)

This PR was merged into the 2.1 branch.

Commits
-------

ef6f241 [Locale] Fixed the StubLocaleTest for ICU versions lower than 4.8.

Discussion
----------

[Locale] Fixed the StubLocaleTest for ICU versions lower than 4.8

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: no but for other reason in an another component
Fixes the following tickets: #5517
Todo: -
License of the code: MIT
Documentation PR: -

Symbol for Brazilian Real is BR$ only in ICU 4.8. All previous and later versions use R$.

Links to the relevant data files:
* http://source.icu-project.org/repos/icu/icu/tags/release-4-8/source/data/curr/en.txt
* http://source.icu-project.org/repos/icu/icu/tags/release-4-4/source/data/curr/en.txt
* http://source.icu-project.org/repos/icu/icu/tags/release-49-1/source/data/curr/en.txt

---------------------------------------------------------------------------

by jakzal at 2012-12-29T19:23:25Z

Note that currently *USE_ICU_DATA_VERSION* is required for some tests to pass. This is inconsistent with *Locale::getIcuDataVersion()* which returns *Locale::ICU_DATA_VERSION* if *USE_ICU_DATA_VERSION* is not set. Technically intl extension shouldn't be needed to run the stub tests.

Following code could fix the issue for StubLocale tests:

```php
class StubLocaleTest extends LocaleTestCase
{
    // ...
    protected function getIntlExtensionIcuVersion()
    {
        // Locale::getIcuDataVersion(), which is used to determine the directory of stubs,
        // uses Locale::ICU_DATA_VERSION if USE_INTL_ICU_DATA_VERSION is not given
        if (!getenv('USE_INTL_ICU_DATA_VERSION')) {
            return Locale::ICU_DATA_VERSION;
        }

        return parent::getIntlExtensionIcuVersion();
    }
}
```

This code cannot be placed in the LocaleTestCase as intl tests need the icu data version from the intl extension.

I'm not sure if this is desired and therefore I didn't include it in my PR. Let me know your thoughts and wether I should create another PR for this, use the current PR or forget about it.