PHP_CompatInfo ChangeLog
========================
:author:      Laurent Laville
:email:       pear@laurent-laville.org
:stylesdir:   styles
:scriptsdir:  js

== Version 2.8.1 (2012-09-28)

.Additions and changes:
* none

.Bug fixes:
* fixed latest version of standard and Core references
* fixed curl reference about new PHP 5.4 constants
* fixed default version about anonymous function
* phpci list command raises notice errors


== Version 2.8.0 (2012-09-15)

.Versions summary:
* 2.8.0 support all PHP versions until 5.4.7
* 2.7.0 support all PHP versions until 5.4.6
* 2.6.0 support all PHP versions until 5.4.5
* 2.5.0 support all PHP versions until 5.4.4
* 2.4.0 support all PHP versions until 5.4.3
* 2.3.0 support all PHP versions until 5.4.0
* 2.2.0 support all PHP versions until 5.3.10
* 2.1.0 support all PHP versions until 5.3.8

.Additions and changes:
* add 5 new references data dictionnaries related to extensions:
  amqp, geoip, inclued, mongo, XCache
* introduces a new Reference API that allow to filter elements (interfaces, classes, functions, constants)
on php version or extension release, with or without a particular relationship (like operator in version_compare)
* Full filter support for 25 extensions (that have all releases documented):
  ** amqp (1.0.7)
  ** apc (3.1.13)
  ** enchant (1.1.0)
  ** fileinfo (1.0.5)
  ** filter (0.11.0)
  ** geoip (1.0.8)
  ** hash (1.0)
  ** inclued (0.1.3)
  ** intl (2.0.1)
  ** json (1.2.1)
  ** libxml
  ** lzf (1.6.2)
  ** mailparse (2.1.6)
  ** memcache (3.0.6)
  ** memcached (2.1.0)
  ** mongo (1.2.12)
  ** OAuth (1.2.2)
  ** Phar (2.0.1)
  ** solr (1.0.2)
  ** sphinx (1.2.0)
  ** tidy (2.0)
  ** XCache (2.0.1)
  ** xdebug (2.2.1)
  ** zip (1.11.0)
  ** zlib (2.0)
* Limited filter support to php versions only for all other extensions

.Bug fixes:
* none

.Additions and changes since beta2:
* add 4 new references data dictionnaries related to extensions: geoip, inclued, mongo, XCache
* add full filter support for extensions geoip (1.0.8), inclued (0.1.3), json (1.2.1), libxml,
lzf (1.6.2), mailparse (2.1.6), memcache (3.0.6), memcached (2.1.0), OAuth (1.2.2),
Phar (2.0.1), solr (1.0.2), XCache (2.0.1)

.Bug fixes since beta2:
* none


== Version 2.8.0beta2 (2012-09-07)

.Additions and changes since beta1:
* add 1 new references data dictionnaries related to extensions: mongo
* add full filter support for extensions fileinfo (1.0.5), filter (0.11.0),
hash (1.0), mongo (1.2.12), tidy (2.0), zip (1.11.0), zlib (2.0)

.Bug fixes since beta1:
* none


== Version 2.8.0beta1 (2012-09-04)

.Additions and changes:
* introduces a new Reference API that allow to filter elements (interfaces, classes, functions, constants)
on php version or extension release, with or without a particular relationship (like operator in version_compare)
* Full filter support for extensions apc (3.1.13), enchant (1.1.0), intl (2.0.1), sphinx (1.2.0), xdebug (2.2.1)
* Limited filter support to php versions only for all other extensions

.API filter examples on extension releases:
* phpci list-classes intl 1.0.0
* phpci list-functions xdebug 2.0.0 ge
.API filter examples on php versions:
* phpci list-constants intl php_5.2.0 gt
* phpci list-functions apc php_4  (only php <  php 5.0.0)
* phpci list-functions apc php_5  (only php >= php 5.0.0)

Upgrades extension dependencies:
new Reference API uses PHP ReflectionClass (see REF_VERSION class constant : latest version of Extension/Reference supported)

