This repository has been archived by the owner on Feb 7, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 372
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #155 from chriseth/release
Release Version 1.1.2
- Loading branch information
Showing
20 changed files
with
320 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule alethzero
updated
46 files
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 "}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
python ./generate.py | tred | dot -Tsvg > dependency_graph.svg |
Oops, something went wrong.