Publishing an extension as a partner
This page is for developers at partner companies who want to publish an extension. The technical basis is the developers' guide Extensions; this page adds the partner's checklist around it.
1. Separate it from the customer project
- To do: Remove customer names, URLs, credentials, content and business rules.
- To do: Make customer-specific behavior a setting with a neutral default.
- To do: Get the customer's written agreement to publish the generic part (if it was paid work).
2. Give it its metadata
From Extensions, "Release it":
- To do:
ezinfo.phpwith'Version'(novprefix), name, copyright, license and info URL. - To do:
extension.xmlwith the same<version>,<license>and<info_url>. - To do:
composer.jsonif you publish on Packagist; keep its version in step if you keep one. - To do:
php -l ezinfo.phpandxmllint --noout extension.xmlpass.
3. License and notices
- To do: A
LICENSEfile; for code built on Exponential, a GPL-compatible license (the project uses GPL v2 or later). - To do: Copyright lines naming your company and any earlier authors.
- To do: Third-party code listed with its license.
4. README
# <Extension name>
What it does in two sentences.
Requirements: Exponential <version range>, PHP <range>, other extensions.
Install: composer require <vendor>/<name> (or git clone ...)
Activate: Setup > Extensions, or ActiveExtensions[] in settings
Configure: <settings>
Support: <issues URL>, paid support by <company> (optional)
License: GPL v2 or later. Credits: <original authors, sponsors>5. Repository and package
- To do: A public Git repository with the full history you can publish.
- To do: Issues enabled.
- To do: Registered on Packagist, with the webhook so new tags appear.
6. Release
- To do: Choose the version from the published tags, sorted by version (
git tag -l 'v*' --sort=version:refname). - To do: Commit the version bump first, then tag that commit.
- To do: Never move or delete a published tag; publish the next version instead.
7. Announce it
- A forum post on https://share.exponential.earth/forums and a project page on https://projects.exponential.earth.
- A short article or tutorial (500 points as an article, 500 as a tutorial of 1,500+ words, The points system).
- Log it (Logging your partner activity).
8. Maintain it
- Test it against each new Exponential release (Testing releases).
- Answer issues; merge useful pull requests.
- When you stop maintaining it, say so in the README.
Related pages
- Extension and theme partners
- Contributing extensions back upstream
- Extensions
- Contribute extensions back: publish an extension and what the GPL requires when you distribute it
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.