Adds missing Xdebug unit tests (while reference exists since 2.0.0RC3)

.Bug fixes:
* none


== Version 2.7.0 (2012-09-02)

.Versions summary:
* 2.7.0 support all PHP versions until 5.4.6
* 2.6.0 support all PHP versions until 5.4.5
* 2.5.0 support all PHP versions until 5.4.4
* 2.4.0 support all PHP versions until 5.4.3
* 2.3.0 support all PHP versions until 5.4.0
* 2.2.0 support all PHP versions until 5.3.10
* 2.1.0 support all PHP versions until 5.3.8

.Additions and changes since 2.7.0RC1:
* none

.Additions and changes since 2.6.0:
* add a new report (condition) for CLI tool that will replace the warning messages
on conditional code uses
* removed warning messages about conditional code uses; replaced by
the new --report condition of the CLI tool
* add a new level for conditional code uses about traits (PHP 5.4 feature)
* add a new API getter for Traits (PHP 5.4 feature)
* User classes that used visibility (public, protected, private) are now identified
as PHP 5.0.0 and no more as PHP 4.0.0
* Improved global results in a multiple data source context
* Add a warning message when --reference ALL used with extension detected but not loaded
* Add ability to exclude traits from parsing with the CLI tool and the XML configuration file
* XML report may show results either group by components or files
* add namespaces in XML report
* upgrade jquery minimized to version 1.7.2; used by summary.xsl.

.Bug fixes since 2.7.0RC1:
* none

.Bug fixes since 2.6.0:
* API getters gave wrong results when data source is list of files (directory)
* Avoid exception in all case when xml configuration location is not a file
* Avoid exception when a directory phpci exists in save_path cache file
* Force clean cache when --reference or --exclude-pattern changed. Avoid old results.


== Version 2.7.0RC1 (2012-08-17)

.Additions and changes:
* add a new report (condition) for CLI tool that will replace the warning messages
on conditional code uses
* removed warning messages about conditional code uses; replaced by
the new --report condition of the CLI tool
* add a new level for conditional code uses about traits (PHP 5.4 feature)
* add a new API getter for Traits (PHP 5.4 feature)
* User classes that used visibility (public, protected, private) are now identified
as PHP 5.0.0 and no more as PHP 4.0.0
* Improved global results in a multiple data source context
* Add a warning message when --reference ALL used with extension detected but not loaded
* Add ability to exclude traits from parsing with the CLI tool and the XML configuration file
* XML report may show results either group by components or files
* add namespaces in XML report
* upgrade jquery minimized to version 1.7.2; used by summary.xsl.

.Bug fixes:
* API getters gave wrong results when data source is list of files (directory)
* Avoid exception in all case when xml configuration location is not a file
* Avoid exception when a directory phpci exists in save_path cache file
* Force clean cache when --reference or --exclude-pattern changed. Avoid old results.


== Version 2.6.0 (2012-07-26)

.Versions summary:
* 2.6.0 support all PHP versions until 5.4.5
* 2.5.0 support all PHP versions until 5.4.4
* 2.4.0 support all PHP versions until 5.4.3
* 2.3.0 support all PHP versions until 5.4.0
* 2.2.0 support all PHP versions until 5.3.10
* 2.1.0 support all PHP versions until 5.3.8

.Additions and changes since 2.6.0RC1:
* fixed plural in the footer of all reports produced by CLI
* add namespace (when necessary) in XML report
* improved version detection of namespaces aliases uses in type hinting

.Additions and changes since 2.5.0:
* Users have now ability to use their own autoloader (related to issue GH-43)

.Bug fixes since 2.6.0RC1:
* fix references to latest version of branch PHP 5.3
* wrong namespace used for class when importing other namespaces (see PHP_Reflect 1.4.2)
* excludes callable type hint in additionnal class search

.Bug fixes since 2.5.0:
* GH-34 : Remove false positive on A::CONST_NAME
* GH-38 : type hinting in function prototype
* GH-39 : class not detected and bad version
* GH-40 : ambiguous class report
* GH-42 : Remove parameter versions from scandir()
* unit tests suites PHP 5.2 compatibility with source only parsable with PHP 5.3 or greater


