Skip to content

Releases: may-den/pineapple

Pineapple 0.3.8

17 Aug 13:03
Compare
Choose a tag to compare

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

23 Oct 08:17
26df196
Compare
Choose a tag to compare

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

31 Oct 23:37
bd48b50
Compare
Choose a tag to compare

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 erroneous printf which should have been sprintf; 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

02 May 12:00
Compare
Choose a tag to compare

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

23 Mar 22:20
Compare
Choose a tag to compare

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

04 Feb 16:35
Compare
Choose a tag to compare

This is release 0.3.3. This release contains the following fixes:

  • DriverInterface is missing namespace import for Pineapple\DB, meaning DB::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

02 Feb 10:39
Compare
Choose a tag to compare

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 a DB_ERROR_UNSUPPORTED error.

Pineapple 0.3.1

01 Feb 13:23
Compare
Choose a tag to compare

This is the 0.3.1 release of Pineapple. Changes since 0.3.0:

  • some more PSR-2 fixes
  • add a getOne() test for the PdoDriver
  • 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 the mysql platform
  • repair query buffering for PdoDriver (not supported in DoctrineDbal 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 the Result class, getLastQuery and getLastQueryParameters in the driver Common 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

07 Nov 09:58
Compare
Choose a tag to compare

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 from getRow() and getAll(). 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 StatementContainers, 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

29 Oct 21:13
Compare
Choose a tag to compare
Pineapple 0.3.0-RC2 Pre-release
Pre-release

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 from getRow() and getAll(). 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.