Releases: may-den/pineapple
Pineapple 0.3.8
Gosh, time for a new release. It's been so long.
- Build matrix checks for PHP right up to PHP 8.1
- Relax version constraint on PHPUnit so that we can still test on PHP 8.1
- Drop Slack notification to a secret location
- Pineapple has moved home to may-den
- Work around deprecated assertions and stop using unnecessary regexp assertions when strings can be used
- Fix deprecation notices around
PDOStatement::fetch
cursors so that peaceful harmony is maintained after PHP 7 - Remove two redundant tests, for which we removed the scenario we were testing long ago
- Other test improvements
- Small phpcs tidy ups
- Update maintainer list to remove what will be soon a no-longer-used email address 😢
My thanks to Mayden ahead of my tearful farewell ❤️
Pineapple 0.3.7
Been a little while, so here's some more fruit!
Important changes:
- Catch DBAL exception instead of connection exception (thanks to @marty-crane)
- Suppress warning generation when opaque file insertion occurs on an unreadable file; use Pineapple error handling
- vfsStream dependency fixed to remove warnings regarding Composer 2.0
Other changes:
- (devsuite) Travis runs against PHP from versions 5.6 -> 7.3 now
- (devsuite) Test coverage back up at 100% (codeCoverageIgnore still in effect but will be reduced in future)
Pineapple 0.3.6
This is the next release of Pineapple. It was originally planned that the next release would be 0.4.x, but planned changes to reduce/remove the prepare query emulation mode has been staged until time permits.
Important changes:
- Any common methods in the trait
PdoCommonMethods
which triggered an exception due to PDO being in exception error mode failed in having their exceptions caught due to a missing namespace alias. This change repairs this. (closes #55)
Other changes:
- (devsuite) prettyprint dropped from phpunit
- (devsuite) a load of
@codeCoverageIgnore
blocks have been removed and tests incorporated using the excellent Prophecy to rememdy this - (bug) a
die
which was supposed to die with a message contained an erroneousprintf
which should have beensprintf
; it's fixed now. this may have originated in DB upstream - (style) more tidying and cleanup, psr-2 style, etc.
Test suite coverage may be missing six or seven lines of coverage thanks to some test changes, but we'll work on getting those lines covered again in the next release.
In addition, this release has been tested with PHP 7.2RC and confirmed working. When Travis-CI updates images with PHP 7.2 binaries the CI will be updated to reflect this.
I had anticipated working on the 0.4.0 release, but wanted to release these changes to repair the bug listed above - the updated tests revealed this. Branch policy will change in future to follow a gitflow-similar approach.
Pineapple 0.3.5
This is Pineapple release 0.3.5.
This is a bugfix release, related to issue #50. The changelog is:
- Unbuffered queries with
PdoDriver
on MySQL connections will now work correctly. The PHP documentation states that the query buffering option should be set on the statement handle, but the MySQL documentation on the php-api states that it should be set on the connection handle. Remedying this caused an immediate fix for retrieving large amounts of data.
Pineapple 0.3.4
This is release 0.3.4. No code changes have been made in this release, but development of the 0.3.x branch is winding down so this is a cleanup of matters before starting development on the 0.4.x branch. Changes are:
- Update README.md to give more details on how moving from DB to Pineapple will affect your code
- Drop references to pineapple-compat; it (probably) doesn't work and should probably be forgotten
- Add a list of contributors to the project in CONTRIBUTORS.md
Pineapple 0.3.3
This is release 0.3.3. This release contains the following fixes:
DriverInterface
is missing namespace import forPineapple\DB
, meaningDB::DB_*
constants in the interface are nonsensical.
This means that using Prophecy to create a test double causes a fatal error as it seeks constants in the wrong namespace.
Pineapple 0.3.2
Changes since 0.3.1:
pdo_mysql
does not support row seeking and even silently fails to do what is asked of it when requested. As such, we're making it clear that seeking is not possible by returning aDB_ERROR_UNSUPPORTED
error.
Pineapple 0.3.1
This is the 0.3.1 release of Pineapple. Changes since 0.3.0:
- some more PSR-2 fixes
- add a
getOne()
test for thePdoDriver
- fix a test case so that it works with earlier sqlite versions
- adjust
tableInfo()
output so it matches PEAR DB better - adjust
tableInfo()
so it only works with themysql
platform - repair query buffering for
PdoDriver
(not supported inDoctrineDbal
driver) - add a
changeDatabase()
method to backfill for (yucky) altering of the$db->_db
to switch databases on the fly - add accessors for
getResult
in theResult
class,getLastQuery
andgetLastQueryParameters
in the driverCommon
class - fix up the pending
@todo
list DriverInterface
is now method complete- fix some of the older XML markup in docblocks and change it to markdown
We failed to note in previous release that:
getSpecialQuery
getListOf
createSequence
& all other sequence facilities
Had been moved to pineapple-compat. You're advised to get used to life without them or write a polyfill.
Pineapple 0.3.0
This is the 0.3.0 release of Pineapple. Changes since 0.3.0-RC2 are:
- Add a
lastInsertId()
method to obtain the autoincrement/primary key value for the last statement, since we've made the connection handle private and we'd prefer you didn't resort to the connection object to obtain this. - More fixes to docblocks to make them accurate.
- Some fixes as per recommendations from phpmd and phan.
- Fix an invalid constant in an exception.
The changelog for the other release candidates, since 0.2.0 are:
- We're good to go with PHP 7.1
- Some unusual behaviour regarding bitwise operations was discovered, due to a backward compatibility feature which attempted to discover transposed parameters. PHP 7.1 raises a warning for this behaviour. This has been fixed, so no warnings, all tests running happily.
DB_FETCHMODE_*
constants changed to bit values.- There is discrepant behaviour across several classes in which some use bitwise checks and most don't. One class in particular checks for combined fetch modes, which is permitted. Bit values fixes this, though the rest of the classes that don't use bitwise checks probably can't be fixed for fear of dredging up the intended behaviour, and several bugs with it. It's safe as it is, let's just leave it.
- The docblocks now properly reflect the correct input class types. xml markers have been replaced with Github-flavoured markdown.
- Backward compatibility check for transposed
$fetchmode
and$params
has been removed fromgetRow()
andgetAll()
. It kept on putting the parameter into$fetchmode
when a single, scalar parameter was passed instead of a single value in an array. This isn't going to be put into pineapple-compat, so it's probably best to say goodbye now. - Immense amount of refactoring, rescoping variables as private, ensure PSR-2 cleanliness
- Fix lots of suggestions as made by phpmd/phpcs/CodeClimate
- Introduce PDO driver
- Abstract common functionality between Doctrine DBAL and PDO and move into a trait
- Statement handles moved into
StatementContainer
s, and used to abstract code further for sharing - Fix some fundamental bugs produced in 0.2.0
- Produce some exceptions for cases that constitute misuse/internal faults and should cause fatals in calling code if uncaught
- Drop the
connect
method, DSN requirement and drop a large volume of unused code
Pineapple 0.3.0-RC2
This is the second release candidate for 0.3.0.
Changes are:
- We're good to go with PHP 7.1
- Some unusual behaviour regarding bitwise operations was discovered, due to a backward compatibility feature which attempted to discover transposed parameters. PHP 7.1 raises a warning for this behaviour. This has been fixed, so no warnings, all tests running happily.
DB_FETCHMODE_*
constants changed to bit values.- There is discrepant behaviour across several classes in which some use bitwise checks and most don't. One class in particular checks for combined fetch modes, which is permitted. Bit values fixes this, though the rest of the classes that don't use bitwise checks probably can't be fixed for fear of dredging up the intended behaviour, and several bugs with it. It's safe as it is, let's just leave it.
- The docblocks now properly reflect the correct input class types. xml markers have been replaced with Github-flavoured markdown.
- Backward compatibility check for transposed
$fetchmode
and$params
has been removed fromgetRow()
andgetAll()
. It kept on putting the parameter into$fetchmode
when a single, scalar parameter was passed instead of a single value in an array. This isn't going to be put into pineapple-compat, so it's probably best to say goodbye now.