== Version 2.6.0 RC1 (2012-07-23)

.Additions and changes:
* Users have now ability to use their own autoloader (related to issue GH-43)

.Bug fixes:
* GH-34 : Remove false positive on A::CONST_NAME
* GH-38 : type hinting in function prototype
* GH-39 : class not detected and bad version
* GH-40 : ambiguous class report
* GH-42 : Remove parameter versions from scandir()
* unit tests suites PHP 5.2 compatibility with source only parsable with PHP 5.3 or greater


== Version 2.5.0 (2012-06-18)

.Versions summary:
* 2.5.0 support all PHP versions until 5.4.4
* 2.4.0 support all PHP versions until 5.4.3
* 2.3.0 support all PHP versions until 5.4.0
* 2.2.0 support all PHP versions until 5.3.10
* 2.1.0 support all PHP versions until 5.3.8

.Additions and changes:
* add 8 new references data dictionnaries related to extensions: exif, lzf,
mailparse, mssql, solr, sphinx, xhprof, Yaml

.Bug fixes:
* GH-37 : cache content depends on installed extension
* GH-41 : Prevent division by zero PHP warning from progressbar when nothing parsed


== Version 2.4.0 (2012-05-09)

.Versions summary:
* 2.4.0 support all PHP versions until 5.4.3
* 2.3.0 support all PHP versions until 5.4.0
* 2.2.0 support all PHP versions until 5.3.10
* 2.1.0 support all PHP versions until 5.3.8

.Additions and changes:
* ext/mbstring : add support for mb_ereg_replace_callback function
* Growl Test Listener used now the latest version (2.6.0) of Net_Growl
* phing build script can now generate PDF in both format A4 and US

.Bug fixes:
* fix wrong closure detection
* GH-31 : Don't write warnings to reports and don't print report if written to file
* GH-32 : Remove false positive on id(new stdClass)->c signature
* GH-33 : Avoid deadlock in object operator


== Version 2.3.0 (2012-03-05)

.Versions summary:
* 2.3.0 support all PHP versions until 5.4.0
* 2.2.0 support all PHP versions until 5.3.10

.Additions and changes:
* add 1 new references data dictionnaries related to extensions: Zip,
* XSL stylesheet summary.xsl that transform XML report to HTML page
  display now traits (PHP 5.4)

.Bug fixes:
* fix case sensitive name of Reflection reference in data dictionnary


== Version 2.2.5 (2012-02-24)

.Additions and changes:
* version 2.2.5 or better will support all PHP 5.4.0RC,
  and future version 2.3.0 is reserved for final PHP 5.4.0 stable release
* add support of new PHP 5.4 classes :
  SPL: CallbackFilterIterator, RecursiveCallbackFilterIterator
  Intl: Transliterator, Spoofchecker
  Session: SessionHandler
* add support of new PHP 5.4 interfaces :
  Json: JsonSerializable
  Session: SessionHandlerInterface
