Everyone is invited to contribute to the EthereumJS
libraries (see also our
:ref:`code_of_conduct`). These are some guidelines to help you get started!
There are labelled issues on all our libraries, see e.g. the issue pages of the VM or the Merkle Tree libraries, sorting issues on things like effort needed, priority or type.
Feel free to pick any issue you think is suitable for you to work on, then you might also want to drop a note on the issue page that you are working on the issue.
Some issues are also labelled with help wanted
and/or good first issue
,
indicating that they are in particular suitable to get started.
There are also various generic tasks which constantly need help, you can also have a look at the :ref:`ongoing_work_tasks` section to get an overview here.
Many of these things are not listed as issues, but are nevertheless a good place to start especially for new contributors. This includes:
- Improving on the documentation (see: :ref:`documentation`)
- Writing additional tests (see: :ref:`testing`)
- Updating library dependencies (see: :ref:`dependency_management`)
All these things are a good way to gently get in touch with the inner workings of a library without directly have to manipulate production code directly.
Once you have chosen what you want to work on you can actually grab your coffee, take your laptop to a quiet place to work and start hacking! 😄
Have a look at the :ref:`git_guidelines` and the :ref:`workflow_best_practices`
sections for some Git and overall work instructions being common practice within
the EthereumJS
ecosystem.
The :ref:`technical_reference` chapter generally contains some overview information on the development environment, programming language and tools used throughout the libraries. Have a broader look on what is relevant for you to successfully work on your selected task.
Generally: just get in touch. Early on - see :ref:`contact` section. Feel free to ask everything you need to know, there is no question which shouldn't been asked and there will likely be someone who can give you some guidance along the way.