The Solidity programming language is an open-source project governed by a core team. We rely on the community’s feedback, input and contributions to make the language as effective, safe and useful as possible.
In this post, we will walk you through the various different ways how you can get involved contributing to Solidity! Do not hesitate to contact us in case anything is left unclear after reading the post.
Overview of Contribution Opportunities
There are plenty of options how you can contribute to Solidity.
In particular, we appreciate support in the following areas:
- Issues: Help with reporting or fixing issues.
- Testing: Test new versions and provide feedback.
- Documentation: Improve or translate the documentation.
- Community: Help others by answering their questions.
- Language Design: Propose language changes or new features and provide feedback.
We’ll dig deeper into each of these categories in the following sections.
(1) Contribute to Issues
You can help us by either reporting issues that you encounter with Solidity or by fixing issues.
How to Report Solidity Issues
To report an issue, please use the GitHub issues tracker. When reporting issues, please mention the following details:
- Solidity version.
- Source code (if applicable).
- Operating system.
- Steps to reproduce the issue.
- Actual vs. expected behaviour.
Reducing the source code that caused the issue to a bare minimum is always very helpful and sometimes even clarifies a misunderstanding.
How to Fix Solidity Issues
If you want to fix or respond to Solidity’s GitHub issues, we recommend to get started by looking into issues tagged as good first issue, which are meant as introductory issues for external contributors. In order to contribute, please fork off the develop branch and make your changes there. Then, please follow the workflow for pull requests as outlined in the Solidity documentation.
(2) Test New Solidity Versions
You can help us finding issues by testing out new compiler versions, preferably the nightly development builds, on your code and reporting any issues you might encounter.
You can find all information on how to access the nightly builds in the "Installing the Solidity Compiler" chapter of the documentation.
(3) Improve the Documentation
You can contribute to the documentation by either fixing typos, improving the content by adding relevant information and more examples, or by helping translate it into more languages.
If you want to add more content please make sure to follow the documentation style guide.
If you are interested in translating the documentation, join the Solidity forum and check the relevant topics in the documentation category covering the new translation workflow.
(4) Support the Community
If you are experienced with Solidity and want to share your wisdom with the community consider contributing by...
- Responding to questions from other users on Ethereum StackExchange and the Solidity Matrix/Gitter Chat.
- Sharing useful code bits in the “Code Wizards” category
- Spreading the word about Solidity and sharing relevant Solidity announcements and updates in your social networks and with your peers.
(5) Take Part in Language Design
To actively get involved in the language design process and share your ideas concerning the future of Solidity, please join the Solidity forum, where existing properties of the language and proposals for new features can be discussed.
In the language designcategory, you can propose and discuss new language features and their implementation in the early stages of ideation or modifications of existing features. The forum serves as the place to discuss the initial soundness of the ideas/proposals and to define them further. As soon as proposals get more tangible their implementation will also be discussed in the Solidity GitHub repository in the form of issues.
In addition to the forum and issue discussions, we regularly host language design discussion calls, in which selected topics, issues or feature implementations are debated in detail. The invitation to those calls is shared via the forum.
We are also sharing feedback surveys and other language design relevant content in the forum.
If you want to know where the team is standing in terms or implementing new features, you can follow the implementation status in the Solidity Github project. Issues in the design backlog need further specification and will either be discussed in a language design call or in a regular team call. You can see the upcoming changes for the next breaking release by changing from the default branch (develop) to the breaking branch.
Get Involved Now!
If you have questions, issues or pull requests to discuss, or are interested in hearing what the team and contributors are working on, you can join our public team calls. Both calls take place on Google Meet.
- Mondays at 3pm CET/CEST.
- Wednesdays at 2pm CET/CEST.
🚨 Please note that the Solidity project is released with a Contributor Code of Conduct. By participating in this project - in the issues, pull requests, chats or the forum - you agree to abide by its terms.
📖 You can find a maintained overview of the content covered in this post in the contributing section of the Solidity documentation.
Looking forward to seeing many of you contributing in one way or another!