Sharing extensions and themes with the community
Much of what makes Exponential useful lives in extensions, and many of them started as one person's solution to their own problem. Sharing yours lets others build on it.
Contents
- Two ways to share
- Publishing your own work
- Telling people about it
- Handing it to the project
- Keeping it alive
Two ways to share
| Way | You keep | CLA |
|---|---|---|
| Publish it yourself: your own repository, your own Packagist package | The copyright and the maintenance | Not needed: "if you have written a contribution and want to make it available on GitHub, you do not need to sign the CLA" (CONTRIBUTING.md) |
| Hand it to 7x for inclusion in the project, for example to be maintained in the se7enxweb organization | Credit; the copyright is assigned | Needed, as for kernel code (The CLA explained) |
Publishing your own work
The full walk-through is Contribute extensions back and Part 7 of the extension development book, Releasing. In short:
- Clean it up: no secrets, no customer data, no site-specific settings.
- Choose a license. If you distribute an extension, the GPL's conditions apply; the project recommends GPL 2 or later (Contribute extensions back).
- Describe it in
ezinfo.phpandextension.xmlwith the same version number (Bumping ezinfo.php and extension.xml). - Publish a public repository and a Composer package on Packagist (Composer and Packagist).
- Tag releases and never move a tag that has been pushed (Tags are permanent).
Themes follow the designers' sections: Theme extensions and Distribution. Site packages: Contribute your site package.
Telling people about it
- List it on Projects (Publishing on Share and Projects).
- Announce it in the forums with what it does, which Exponential versions it supports and how to install it (Announcing a release).
- Name new code by the prefix rule so it does not collide with others (Naming prefixes).
Handing it to the project
If you want the project to maintain your extension, open an issue on the community tracker or talk to the
maintainers first. Code handed to 7x "for inclusion in the project" is covered by the CLA "in the same way" as kernel
code (CONTRIBUTING.md, "What it does not cover").
Keeping it alive
- Answer issues, even with "not now".
- Test it against new 6.0.x releases.
- If you cannot maintain it any more, say so in the README so someone can take it over (Adopting an abandoned extension).
Related pages
- Contributing as a community member
- Contribute extensions back
- Publishing an extension (partners)
- Ecosystem: start here
- 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.