Contributing as a student
Exponential is free software developed in the open, and contributions from learners are welcome. A contribution teaches you more than an exercise, because real people review it and real users benefit. "Real contributions are the best portfolio a student can have: a merged pull request is public proof of skill" (Student and education partners).
Contents
Kinds of contribution
| Contribution | Needs | Fits path | Page |
|---|---|---|---|
| Report a bug well | A GitHub account, a study site | All | Bugs you find while learning |
| Fix a typo or an outdated step in the help | A GitHub account | All | Improving the help as a student |
| Translate interface texts | A language you write well | Editor, all | Translating as a student |
| Answer a question in the community | What you learned | All | Asking for help and study groups |
| Write a test that reproduces a bug | PHP, Git | Developer | Contributing code |
| Fix a small bug | PHP, Git | Developer | Your first contribution, step by step |
| Publish an extension or a theme of your own | Your own project | Developer, designer | Contribute extensions back |
| Contribute a site package | A site worth sharing | Administrator, designer | Contribute your site package |
The supporters' section lists more ways to help (Supporters: start here).
What you need
- A free GitHub account. You need one to open an issue or a pull request (When something goes wrong).
- For code: Git and a study installation from Git clones (Installing from Git clones for study).
- Time to answer review comments.
The rules
From CONTRIBUTING.md in the root of the kernel (Contributors guidelines):
- Read the Code of Conduct first; all contributors are expected to keep it.
- Always work on a new branch; keep each pull request focused, one change per pull request.
- Commit subjects start with what the change does:
Added:,Updated:,Fixed:,Removed:orRenamed:. - Follow the coding standards and the style of the files around your change.
- Keep the file manifest
share/filelist.md5current (make manifest-fix);make hooksinstalls a pre-commit hook that checks it, the PHP syntax and the code style. - Add tests where you can, and update the documentation if needed.
How review works
CONTRIBUTING.md warns: "Be prepared for many review rounds. 7x does a much larger than usual number of review rounds
before it accepts a commit or pull request, sometimes hundreds of revisions ... it is not a judgment of you."
- Answer every review comment in the pull request, with a change or a reason.
- If a reviewer says the behavior you changed is a negative feature, deliberate or open to interpretation and relied on by other sites, explain your use case and offer the change as an option rather than a new default.
- Squash and rebase your pull request onto
mainwhile it is open, as 7x requires; force-push only to your own pull request branch (Develop with Git). - Every review round is a free lesson from experienced developers. Note what you learned in your study journal.
Copyright and licenses
- Code contributions are licensed under the GNU GPL version 2 or later, like the rest of Exponential.
- Documentation is free documentation under the GNU FDL 1.3 or later (Free documentation).
- A code contribution to the core kernel is merged only after its author has signed the Contributor Licensing Agreement, by which the author assigns the copyright to the Exponential Foundation and 7x. Read The CLA for students before you send kernel code. Your own extensions are not affected.
Where to start
- Pick the smallest real task: a typo you found, a step that did not work for you, a string in your language.
- Follow Your first contribution, step by step.
- Add the link to your portfolio once it is merged (Building a portfolio).
The advocates' guide Mentoring a first contribution is written for people who help you; reading it shows you what a good first task looks like.
Related pages
- Your first contribution, step by step
- The CLA for students
- Contribute to the project
- 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.