* add 1 new references data dictionnaries related to extensions: Reflection,
* add support for Growl test listener ( https://github.com/llaville/phpunit-GrowlTestListener )

.Bug fixes:
* none


== Version 2.2.4 (2012-02-17)

.Additions and changes:
* add missing magic constant __TRAIT__ in core reference
* remove @cover annotation (that raise PHP_CodeCoverage_Exception)
  for magic method in IssueTest.php

.Bug fixes:
* GH-28 classMemberAccessOnInstantiation detection error
  https://github.com/llaville/php-compat-info/issues/28
* GH-29 inconsistent magic constants detection on PHP 5.2, 5.3 and 5.4
  https://github.com/llaville/php-compat-info/issues/29


== Version 2.2.3 (2012-02-14)

.Additions and changes:
* solve license conflict issue due to typo error in package.php script (thanks to Remi Collet)
* protect cache file usage with invalid save_path
* normalize cache file name
  and avoid to delete no phpci cache files in directory identified by save_path option
* invalid all cache files when upgrading to a new PHP_CompatInfo version

.Bug fixes:
* GH-27 Mistake in arrayDereferencing detection
  https://github.com/llaville/php-compat-info/issues/27


== Version 2.2.2 (2012-02-09)

.Additions and changes:
* Phing documentation build script has evolved to allow more customized options
* EPUB doc format is now available to download

.Bug fixes:
* PHP minimum version on XSL references for XSL_SECPREF constants
* GH-26 Mistake in classMemberAccessOnInstantiation detection
  https://github.com/llaville/php-compat-info/issues/26


== Version 2.2.1 (2012-02-03)

.Additions and changes:
* Version 2.2.0 support until PHP 5.3.9 and 5.4.0
* Version 2.2.1 support until PHP 5.3.10 and 5.4.0

.Bug fixes:
* none


== Version 2.2.0 (2012-02-02)

.Additions and changes:
* fix references for functions with parameters that have different versions
* add detection for class member access on instantiation (e.g. (new Foo)->bar())
* add detection of array dereferencing (PHP 5.4 feature)
* improves detection for function with version changed depending of signature (arguments)
* add PHPUnit configuration file (phpunit.xml). Help for CI env integration
* split Issues Tests in two classes depending of code licences
* fix references for PHP 5.4.0
* make doc generation with AsciiDoc compatible with older version 8.4.5 (especially for old linux distributions)
* phing build documentation script is now easily reuseable (configuration through an external properties file)
* add 2 new references data dictionnaries related to extensions: ldap, oauth
* removes experimental PEAR package detection

.Bug fixes:
* request #13094 : PHP5 method chaining ( http://pear.php.net/bugs/bug.php?id=13094 )
* fix version stamp in XML report


== Version 2.1.0 (2011-08-24)

.Additions and changes:
* support all PHP versions until 5.3.8
* add 2 new references data dictionnaries related to extensions: memcache, memcached

.Bug fixes:
* none


== Version 2.0.0 (2011-07-02)

.Additions and changes:
* add 1 new references data dictionnaries related to extensions: intl
* add source documentation that can be build with AsciiDoc (see docs/README.txt)

.Bug fixes:
* wrong PHP extension/internal functions detection when using namespace


== Version 2.0.0 RC4 (2011-04-24)

.Additions and changes:
* add 15 new references data dictionnaries related to extensions:
  APC, Mhash, Mcrypt, Phar, posix, Readline, recode, snmp, Soap, sqlite3,
  sysvmsg, sysvsem, sysvshm, tidy, xmlrpc
* detect now magic constants (__LINE__, __FILE__, __DIR__, __FUNCTION__, __CLASS__, __METHOD__, __NAMESPACE__)
* printing multiple reports feature is available. Use either:
  - phpci --report summary --report function /path/to/source
  - or just simple  phpci --report summary function /path/to/source
  - with XML config file, adds a comma separate valid report types in 'report' property of tag <phpcompatinfo>
* add summary reports (new default behavior) on each category (extension, interface, class, function, constant)
* add namespace report
* add token report (language features as goto, use, try /catch, throw, instanceof, clone, ...)
* add globals/superglobals report
* add short option to set php.ini directive value
* reduced amount of memory used by PHP_Reflect to return only necessary properties

.Bug fixes:
* list-references command did not displayed extensions with mixed cases like (PDO, SQLite, SimpleXML)


== Version 2.0.0 RC3 (2011-03-24)

.Additions and changes:
* add 7 new references data dictionnaries and unit tests related to extensions:
  enchant, ereg,  fileinfo, gmp, imap, pcntl, shmop (thanks to contributor [remicollet])
* adds LICENSE file
* adds HOWTO file, a mini guide to help users
* bartlett/PHP_Reflect replaces phpunit/PHP_TokenStream as PHP parser
* pear/Console_CommandLine replaces ezcConsoleInput
* adds new sub-command list-references to know which extensions are supported
* changes base install directory
* default config file phpcompatinfo.xml.dist is now locate into PEAR cfg_dir

.Bug fixes:
* none


== Version 2.0.0 RC2 (2011-02-24)

.Additions and changes:
* add 20 new references data dictionnaries related to extensions:
  ctype, dom, filter, ftp, gettext, iconv, json, mysql, mysqli, openssl, pgsql,
  session, simplexml, sqlite, ssh2, wddx, xmlreader, xmlwriter, xsl, zlib
* Don't overwrite PHP_CompatInfo 1.x previous installation
* add a XSL transformation stylesheet to produce a summary XHTML page from XML report
  (see directory misc/)

.Bug fixes:
* none


== Version 2.0.0 RC1 (2011-01-24)

PHP_CompatInfo 2 is now available on a new PEAR channel: bartlett.laurent-laville.org

.Additions and changes:
* New reference: PEAR; that allows to identify components related to PEAR packages
* add new references data dictionnaries related to extensions:
  mbstring, PDO, sockets, xml
* add new references data dictionnaries related to PEAR packages:
  Net_Growl
* clean-up dupplicated warning messages on all reports
* list references in the data base may be now restrict to a specific extension

.Bug fixes:
* An error message is now printed for errors while parsing the +phpcompatinfo.xml+ file

.Bug fixes and changes related to PHP_TokenSteam code:
* Wrapper can now provide all new features expected, even if lot of code should be remove later
when a new stable release of PHP_TokenSteam will be available.


== Version 2.0.0 beta4 (2011-01-10)

.Additions and changes:
* option 'referenceDriver' removed in favour of new reference plugins system.
  See new option 'referencePlugins' and configuration file phpcompatinfo.xml
* Net_Growl 2.2.1 is necessary if you want to use the Growl listener (optional)

.Bug fixes:
* extension report was missing in beta3 distribution
* FIX base path displayed on all reports
* FIX missing extensions dependencies in package.xml

.Bug fixes and changes related to PHP_TokenSteam code:
* add a wrapper for current stable version 1.0.1;
  some new features may be available with future versions


== Version 2.0.0 beta3 (2010-12-29)

.Additions and changes:
* add unit tests for all issues detected in PCI versions lower than 2.0.0
* add references for SPL extension
* add references for gd extension
* add references for hash extension
* add references for libxml extension
* add references for pcre extension
* add references for tokenizer extension
* fix version and origin of interfaces
  'Traversable','IteratorAggregate','Iterator','ArrayAccess','Serializable'
* implements function PHP_CompatInfo::getConditions and all reports uses
* Xml report show now the PHP required versions (min, max)
* cache file introduces garbage collector features (probability and maxlifetime)
* more and more phpdoc tags
* replace assertType by assertInternalType in test suites to be ready for PHPUnit 3.6
* fix dependency for minimum PHP version (5.2.0 rather than 5.0.0)
* add missing dependencies in package.xml (ezComponents, ...)

.Bug fixes:
* reset function (http://www.php.net/manual/en/function.reset.php)
  missing in standard extension data dictionary

.Bug fixes and changes related to PHP_TokenSteam code:
* PHP_Token_STRING class rewrote to improve detection of more code
* PHP_Token_CONSTANT_ENCAPSED_STRING class implemented for constant detection


== Version 2.0.0 beta2 (2010-12-23)

.Additions and changes
* Summary report: same file path are now unique (improve readibility)
* Message 'File "phpcompatinfo.xml" does not exist' added to warnings stack
* Message 'Report file: "/path/to/reportFile" is invalid' added to warnings stack
* Added more phpdoc tags
* Allow configuration of cache with XML file
* Allow recursive directory parsing (default is local folder only)
* Improved visual render of all reports
* File extensions to include are customisable (default is: php,inc,phtml)
* Ability to set a php.ini directive value (allocate memory limit for huge data source)
* Code factorized with the magic method __call
* Add autoload for cache system
* code clean-up (debug code and more)

.Bug fixes
* Cache file: isCached() did not detect previous cached results
* wrong versions displayed (in some condition) on all reports with folder as data source


== Version 2.0.0 beta1 (2010-12-20)

First preview
