Skip to content
This repository has been archived by the owner on Feb 7, 2018. It is now read-only.

Commit

Permalink
Merge pull request #155 from chriseth/release
Browse files Browse the repository at this point in the history
Release Version 1.1.2
  • Loading branch information
chriseth committed Feb 8, 2016
2 parents eda9519 + 68d1faa commit bd14fab
Show file tree
Hide file tree
Showing 20 changed files with 320 additions and 96 deletions.
6 changes: 4 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ include(EthPolicy)
eth_policy()

# project name and version should be set after cmake_policy CMP0048
project(cpp-ethereum VERSION "1.0.1")
project(cpp-ethereum VERSION "1.1.2")

include(EthCompilerSettings)

Expand All @@ -39,7 +39,9 @@ endif()

if (GUI)
add_subdirectory(alethzero)
add_subdirectory(mix)
if (SOLIDITY)
add_subdirectory(mix)
endif()
eth_appdmg()
eth_nsis()
endif()
63 changes: 63 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
## How to Contribute

Help from externals in whatever form is always more than welcome. You can start
by just trying out the various products of the C++ codebase (our main focus
is now on the language Solidity, the IDE Mix and the Ethereum node implementation
eth). If something strange happens, please report an issue (see below).
Once you get to know the technology, you can try to answer questions from
other people (we do not always have time for that) either on [gitter](https://gitter.im/ethereum/cpp-ethereum),
[stackexchange](http://ethereum.stackexchange.com/) or just comment on [issues](http://github.com/ethereum/webthree-umbrella/issues).

If you know C++, you can help by submitting pull requests (see below).
We try to keep a list of [good tasks to start with](https://github.com/ethereum/webthree-umbrella/labels/good%20first%20task).
Please get in contact on gitter if you have any questions or suggestions.

We keep backlogs of tasks in different sites, depending on the subproject:

* [Solidity Backlog](https://www.pivotaltracker.com/n/projects/1189488)
* [Mix Backlog](https://github.com/ethereum/mix/issues)
* [Eth Backlog](https://www.pivotaltracker.com/n/projects/1510366)

Finally, there is a [waffle board](https://waffle.io/ethereum/webthree-umbrella) containing all issues from all subrepositories.
This is especially useful to keep track of pull requests pending reviews
(if you switch the filter on the top right to "pull requests only").


### How to Report Issues

Please report issues to the project they appear in, either
[Solidity](https://github.com/ethereum/solidity/issues),
[Mix](https://github.com/ethereum/mix/issues) or
[eth / anything else](https://github.com/ethereum/webthree-umbrella/issues).

Try to mention which version of the software you used and on which platform (Windows, MacOS, Linux, ...),
how you got into the situation (what did you do), what did you expect to happen
and what actually happened.

### How to Submit Pull Requests / Workflow

Please see the [wiki](https://github.com/ethereum/webthree-umbrella/wiki) for how
to set up your work environment and for build instructions. There, you can
also find an [overview](https://github.com/ethereum/webthree-umbrella/wiki/Overview)
of the various repositories and directories.
Please also repect the [Coding Style](CodingStandards.txt).

If you encounter any problems, please ask on gitter.

If you are satisfied with your work and all tests pass,
fork the sub-repository you want to change and register your fork
as a remote in the sub-repository you recursively cloned from webthree-umbrella.
Create pull requests against the `develop` branch of the repository you
made changes in. Try not to include any merges with the pull request and rebase
if necessary. If you can set labels on a pull request, set it to `please review`
and also ask for a review in [gitter](http://gitter.im/ethereum/cpp-ethereum).
You can also do reviews on others' pull requests. In this case either comment
with "looks good" or set the label if you can. If at least one core developer
apart from the author is confident about the change, it can be merged.
If the reviewer thinks that corrections are necessary, they put he label `got issues`.
If the author addressed all comments, they again put `please review` or comment
appropriately.

Our CI system will run tests against the subproject and notify about their satus on the pull request.

Thanks for helping and have fun!
35 changes: 17 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,10 @@

By Gav Wood et al*, 2013, 2014, 2015.

| Linux | OSX | Windows
----------|---------|-----|--------
develop | [![Build+Status](https://build.ethdev.com/buildstatusimage?builder=Linux%20C%2B%2B%20develop%20branch)](https://build.ethdev.com/builders/Linux%20C%2B%2B%20develop%20branch/builds/-1) | [![Build+Status](https://build.ethdev.com/buildstatusimage?builder=OSX%20C%2B%2B%20develop%20branch)](https://build.ethdev.com/builders/OSX%20C%2B%2B%20develop%20branch/builds/-1) | [![Build+Status](https://build.ethdev.com/buildstatusimage?builder=Windows%20C%2B%2B%20develop%20branch)](https://build.ethdev.com/builders/Windows%20C%2B%2B%20develop%20branch/builds/-1)
master | [![Build+Status](https://build.ethdev.com/buildstatusimage?builder=Linux%20C%2B%2B%20master%20branch)](https://build.ethdev.com/builders/Linux%20C%2B%2B%20master%20branch/builds/-1) | [![Build+Status](https://build.ethdev.com/buildstatusimage?builder=OSX%20C%2B%2B%20master%20branch)](https://build.ethdev.com/builders/OSX%20C%2B%2B%20master%20branch/builds/-1) | [![Build+Status](https://build.ethdev.com/buildstatusimage?builder=Windows%20C%2B%2B%20master%20branch)](https://build.ethdev.com/builders/Windows%20C%2B%2B%20master%20branch/builds/-1)
evmjit | [![Build+Status](https://build.ethdev.com/buildstatusimage?builder=Linux%20C%2B%2B%20develop%20evmjit)](https://build.ethdev.com/builders/Linux%20C%2B%2B%20develop%20evmjit/builds/-1) | [![Build+Status](https://build.ethdev.com/buildstatusimage?builder=OSX%20C%2B%2B%20develop%20evmjit)](https://build.ethdev.com/builders/OSX%20C%2B%2B%20develop%20evmjit/builds/-1) | N/A

[![Stories in Ready](https://badge.waffle.io/ethereum/cpp-ethereum.png?label=ready&title=Ready)](http://waffle.io/ethereum/cpp-ethereum)
| Status
----------|-----------
develop | [![Build Status](http://52.28.164.97/buildStatus/icon?job=ethbinaries-develop)](http://52.28.164.97/job/ethbinaries-develop/)
release | [![Build Status](http://52.28.164.97/buildStatus/icon?job=ethbinaries-release)](http://52.28.164.97/job/ethbinaries-release/)

Ethereum is based on a design in an original whitepaper by Vitalik Buterin. This implementation is based on the formal specification of a refinement of that idea detailed in the 'yellow paper' by Gavin Wood. Contributors, builders and testers include:

Expand All @@ -31,33 +28,35 @@ And let's not forget: Caktux (neth, ongoing CI), Eric Lombrozo (original MinGW32

### Building

See the [Wiki](https://github.com/ethereum/cpp-ethereum/wiki) for build instructions, compatibility information and build tips.
See the [Wiki](https://github.com/ethereum/webthree-umbrella/wiki) for build instructions, compatibility information and build tips.

### Testing

To run the tests, make sure you clone the tests repository from github.com/ethereum to tests as a sibling to cpp-ethereum.
To run the tests, make sure you clone github.com/ethereum/tests and point the environment variable
`ETHEREUM_TEST_PATH` to that path.

### Contributing

### Yet To Do
External contributions are more than welcome! We try to keep a list of tasks that are suitable for
newcomers under the tag [good first task](https://github.com/ethereum/webthree-umbrella/labels/good%20first%20task).
If you have any questions, please ask in our [gitter channel](https://gitter.im/ethereum/cpp-ethereum).

See [TODO](https://github.com/ethereum/cpp-ethereum/wiki/TODO)
Please refer to the file [CONTRIBUTING.md] for some guidelines.

All new contributions are added under the MIT License. Please refer to the `LICENSE` file in the root directory.
To state that you accept this fact for all of your contributions please add yourself to the list of external contributors like in the example below.

### License

All new contributions are under the [MIT license](http://opensource.org/licenses/MIT).
See [LICENSE](LICENSE). Some old contributions are under the [GPLv3 license](http://www.gnu.org/licenses/gpl-3.0.en.html). See [GPLV3_LICENSE](GPLV3_LICENSE).

### Contributing

All new contributions are added under the MIT License. Please refer to the `LICENSE` file in the root directory.
To state that you accept this fact for all of your contributions please add yourself to the list of external contributors like in the example below.

#### External Contributors

I hereby place all my contributions in this codebase under an MIT
licence, as specified [here](http://opensource.org/licenses/MIT).
- *Name Surname* (**email@domain**)

#### Contribution guideline

Please add yourself in the `@author` doxygen section of the file your are adding/editing
with the same wording as the one you listed yourself in the external contributors section above,
only replacing the word **contribution** by **file**
Expand Down
2 changes: 1 addition & 1 deletion alethzero
Submodule alethzero updated 46 files
+1 −2 CMakeLists.txt
+4 −4 alethfive/AlethFive.cpp
+26 −15 alethone/AlethOne.cpp
+2 −2 alethone/AlethOne.ui
+1 −1 alethone/CMakeLists.txt
+37 −30 alethzero/AlethZero.cpp
+10 −7 alethzero/AlethZero.h
+4 −2 alethzero/CMakeLists.txt
+1 −1 alethzero/NetworkSettings.cpp
+10 −8 alethzero/TransactDialog.cpp
+6 −2 alethzero/ZeroFace.h
+3 −1 alethzero/main.cpp
+7 −5 alethzero/plugins/Mining.cpp
+3 −3 alethzero/plugins/accounts/AllAccounts.cpp
+36 −45 alethzero/plugins/blockchain/BlockList.cpp
+12 −5 alethzero/plugins/blockchain/PrivateChain.cpp
+84 −22 alethzero/plugins/browser/Browser.cpp
+3 −0 alethzero/plugins/browser/Browser.h
+1 −7 alethzero/plugins/browser/Browser.ui
+3 −2 alethzero/plugins/browser/JsConsole.cpp
+9 −9 alethzero/plugins/whisper/Whisper.cpp
+3 −4 alethzero/plugins/whisper/WhisperPeers.cpp
+42 −18 libaleth/AccountHolder.cpp
+6 −2 libaleth/AccountHolder.h
+33 −8 libaleth/Aleth.cpp
+9 −0 libaleth/Aleth.h
+9 −25 libaleth/AlethFace.cpp
+9 −5 libaleth/AlethFace.h
+2 −15 libaleth/AlethWhisper.cpp
+4 −6 libaleth/AlethWhisper.h
+1 −1 libaleth/CMakeLists.txt
+25 −0 libaleth/Common.cpp
+3 −0 libaleth/Common.h
+10 −0 libaleth/Context.cpp
+1 −0 libaleth/Context.h
+21 −12 libaleth/DappHost.cpp
+5 −1 libaleth/DappHost.h
+44 −63 libaleth/DappLoader.cpp
+5 −3 libaleth/DappLoader.h
+48 −8 libaleth/RPCHost.cpp
+36 −7 libaleth/RPCHost.h
+5 −5 libaleth/SendDialog.cpp
+1 −1 libaleth/SendDialog.h
+2 −2 libaleth/Slave.cpp
+3 −3 libaleth/Slave.h
+8 −25 libaleth/SyncView.cpp
68 changes: 0 additions & 68 deletions dependency_graph.dot

This file was deleted.

10 changes: 10 additions & 0 deletions dependency_graph/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

To generate the `dependency_graph.svg` the executables `tred` and `dot` are required from the
[graphviz](http://www.graphviz.org/) package.

## Installing Graphviz on OSX

```
brew update
brew install graphviz
```
160 changes: 160 additions & 0 deletions dependency_graph/generate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
#!/usr/bin/env python
#
# generate.py
#
# Python script to generate a DOT graph showing the dependency graph of
# the components within the Ethereum webthree-umbrella project.
#
# See http://github.com/ethereum/webthree-umbrella for more info on webthree
# See http://ethereum.org for more info on Ethereum
#
# Contributed by Bob Summerwill (bob@summerwill.net)

import os
import re

assignmentPattern = "(set|eth_name)\((EXECUTABLE|LIBRARY) (.*)\)"
dependencyPattern = "eth_use\((.*)\s+(OPTIONAL|REQUIRED)\s+(.*)\)"


# Returns a string which lists all the dependency edges for a given
# library or application, based on the declared OPTIONAL and REQUIRED
# dependencies within the CMake file for that library or application.
def getDependencyEdges(submodulePath, library):
cmakeListsPath = os.path.join(os.path.join(submodulePath, library),
"CMakeLists.txt")
outputString = ""

if os.path.exists(cmakeListsPath):
executable = ""
with open(cmakeListsPath) as fileHandle:
for line in fileHandle.readlines():
result = re.search(assignmentPattern, line)
if result:
executable = result.group(3)
result = re.search(dependencyPattern, line)
if result:
fromNode = result.group(1)
if fromNode == "${EXECUTABLE}":
fromNode = executable
toNodes = result.group(3).split()
for toNode in toNodes:
# Merge all Qt::* and JsonRpc::* nodes
# to simplify the output graph. Not much
# value in the details there.
if toNode.startswith("Qt::"):
toNode = "Qt*"
elif toNode.startswith("JsonRpc::"):
toNode = "JsonRpc*"
elif "::" in toNode:
toNode = toNode.split("::")[1]
edgeText = '"' + fromNode + '" -> "' + toNode + '"'
if "OPTIONAL" in line:
edgeText = edgeText + " [style=dotted]"
outputString = outputString + edgeText + "\n"

return outputString


# Return a string which is a list of all the library and application
# names within a given git sub-module directory.
def getLibraryAndApplicationNames(submodulePath):
outputString = ""
for subDirectoryName in os.listdir(submodulePath):
absSubDirectoryPath = os.path.join(submodulePath, subDirectoryName)
if os.path.isdir(absSubDirectoryPath):
cmakeListsPath = os.path.join(absSubDirectoryPath,
"CMakeLists.txt")
if os.path.exists(cmakeListsPath):
moduleName = ""
with open(cmakeListsPath) as fileHandle:
for line in fileHandle.readlines():
result = re.search(assignmentPattern, line)
if result:
moduleName = result.group(3)
if (moduleName == ""):
moduleName = subDirectoryName
outputString = outputString + ' "' + moduleName + '"'
if not subDirectoryName.startswith("lib"):
outputString = outputString + \
' [shape="box", style="bold"]'
outputString = outputString + "\n"
return outputString


# Generate a sub-graph for each sub-module in the umbrella.
def processSubmodule(root, submodule):
submodulePath = os.path.join(root, submodule)
cleanName = submodule.replace(".", "_").replace("-", "_")

print " subgraph cluster_" + cleanName + " {"
print " label = <" + submodule + " dependencies>"

# Hard-coded dependency edge for "soljson" which is within
# an EMSCRIPTEN conditional. It's not worth bothering with
# complicating the parsing to cope with conditionals for this
# single misplaced dependency edge. We'll just hard-code it.
if "solidity" in submodule:
print ' "soljson" -> "solidity"'

print getLibraryAndApplicationNames(submodulePath)

if (submodule == "libethereum"):
print " bgcolor = LavenderBlush"
elif (submodule == "webthree"):
print " bgcolor = Honeydew"
elif (submodule == "libweb3core"):
print " bgcolor = AliceBlue"
elif (submodule == "solidity"):
print " bgcolor = WhiteSmoke"
else:
print " bgcolor = LightGray"
print " }"

for library in os.listdir(submodulePath):
absLibPath = os.path.join(submodulePath, library)
if os.path.isdir(absLibPath):
print getDependencyEdges(submodulePath, library)


# Walk the sub-modules under the umbrella
def processUmbrella(root):
for submodule in os.listdir(root):
absPath = os.path.join(root, submodule)
if os.path.isdir(absPath):
if not (".git" in absPath) \
and not ("dependency_graph" in absPath) \
and not ("webthree-helpers" in absPath):
processSubmodule(root, submodule)


print 'digraph webthree {'
print ' graph [ label = "webthree dependencies" ]'
print ' node [ fontname = "Courier", fontsize = 10 ]'
print ''
print ' compound = true'

# Hard-coded cluster for webthree-helpers, which does contain any
# of the Ethereum libraries or executables, but does define CMake
# rules which introduce implicit dependencies. Parsing those would
# be way too much work. Easier to hard-code them. This script is
# not attempting to be a general CMake-dependencies graph generator,
# after all. It's specific to webthree-umbrella.
print " subgraph cluster_webthree_helpers {"
print ' label = <webthree-helpers dependencies>'
print ' bgcolor = LemonChiffon'
print ' "buildinfo"'
print ' "base"'
print ' "json_spirit"'
print ' "scrypt"'
print ' "secp256k1"'
print " }"
print ' "base" -> "boost"'
print ' "base" -> "Jsoncpp"'
print ' "base" -> "LevelDB"'
print ' "base" -> "pthreads"'
print ' "secp256k1" -> "gmp"'

processUmbrella('..')

print "}"
1 change: 1 addition & 0 deletions dependency_graph/generate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
python ./generate.py | tred | dot -Tsvg > dependency_graph.svg
Loading

0 comments on commit bd14fab

Please sign in to comment.