Part 5: Extending, forking ethically and contributing back
This is the fifth part of Extension development: the book. Almost nobody writes an extension alone and from nothing. You build on the kernel, on other people's extensions and on libraries. This part is about doing that well: technically (how to change someone else's code without losing their updates) and fairly (how to keep their credit, respect their license and give your improvements back).
The chapters
Three principles
- Change as little of other people's code as you can. The kernel and most extensions offer ways to change behavior from your own extension. A change you do not make to someone else's code is a change you never have to carry forward.
- Never take credit you did not earn. Keep every copyright line and author name. Add yours beside them.
- Give back what helps others. A fix you send back is a fix you no longer have to maintain alone, and the next person does not have to find the bug again.
Copyright assignment (CLA). The Exponential Foundation and 7x merge a code contribution to
the core kernel (se7enxweb/exponential), sent in any form (pull request, patch, issue or mail), only after you have
signed the Contributor Licensing Agreement. By signing and submitting, you assign the copyright in your contribution to the Exponential Foundation and 7x, which become its owners, and give up control over it: The Exponential Foundation and 7x may use, change, relicense and distribute it in any way, also under other
licenses and in commercial products, without asking or paying you, and you cannot withdraw it or set conditions on it. Extending
the kernel from your own extension, forking an extension, or publishing your own work is not affected. See
Copyright assignment (CLA).
Not legal advice
This part explains licenses the way developers need to understand them day to day. It is not legal advice. When money, a customer contract or a dispute is involved, ask someone qualified.
Related pages
- Previous: Case study: small PHP 8 fixes across many extensions
- Next: Extending without forking
- Contribute extensions back
- Reading licenses before you reuse anything
- Extension development: the book
- 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.