Releases: tbl0605/Propel-pervasive
Releases · tbl0605/Propel-pervasive
Add phar generation + minor code fixes
Expand PHPUnit testing matrix to include versions 12 and 13
Added PHPUnit versions 12 and 13 to the testing matrix and updated exclusions for PHP versions 7.4, 8.0, and 8.1 accordingly.
Minor PHPUnit deprecation fix
PHPUnit warning: fix pg_escape_string() wrong use
PHP 7.4 to 8.5 support, PHPUnit 9 to 11, MySQL 8 CI, GitHub Actions replacing Travis, modernized test infrastructure, and fork-specific PEAR packaging
Overview
This release modernizes the fork for PHP 7.4 through 8.5, replaces legacy Travis CI with GitHub Actions, and brings the full PHPUnit suite (2,664 tests) back to green on current PHP and MySQL 8. Pervasive DB support from 1.7.14 is retained; the focus here is compatibility, testing, packaging, and project maintenance.
Requirements (breaking changes)
| 1.7.14 | master | |
|---|---|---|
| PHP | 5.2.4 | 7.4 |
| Phing | ~2.4 | ^2.17 |
| PHPUnit (dev) | ~4 / ~5 | ^9.6 || ^10.5 || ^11 |
Composer package metadata, propel-gen binaries, and composer test / composer test:setup scripts are updated accordingly.
PHP 8.x compatibility
Broad fixes across generator and runtime for PHP 8.0 to 8.5:
- Nullable / strict typing e.g. reverse schema parsers, adapters, builders
- Deprecated PHP behaviors
continueinswitch(PgsqlPlatform),ArrayIteratorbacked by objects, null-safe handling inCriteria,Column, formatters, collections, strftime-style format, etc. - Generated code templates behavior builders (archivable, i18n, nested set, sortable, versionable, sluggable, ...) updated so generated models/peers/queries work on modern PHP
- OM / query layer
Criteria,Criterion,ModelCriteria, formatters,BasePeer,PropelDateTime, YAML/XML parsers
Testing & CI
- Removed legacy
.travis.yml(PHP 5.3 to 5.5 / HHVM) - Added GitHub Actions workflows under
.github/workflows/:phpunit.ymlPHPUnit on PHP 7.4 to 8.5 + PHPUnit 9 / 10 / 11, MySQL 8 service, fixture reset,sql_modetuning for legacy GROUP BY testspear-package.ymlbuilds legacy PEAR.tgzpackages on push and GitHub releases (see PEAR packaging below)
- New test infrastructure:
test/setup_mysql_databases.phpauto-creates fixture DBs, configures MySQL 8sql_modetest/reset_tests.sh/reset_tests.cmdMySQL setup, skipreverse/in main loop, Windows parityPropelTestCasePHPUnit 9 to 11 bridge (legacy@expectedException, mocking APIs, etc.)- Dual PHPUnit annotations for forward compatibility
- 152 test files updated; full suite passes on PHP 8.5 + PHPUnit 11
PEAR packaging
- New
.github/workflows/pear-package.ymlGitHub Actions workflow (runs on push and when a GitHub release is published) - Builds legacy
propel_generatorandpropel_runtime.tgzartifacts via Phing 2.17.4 on PHP 7.4 - Fork-specific packaging:
__urichannel instead of deadpear.propelorm.org; removedpear.phing.infodependency (Phing via Composer); minimum PHP 7.4 in package.xml test/tools/run_pear_package_build.shwrapper for reproducible PEAR builds
Pervasive DB
No major new Pervasive features since 1.7.14. Status unchanged:
- Known limitations (pagination offset, LOB hex inlining, FK
SET NULL, type maps, column ordering) remain - Minor touch-ups to
PervasivePlatform,PervasiveSchemaParser, andDBPervasive(mostly line-ending normalization and PHP compatibility).
Project & documentation
- README fork identity, Composer install, test instructions, GitHub Actions badge
- INSTALL Composer-first install; PEAR via GitHub release artifacts
- CHANGELOG stub for 1.8.0
.gitignorefixture builds, CI PHARs, IDE files, PHPUnit cache.gitattributesLF line endings for cross-platform consistency (Windows test stability)- Composer
tbl0605/propel1-pervasivemetadata, Thierry Blind as contributor
Upgrade notes
- Requires PHP 7.4+ (PHP 8.x recommended).
- Run
composer updateand rebuild generated classes if you upgrade an existing project. - For tests:
composer test:setup, thentest/reset_tests.sh(ortest\reset_tests.cmdon Windows), thencomposer test. - PEAR users: install from GitHub release
.tgzfiles, notpear.propelorm.org.
MySQL schema parser fixes
- comment some unused variable
- MySQL: create the index corresponding to the PRIMARY key
- MySQL: keep all column size informations
Pervasive schema parser: add BINARY support
- Pervasive schema parser: add BINARY support
Mssql schema parser and PHPDocs fixes
- Fix some PHPDocs errors
- Spelling fixes
- Sql Server: add some tweaks originally created for Pervasive
- Avoid "Call to undefined method GeneratorConfig::getLocation()"
PHP 8.2 compatibility fixes
- Fix some errors found by PHPStan
- PHP 8.2 compatibility fixes: replacement of deprecated strftime(), utf8_decode() and utf8_encode() functions
PHP 8.2 compatibility fix
- PHP 8.2 compatibility fix
Mssql schema parser and PHP 8.1 compatibility fixes
- Mssql schema parser: add basic unique indexes support
- Mssql schema parser: better IDENTITY support (for the BIGINT, SMALLINT and TINYINT types)
- PHP 8.1 compatibility fix