mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
77 lines
3.0 KiB
ReStructuredText
77 lines
3.0 KiB
ReStructuredText
############
|
|
Contributing
|
|
############
|
|
|
|
Help is always appreciated!
|
|
|
|
To get started, you can try :ref:`building-from-source` in order to familiarize
|
|
yourself with the components of Solidity and the build process. Also, it may be
|
|
useful to become well-versed at writing smart-contracts in Solidity.
|
|
|
|
In particular, we need help in the following areas:
|
|
|
|
* Improving the documentation
|
|
* Responding to questions from other users on `StackExchange
|
|
<https://ethereum.stackexchange.com>`_ and the `Solidity Gitter
|
|
<https://gitter.im/ethereum/solidity>`_
|
|
* Fixing and responding to `Solidity's GitHub issues
|
|
<https://github.com/ethereum/solidity/issues>`_, especially those tagged as
|
|
`up-for-grabs <https://github.com/ethereum/solidity/issues?q=is%3Aopen+is%3Aissue+label%3Aup-for-grabs>`_ which are
|
|
meant as introductory issues for external contributors.
|
|
|
|
How to Report Issues
|
|
====================
|
|
|
|
To report an issue, please use the
|
|
`GitHub issues tracker <https://github.com/ethereum/solidity/issues>`_. When
|
|
reporting issues, please mention the following details:
|
|
|
|
* Which version of Solidity you are using
|
|
* What was the source code (if applicable)
|
|
* Which platform are you running on
|
|
* How to reproduce the issue
|
|
* What was the result of the issue
|
|
* What the expected behaviour is
|
|
|
|
Reducing the source code that caused the issue to a bare minimum is always
|
|
very helpful and sometimes even clarifies a misunderstanding.
|
|
|
|
Workflow for Pull Requests
|
|
==========================
|
|
|
|
In order to contribute, please fork off of the ``develop`` branch and make your
|
|
changes there. Your commit messages should detail *why* you made your change
|
|
in addition to *what* you did (unless it is a tiny change).
|
|
|
|
If you need to pull in any changes from ``develop`` after making your fork (for
|
|
example, to resolve potential merge conflicts), please avoid using ``git merge``
|
|
and instead, ``git rebase`` your branch.
|
|
|
|
Additionally, if you are writing a new feature, please ensure you write appropriate
|
|
Boost test cases and place them under ``test/``.
|
|
|
|
However, if you are making a larger change, please consult with the Gitter
|
|
channel, first.
|
|
|
|
Finally, please make sure you respect the `coding standards
|
|
<https://raw.githubusercontent.com/ethereum/cpp-ethereum/develop/CodingStandards.txt>`_
|
|
for this project. Also, even though we do CI testing, please test your code and
|
|
ensure that it builds locally before submitting a pull request.
|
|
|
|
Thank you for your help!
|
|
|
|
Running the compiler tests
|
|
==========================
|
|
|
|
Solidity includes different types of tests. They are included in the application
|
|
called ``soltest``. Some of them require the ``cpp-ethereum`` client in testing mode.
|
|
|
|
To run ``cpp-ethereum`` in testing mode: ``eth --test -d /tmp/testeth``.
|
|
|
|
To run the tests: ``soltest -- --ipcpath /tmp/testeth/geth.ipc``.
|
|
|
|
To run a subset of tests, filters can be used:
|
|
``soltest -t TestSuite/TestName -- --ipcpath /tmp/testeth/geth.ipc``, where ``TestName`` can be a wildcard ``*``.
|
|
|
|
Alternatively, there is a testing script at ``scripts/test.sh`` which executes all tests.
|