Merge pull request #9834 from ethereum/develop

Merge develop into breaking.
This commit is contained in:
chriseth
2020-09-17 15:00:41 +02:00
committed by GitHub
17 changed files with 200 additions and 91 deletions
+2
View File
@@ -70,6 +70,8 @@ Solidity Logo Guidelines
.. image:: logo.svg
:width: 256
*(Right click on the logo to download it.)*
Please do not:
- Change the ratio of the logo (do not stretch it or cut it).
+48 -27
View File
@@ -2,22 +2,25 @@
Contributing
############
Help is always appreciated!
Help is always welcome and there are plenty of options how you can contribute to Solidity.
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 appreciate support in the following areas:
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>`_
* Reporting issues.
* Fixing and responding to `Solidity's GitHub issues
<https://github.com/ethereum/solidity/issues>`_, especially those tagged as
`good first issue <https://github.com/ethereum/solidity/labels/good%20first%20issue>`_ which are
meant as introductory issues for external contributors.
* Improving the documentation.
* Translating the documentation into more languages.
* Responding to questions from other users on `StackExchange
<https://ethereum.stackexchange.com>`_ and the `Solidity Gitter Chat
<https://gitter.im/ethereum/solidity>`_.
* Getting involved in the language design process by joining language design calls, proposing language changes or new features and providing feedback.
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.
Please note that this project is released with a `Contributor Code of Conduct <https://raw.githubusercontent.com/ethereum/solidity/develop/CODE_OF_CONDUCT.md>`_. By participating in this project - in the issues, pull requests, or Gitter channels - you agree to abide by its terms.
@@ -27,8 +30,8 @@ Team Calls
If you have 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:
- Mondays at 12pm CET/CEST
- Wednesdays at 2pm CET/CEST
- Mondays at 12pm CET/CEST.
- Wednesdays at 2pm CET/CEST.
Both calls take place on `Google Meet <https://meet.google.com/mrq-kbwv-edg>`_.
@@ -39,12 +42,12 @@ 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
* 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.
@@ -66,7 +69,7 @@ test cases under ``test/`` (see below).
However, if you are making a larger change, please consult with the `Solidity Development Gitter channel
<https://gitter.im/ethereum/solidity-dev>`_ (different from the one mentioned above, this one is
focused on compiler and language development instead of language use) first.
focused on compiler and language development instead of language usage) first.
New features and bugfixes should be added to the ``Changelog.md`` file: please
follow the style of previous entries, when applicable.
@@ -78,7 +81,7 @@ ensure that it builds locally before submitting a pull request.
Thank you for your help!
Running the compiler tests
Running the Compiler Tests
==========================
Prerequisites
@@ -91,7 +94,7 @@ in the current directory, installed on the system level, or the ``deps`` folder
in the project top level. The required file is called ``libevmone.so`` on Linux
systems, ``evmone.dll`` on Windows systems and ``libevmone.dylib`` on macOS.
Running the tests
Running the Tests
-----------------
Solidity includes different types of tests, most of them bundled into the
@@ -155,7 +158,7 @@ you have access to functions and variables in which you can break or print with.
The CI runs additional tests (including ``solc-js`` and testing third party Solidity
frameworks) that require compiling the Emscripten target.
Writing and running syntax tests
Writing and Running Syntax Tests
--------------------------------
Syntax tests check that the compiler generates the correct error messages for invalid code
@@ -366,7 +369,7 @@ the string parameter ``name`` is non-empty.
Documentation Style Guide
=========================
The following are style recommendations specifically for documentation
In the following section you find style recommendations specifically focusing on documentation
contributions to Solidity.
English Language
@@ -394,10 +397,10 @@ title.
For example, the following are all correct:
* Title Case for Headings
* For Headings Use Title Case
* Local and State Variable Names
* Order of Layout
* Title Case for Headings.
* For Headings Use Title Case.
* Local and State Variable Names.
* Order of Layout.
Expand Contractions
-------------------
@@ -450,3 +453,21 @@ Running Documentation Tests
Make sure your contributions pass our documentation tests by running ``./scripts/docs.sh`` that installs dependencies
needed for documentation and checks for any problems such as broken links or syntax issues.
Solidity Language Design
========================
If you want to get involved in the language design process and share your ideas, please join the `solidity-users forum <https://groups.google.com/g/solidity-users>`_,
where existing properties of the language and proposals for new features can be discussed.
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 aforementioned forum. We are also sharing feedback surveys and other language design relevant content in this forum.
For ad-hoc cases and questions you can reach out to us via the `Solidity-dev Gitter channel <https://gitter.im/ethereum/solidity-dev>`_, a
dedicated chatroom for conversations around the Solidity compiler and language development.
You can follow the implementation status of new features in the `Solidity Github project <https://github.com/ethereum/solidity/projects/43>`_.
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 <https://github.com/ethereum/solidity/tree/breaking>`_.
We are happy to hear your thoughts on how we can improve the language design process to be even more collaborative and transparent.
+21 -15
View File
@@ -230,7 +230,7 @@ The following C++ compilers and their minimum versions can build the Solidity co
- `GCC <https://gcc.gnu.org>`_, version 5+
- `Clang <https://clang.llvm.org/>`_, version 3.4+
- `MSVC <https://docs.microsoft.com/en-us/cpp/?view=vs-2019>`_, version 2017+
- `MSVC <https://visualstudio.microsoft.com/vs/>`_, version 2019+
Prerequisites - macOS
---------------------
@@ -262,29 +262,29 @@ You need to install the following dependencies for Windows builds of Solidity:
+-----------------------------------+-------------------------------------------------------+
| Software | Notes |
+===================================+=======================================================+
| `Visual Studio 2017 Build Tools`_ | C++ compiler |
| `Visual Studio 2019 Build Tools`_ | C++ compiler |
+-----------------------------------+-------------------------------------------------------+
| `Visual Studio 2017`_ (Optional) | C++ compiler and dev environment. |
| `Visual Studio 2019`_ (Optional) | C++ compiler and dev environment. |
+-----------------------------------+-------------------------------------------------------+
If you already have one IDE and only need the compiler and libraries,
you could install Visual Studio 2017 Build Tools.
you could install Visual Studio 2019 Build Tools.
Visual Studio 2017 provides both IDE and necessary compiler and libraries.
So if you have not got an IDE and prefer to develop solidity, Visual Studio 2017
Visual Studio 2019 provides both IDE and necessary compiler and libraries.
So if you have not got an IDE and prefer to develop solidity, Visual Studio 2019
may be a choice for you to get everything setup easily.
Here is the list of components that should be installed
in Visual Studio 2017 Build Tools or Visual Studio 2017:
in Visual Studio 2019 Build Tools or Visual Studio 2019:
* Visual Studio C++ core features
* VC++ 2017 v141 toolset (x86,x64)
* VC++ 2019 v141 toolset (x86,x64)
* Windows Universal CRT SDK
* Windows 8.1 SDK
* C++/CLI support
.. _Visual Studio 2017: https://www.visualstudio.com/vs/
.. _Visual Studio 2017 Build Tools: https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017
.. _Visual Studio 2019: https://www.visualstudio.com/vs/
.. _Visual Studio 2019 Build Tools: https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2019
Dependencies Helper Script
--------------------------
@@ -300,7 +300,10 @@ Or, on Windows:
.. code-block:: bat
scripts\install_deps.bat
scripts\install_deps.ps1
Note that the latter command will install ``boost`` and ``cmake`` to the ``deps`` subdirectory, while the former command
will attempt to install the dependencies globally.
Clone the Repository
--------------------
@@ -362,11 +365,14 @@ And for Windows:
mkdir build
cd build
cmake -G "Visual Studio 15 2017 Win64" ..
cmake -G "Visual Studio 16 2019 Win64" ..
This latter set of instructions should result in the creation of
**solidity.sln** in that build directory. Double-clicking on that file
should result in Visual Studio firing up. We suggest building
In case you want to use the version of boost installed by ``./scripts/install_deps.ps1``, you will
additionally need to pass ``-DBoost_DIR="..\deps\boost\lib\cmake\Boost-*"`` and ``-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded``
as arguments to the call to ``cmake``.
This should result in the creation of **solidity.sln** in that build directory.
Double-clicking on that file should result in Visual Studio firing up. We suggest building
**Release** configuration, but all others work.
Alternatively, you can build for Windows on the command-line, like so: