Strapi has an active and growing open-source community. All work on the open-source framework occurs in the GitHub organization.
The Strapi project governance model follows the spirit and tradition of open-source by embracing consensus, forking, and individual ownership.
Strapi is an open, inclusive, and tolerant community of people working together to build a world-class Node.js framework and tools. We value diversity of individuals and opinions, and seek to operate on consensus whenever possible. We strive to maintain a welcoming, inclusive, and harassment-free environment, regardless of the form of communication. When consensus is not achievable, we defer to the owners of each individual module; the powers of the individual owner are kept in check by the ability of the community to fork and replace dependencies on the individual module and maintainer.
Each repository has one or more lead maintainers responsible for:
- Daily operations: approving pull requests, responding to new issues, guiding discussions, and so on.
- Seeking consensus on technical decisions.
- Making the final decisions when consensus cannot be achieved.
Wistity maintainers have npm publishing rights for modules and Wistity has the final say on releasing new versions.
Strapi lead maintainers include Wistity employees and welcome other active community members:
- Loïc Saint-Roch (@loicsaintroch) (Wistity)
- Aurélien Georget (@aurelsicoko) (Wistity)
- Jim Laurie (@lauriejim) (Wistity)
- Pierre Burgy (@pierreburgy) (Wistity)
There are many ways you can contribute to the Strapi project. All contributions are welcome!
- Create a GitHub issue for large changes and discuss the change there before coding. You can skip this step and submit the pull request for minor changes.
- Fork the repository on GitHub.
- Create a branch for you change/feature off of the master branch.
- Make your change. Remember to update tests as well as code! Always run all the tests to assure nothing else was accidentally broken. For bugs, adding a failing test and submitting a pull request usually leads to the bug being fixed quickly. For features, include tests that cover the entire feature.
- Check for unnecessary whitespace with
git diff --check
before committing. - Make commits of logical units and push them to Github.
- Use a descriptive commit message, and follow 50/72 format.
- Use GitHub's pull requests to submit the patch. Feel free to issue the pull request as soon as you have something partial to show and get reviewed. You can add more commits to your pull request as you are progressing on the implementation. The title of the pull request should start with "WIP" for "work in progress" when the pull request is not complete yet.
- Request a code review. Add a specific committer to speed up this process
(for example,
@loicsaintroch
,@aurelsicoko
). - Make any requested changes and push to your fork. Make sure your changes are still based
on the latest code (use
git rebase upstream/master
).
Follow this basic process:
- Search existing issues. It's possible someone has already reported the same problem.
- Make sure you have a GitHub account.
- Create a new issue for the bug. Clearly describe the issue, including steps to reproduce. Make sure you fill in the earliest version that you know has the issue.