Declaring compatibility
This page is for designers releasing a theme. Compatibility is stated in several places; they must agree.
Where it goes
| Place | Read by | Example |
|---|---|---|
composer.json require.php | Composer, which refuses an install on another PHP | "php": "^8.0" |
composer.json require / suggest | Composer | Extensions the theme needs or works better with (require and suggest) |
extension.xml <dependencies> | The kernel's loading order | <requires> an extension (Declaring dependencies) |
| README "Requirements" | People | "Exponential 6.0 (tested with 6.0.15), PHP 8.0 to 8.5" |
| Release notes | People updating | "Tested with ..." when it changed |
| Compatibility matrix | People choosing a version | A compatibility matrix |
Step by step for a release
- Take the versions from your upgrade test (Upgrade testing, step by step).
- Update
require.phpif the range changed. Raising the minimum is a change users must notice: say it in the notes, and consider whether it deserves a higher position in the version number (Choosing a version number). - Update the README and the matrix.
- Run
composer validate.
Related pages
- PHP version compatibility
- Breaking changes
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.