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.