How to Contribute
Thank you for your interest in contributing to Compose!
Compose is a community developed project. We welcome you and want your help.
Before Starting
Before contributing, it is important to familiarize yourself with the design of Compose and how it is developed.
Read the following documentation sections:
Browse our issues, pull requests and discussions to get familiar with the project and find ways to contribute.
Look at the ERC20 and ERC721 implementations to see examples of how things are written.
How to Contribute?
There are many ways to contribute to Compose. Here are some ways:
-
Look over the existing codebase and see if you can find any bugs, errors or security vulnerabilities. Create an issue about anything you find. This is also a great way to get familiar with the codebase.
-
Look at the code comments in the codebase. See if you can improve them or add more comments to make the code easier to understand.
-
Improve the website documentation by fixing typos, adding examples, creating new content, or clarifying existing content. The documentation files are in the repository under
website/docs. -
Look over the open issues and see if there are any you can do or help with. Leave comments describing what you want to do and how you want to do it. We'll answer you and assign you to issues so you can start.
-
Look at the open pull requests and see if you can help review them or improve them.
-
Open new issues for new features or improvements.
-
If you have general ideas or suggestions or things you want to discuss, please open a discussion.
-
Look over the existing tests and see if you can add more tests or improve existing tests. Open an issue to describe what you want to do.
-
Have other ideas about how to contribute? Please let us know!
Choose where you want to contribute
Library Development
Help us extend our library of Solidity contracts, facets, and modules.
Get startedCLI Development
Help us develop a complete diamond-based development framework.
Get startedIdeas & Discussions
We use GitHub Discussions for ideas, debates, and brainstorming!
- Issues are for actionable items that need to be implemented or fixed
- Discussions are for general communication, talking about possibilities, ideas, and exploring concepts
Have an idea for a new feature? Want to discuss project direction? Curious about implementation approaches? Start a discussion in our GitHub Discussions forum.
This is the perfect place to:
- Share ideas and get community feedback.
- Debate different approaches and solutions.
- Brainstorm new functionality.
- Discuss project direction and philosophy.
- Ask "what if" questions.
- Explore possibilities before committing to implementation.
Once you have a clear idea of what you want to do, create an issue. Provide as much data as you can and we will give you the go ahead to start or give more feedback about it.
Code of Conduct
Our Pledge
We are committed to providing a welcoming and inspiring community for all. We pledge to make participation in our project a harassment-free experience for everyone.
Our Standards
Examples of behavior that contributes to creating a positive environment include:
- Being respectful of differing viewpoints and experiences.
- Gracefully accepting constructive criticism.
- Focusing on what is best for the community & Compose itself.
- Showing empathy towards other community members.
Getting Help
If you need help or have questions, feel free to reach out through:
License
By contributing to Compose, you agree that your contributions will be licensed under the same license as the project (see LICENSE.md).
This is the beginning and we are still working out how this will all work. We are glad you are interested in this project and want to make something great with you. - Nick