Composer package or .ezpkg: which to ship
This page is for designers deciding how to hand out a theme. There is no single right answer; the three published
7x themes are Composer packages, and one of them carries .ezpkg files inside it.
The decision table
| Question | Composer package | .ezpkg |
|---|---|---|
| Who installs it? | Developers and hosts who run composer | Administrators who work in Setup > Packages |
| What does it carry? | Files: the theme extension | Files and database content: classes, objects, a site style |
| How is it updated? | composer update yourvendor/mytheme | Installing the next package version |
| Where is it found? | Packagist, GitHub | Wherever you put the file; listed on project pages |
| Version history? | Tags and releases in Git | Version and changelog inside the package |
| Dependencies? | require installs them | Package dependencies, installed by hand |
Three common answers
- Composer only: a theme that works with the content classes the site already has. Simplest to maintain.
- Composer with
.ezpkginside: the theme needs its own classes. Ship them inpackages/and explain the import inINSTALL.md, assevenx_themes_simpledoes with 20 class packages. .ezpkgonly: a color scheme for an existing design (The site style package), or an audience that does not use Composer.
Step by step
- Answer the first two rows of the table for your theme.
- Pick one of the three answers.
- Write the install steps for it in the README and try them on a test installation (Testing a Composer install, Installing your package on a test site).
Related pages
- What an Exponential package is
- composer.json for a theme
- Choosing where to publish
- 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.