XOOPS

XOOPS 2.6.0 Alpha 2 released

Mamba  17 Oct 2026 3:30 AM 35 Reads   No comments 
260_alpha2
XOOPS 2.6.0 Alpha 2 released

The XOOPS Development Team has published XOOPS 2.6.0 Alpha 2, a new snapshot of the 2.6 line for developers.

First the honest part: 2.6.0 is not actively developed. The 2.6 code base was the original "rewrite" branch (Doctrine DBAL, the central Xoops instance, extensions, Bootstrap admin), and current development effort goes into XOOPS 2.7.x and the upcoming 2.8.0. Alpha 2 exists so that anyone who wants to pick 2.6 up again starts from a tree that installs, runs and passes its test suite on a current PHP, rather than from a 2017 snapshot.

Alpha 2 is for developers and for the curious. Do not run it on a live site.

DOWNLOAD
https://github.com/XOOPS/XoopsCore26/releases/


What changed since Alpha 1

Alpha 1 (February 2026) raised the minimum PHP version to 8.4 and brought the tree back to green. Alpha 2 finishes that work.

PHP 8.4 minimum, now documented everywhere
Composer already required PHP 8.4. The README, the installer's requirements check and the bug-report template still advertised PHP 7.x, so somebody could follow the docs onto a PHP that Composer then refused. All three now say 8.4. The installer check is the same red/green indicator as before and still does not block the installation.

Database: zero-row statements no longer count as failures
The Doctrine-backed Connection::safeQuery() (and query(), which calls it) returned null, the failure value, for any statement that succeeded without changing rows. Every CREATE TABLE and DROP TABLE falls in that category, as does any UPDATE or DELETE that matches nothing. Module installation, profile-field ALTER TABLE and Xmf\Database\Tables::executeQueue() all reported success as failure.
* safeQuery() now returns true for a successful statement that affected no rows. Affected-row counts above zero and SELECT results are unchanged. null still means the statement failed or was refused on a non-safe connection
* XoopsDatabaseManager::deleteTables() listed a table as dropped when the DROP had failed. It now returns the tables that were actually dropped
* The deprecated XoopsMySQLDatabase::getAffectedRows() was fatal after any write. It now returns the row count, or 0
New tests cover CREATE/INSERT/UPDATE/DELETE/SELECT, failing statements and the safe/force handling against in-memory SQLite.

Bundled XMF updated to 1.3.2
xoops_lib/Xmf is synchronised with XMF 1.3.2 while keeping the 2.6-specific integration (Doctrine connection, \Xoops::getInstance(), XoopsBaseConfig).
* Taken as-is from 1.3.2: Request, FilterInput, Random, Uuid, Assert, Jwt, Key, IPAddress, StopWords, Highlighter, Yaml, Metagen, Migrate, Session, GenericHelper, Helper
* New in 2.6: Ulid, ProxyCheck, the I18n, Security and Mail namespaces, and Database\SchemaDefinitionException
* Merged with the 2.6 backend: Tables (DEFAULT-clause escaping, definition validation, MySQL 8 DEFAULT_GENERATED), Language (path containment rooted at the 2.6 root path), Request/FilterInput (keep the 2.6-only getDateTime() and gather()), Permission (plus the new getItemIds()), Admin
* Kept as 2.6: Debug, TableLoad, Module Helper and Cache

Dependencies and CI
* The abandoned xoops/base-requires metapackage is gone; its dependency list is inlined into composer.json.dist. firebase/php-jwt moves to ^7.0 because every 6.x release carries a security advisory
* Locked library versions: Doctrine DBAL 4.4.1, Smarty 4.5.6, Monolog 3.10.0, symfony/yaml 7.4.1, PHPUnit 11.5
* CI runs again on GitHub Actions: the test configuration is generated by console.php ci-bootstrap before the suite, Qodana and SonarCloud use current linter images, and the GitHub Actions used by the workflows were updated (checkout, cache, codecov, SonarQube scan, Qodana)
* README badges and logo point at the XoopsCore26 repository
The full PHPUnit suite passes: 3492 tests, no failures.


Requirements
* PHP 8.4 or 8.5
* MySQL 5.6+ or MariaDB
* Composer, to install the libraries into xoops_lib/vendor

Installing
This is a developer checkout, not a drop-in package:
1. Clone or download the repository
2. Copy composer.json.dist to composer.json and run composer install
3. Point the web server at htdocs/ and open it in a browser to run the installer
Upgrading from any earlier XOOPS release, including 2.6.0 Alpha 1, is not supported.

Modules
Only the system modules and extensions are included. XOOPS 2.5 and 2.7 modules do not work on 2.6 without changes.

Reporting problems and contributing
* Issues: https://github.com/XOOPS/XoopsCore26/issues
* Full changelog since Alpha 1: https://github.com/XOOPS/XoopsCore26/compare/v2.6.0-alpha1...v2.6.0-alpha2

If you would like to take 2.6 further, the tree is now in a state where that is possible. Pull requests are welcome.

XOOPS Development Team
Rating 0/5
Rating: 0/5 (0 votes)
Voting is disabled!


Login

Donat-O-Meter

Stats
Goal: $15.00
Due Date: Oct 31
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $15.00
Make donations with PayPal!

Categories