Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

docs: Update Readme with TOC, Contributor Guideline. Update Cargo package descriptions #10652

Merged
merged 45 commits into from
Jun 25, 2019
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
39b5ae9
docs: Update Readme with TOC, Contributor Guide and License sections
ltfschoen May 13, 2019
4dd7577
docs: Simplify package descriptions in Readme
ltfschoen May 13, 2019
950d634
docs: Fix typos
ltfschoen May 13, 2019
11834e3
docs: Update Cargo package configs adding missing descriptions
ltfschoen May 13, 2019
f91f26d
fix: Remove machine since was accidental from diff branch. Fix contri…
ltfschoen May 13, 2019
5892bca
fix: Fix formatting
ltfschoen May 13, 2019
dfacb82
remove details snippet since not code and formats badly
ltfschoen May 13, 2019
a37742e
review-fix: Remove duplicate description
ltfschoen May 13, 2019
049135e
fix dot point formatting
ltfschoen May 13, 2019
10205c9
fix: Add missing description to vm package
ltfschoen May 14, 2019
cf05a7d
fix: Remove duplicate Code of Conduct and Contributor guidelines
ltfschoen May 14, 2019
bc30b00
docs: Update Contributing for consistency with other repos
ltfschoen May 14, 2019
a8132d7
docs: Update Readme to link to existing Code of Conduct and Contribut…
ltfschoen May 14, 2019
8124328
refactor: Add missing space
ltfschoen May 14, 2019
e6e5f82
fix: Fix links to be markdown format
ltfschoen May 14, 2019
c7f2a87
review-fix: Update CONTRIBUTING.md to link to Parity Ethereum Style G…
ltfschoen May 15, 2019
8a139c8
merge latest master and fix conflicts
ltfschoen May 28, 2019
282a4e3
Merge branch 'master' into luke-readme2
ltfschoen Jun 6, 2019
c40158c
docs: Fix type in .github/CONTRIBUTING.md
ltfschoen Jun 6, 2019
d1ec475
docs: Fix typo in .github/CONTRIBUTING.md
ltfschoen Jun 6, 2019
e7ac760
docs: Rephrase parity-clib/Cargo.toml
ltfschoen Jun 6, 2019
b820960
review-fix: Fix whole paragraph
ltfschoen Jun 6, 2019
b9f6384
review-fix: Add comment to prevent direct pushes to master branch
ltfschoen Jun 6, 2019
a8fb47d
review-fix: Change some rules to recommendations
ltfschoen Jun 6, 2019
cdaa2a7
Update .github/CONTRIBUTING.md
ltfschoen Jun 6, 2019
c1163ef
review-fix: Replace feature reduction with breaking changes dot point
ltfschoen Jun 6, 2019
851499d
review-fix: Rephrase what to do when reviewing PR
ltfschoen Jun 6, 2019
e9e3920
review-fix: Update parity-rpc package description and module rustdocs
ltfschoen Jun 6, 2019
8d0e013
docs: Add missing fullstop
ltfschoen Jun 6, 2019
95dd2cb
review-fix: Update rustdoc section to show all packages first as default
ltfschoen Jun 6, 2019
e87b8ba
review-fix: Rename Parity Util to Parity Core Libraries
ltfschoen Jun 6, 2019
68578b4
review-fix: Rename readme too for the C bindings name change
ltfschoen Jun 6, 2019
39cdd6f
review-fix: Remove some docs since we do not teach the reader Rust
ltfschoen Jun 6, 2019
55d1a3e
review-fix: Wrap Parity Ethereum specific packages in a details section
ltfschoen Jun 6, 2019
d880c01
review-fix: Separate tools that are in this repo vs those that are not
ltfschoen Jun 6, 2019
46b5e94
review-fix: Add link to ethabi on crates.io
ltfschoen Jun 6, 2019
c1a71f2
review-fix: Remove unnecessary extra line talking about pushing to ma…
ltfschoen Jun 11, 2019
4a85e6c
Merge branch 'master' into luke-readme2
ltfschoen Jun 19, 2019
805e39d
review-fix: Remove useless summary of parts of the rust book document…
ltfschoen Jun 21, 2019
c095637
docs: Update .github/CONTRIBUTING.md to specify two reviewers required
ltfschoen Jun 21, 2019
9f69b61
docs: Update README.md with simplification
ltfschoen Jun 21, 2019
b89af4f
docs: Update README.md renaming to Test Runner instead of just Run
ltfschoen Jun 21, 2019
68d0f15
review-fix: Remove hardware wallet from docs
ltfschoen Jun 21, 2019
488d9d7
review-fix: Remove veto PR section of contributor doc
ltfschoen Jun 21, 2019
8bfadc0
review-fix: Change to test generator title
ltfschoen Jun 25, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 40 additions & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,46 @@ Also, try to include **steps to reproduce** the issue and expand on the **actual

If you would like to contribute to Parity Ethereum, please **fork it**, fix bugs or implement features, and [propose a pull request](https://github.com/paritytech/parity-ethereum/compare).

Please, refer to the [Coding Guide](https://wiki.parity.io/Coding-guide) in our wiki for more details about hacking on Parity.
### Labels & Milestones

We use [labels](https://github.com/paritytech/parity-ethereum/labels) to manage PRs and issues and communicate state of a PR. Please familiarize yourself with them. Furthermore we are organizing issues in [milestones](https://github.com/paritytech/parity-ethereum/milestones). Best way to get started is to a pick a ticket from the current milestone tagged [`easy`](https://github.com/paritytech/parity-ethereum/labels/Q2-easy%20%F0%9F%92%83) and get going or [`mentor`](https://github.com/paritytech/parity-ethereum/labels/Q1-mentor%20%F0%9F%95%BA) and get in contact with the mentor offering their support on that larger task.
ltfschoen marked this conversation as resolved.
Show resolved Hide resolved

### Rules

There are a few basic ground-rules for contributors (including the maintainer(s) of the project):

* **No `--force` pushes** or modifying the master branch history in any way. If you need to rebase, ensure you do it in your own repo.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we even allow pushing directly to master? We shouldn't.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit b9f6384

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then I think this line is redundant then - if you can't push to master you can't --force push to master either.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in another commit c1a71f2

* **Non-master branches**, prefixed with a short name moniker (e.g. `gav-my-feature`) must be used for ongoing work, and include the associated issue ID (if any) in the branch name.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd say that it's too far going, you can choose whatever branch name you want and you can also use your own fork. The rule should be that you produce a PR, I don't think anyone cares how exactly.

I think the actual rule rather is that branches should be ephemeral, we (used to) wipe out the stale ones periodically from the main repo. Having a name moniker in the branch helps inquiring a person about their unfinshed work

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit a8fb47d

* **All modifications** must be made in a **pull-request** to solicit feedback from other contributors.
* A pull-request *must not be merged until CI* has finished successfully.
ltfschoen marked this conversation as resolved.
Show resolved Hide resolved
* Contributors should adhere to the [house coding style](https://wiki.parity.io/Coding-guide).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't up to date. I think we should either be linking to the Substrate one, or update this one to match

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's update the wiki to match the substrate one 👍

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think a potential issue is that we would have the same coding style guide stored in 3x places, each with the same contents:

Copy link
Contributor Author

@ltfschoen ltfschoen May 14, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need a new coding style guide that's "general" across all Parity products (i.e. https://wiki.parity.io/Parity-Style-Guide.html), and then the https://wiki.parity.io/Substrate-Style-Guide.html would extend it with Substrate-specific aspects, and link to the "general" guide, and we'd do the same with http://wiki.polkadot.network/en/latest/polkadot/build/rust-style-guide/ (Polkadot-specific aspects), and also do the same with https://wiki.parity.io/Coding-guide (Parity Ethereum-specific aspects), and possibly rename "Coding-guide.md" to "Parity-Ethereum-guide" or similar..

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@HCastano i've pushed a commit that updates the link so it points to https://wiki.parity.io/Parity-Ethereum-Style-Guide, which works since https://github.com/paritytech/wiki/pull/332 has been merged


### Merge Process
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have concerns with this whole paragraph. The process it describes is not the one we use. No mention of the two-reviewers requirement (even for insubstantial PRs currently), and perhaps particularly concerning: it seems like it allows merging with two positive reviews even though there's a third reviewer that is strongly opposed. I don't think we want to end up in a situation in which we are forced to merge something some of us do not agree with. Such cases are rare (ever happened?) but if/when they do, forcing a merge by appeal to these 48-hour rules etc seems like asking for trouble. Please reconsider this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit b820960


Merging pull requests once CI is successful:

* A PR needs to be reviewed and approved by project maintainers unless:
* it does not alter any logic (e.g. comments, dependencies, docs), then it may be tagged [`insubstantial`](https://github.com/paritytech/parity-ethereum/pulls?q=is%3Aopen+is%3Apr+label%3A%22A2-insubstantial+%F0%9F%91%B6%22) and merged by its author once CI is complete.
* it is an urgent fix with no large change to logic, then it may be merged after a non-author contributor has approved the review once CI is complete.

* Once a PR is ready for review please add the [`pleasereview`](https://github.com/paritytech/parity-ethereum/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+label%3A%22A0-pleasereview+%F0%9F%A4%93%22+) label. Generally PRs should sit with this label for 48 hours in order to garner feedback. It may be merged before if all relevant parties had a look at it.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 48 hours grace period seems arbitrary, I don't see why it should even be mentioned, cause it's the first time I heard of something like this.

The faster we get PRs reviewed and merged the better.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've fixed this in commit b820960

* No PR should be merged until all reviews' comments are addressed.
ltfschoen marked this conversation as resolved.
Show resolved Hide resolved

*Reviewing pull requests*:

When reviewing a pull request, the end-goal is to suggest useful changes to the author. Reviews should finish with approval unless there are issues that would result in:
ltfschoen marked this conversation as resolved.
Show resolved Hide resolved

* Buggy behavior.
dvdplm marked this conversation as resolved.
Show resolved Hide resolved
* Undue maintenance burden.
* Breaking with house coding style.
* Pessimization (i.e. reduction of speed as measured in the projects benchmarks).
* Feature reduction (i.e. it removes some aspect of functionality that a significant minority of users rely on).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd just say that breaking changes should be carefuly reviewed and tagged as such so they end up in changelog. I don't think we have a rule that a feature-reducting PR should never be approved.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit c1163ef

* Uselessness (i.e. it does not strictly add a feature or fix a known issue).

*Reviews may not be used as an effective veto for a PR because*:
dvdplm marked this conversation as resolved.
Show resolved Hide resolved

* There exists a somewhat cleaner/better/faster way of accomplishing the same feature/fix.
* It does not fit well with some other contributors' longer-term vision for the project.

## License.

Expand Down
265 changes: 248 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,24 @@
<p align="center"><a href="https://gitlab.parity.io/parity/parity-ethereum/commits/master" target="_blank"><img src="https://gitlab.parity.io/parity/parity-ethereum/badges/master/build.svg" /></a>
<a href="https://www.gnu.org/licenses/gpl-3.0.en.html" target="_blank"><img src="https://img.shields.io/badge/license-GPL%20v3-green.svg" /></a></p>

## Table of Contents

1. [Description](#chapter-001)
2. [Technical Overview](#chapter-002)
3. [Building](#chapter-003)<br>
3.1 [Building Dependencies](#chapter-0031)<br>
3.2 [Building from Source Code](#chapter-0032)<br>
3.3 [Simple One-Line Installer for Mac and Linux](#chapter-0033)<br>
3.4 [Starting Parity Ethereum](#chapter-0034)
4. [Documentation](#chapter-004)
5. [Toolchain](#chapter-005)
6. [Community](#chapter-006)
7. [Contributing](#chapter-007)
8. [License](#chapter-008)


## 1. Description <a id="chapter-001"></a>

**Built for mission-critical use**: Miners, service providers, and exchanges need fast synchronisation and maximum uptime. Parity Ethereum provides the core infrastructure essential for speedy and reliable services.

- Clean, modular codebase for easy customisation
Expand All @@ -15,7 +33,7 @@
- Synchronise in hours, not days with Warp Sync
- Modular for light integration into your service or product

## Technical Overview
## 2. Technical Overview <a id="chapter-002"></a>

Parity Ethereum's goal is to be the fastest, lightest, and most secure Ethereum client. We are developing Parity Ethereum using the sophisticated and cutting-edge **Rust programming language**. Parity Ethereum is licensed under the GPLv3 and can be used for all your Ethereum needs.

Expand All @@ -25,7 +43,9 @@ If you run into problems while using Parity Ethereum, check out the [wiki for do

Parity Ethereum's current beta-release is 2.1. You can download it at [the releases page](https://github.com/paritytech/parity-ethereum/releases) or follow the instructions below to build from source. Please, mind the [CHANGELOG.md](CHANGELOG.md) for a list of all changes between different versions.

## Build Dependencies
## 3. Building <a id="chapter-003"></a>

### 3.1 Build Dependencies <a id="chapter-0031"></a>

Parity Ethereum requires **latest stable Rust version** to build.

Expand Down Expand Up @@ -58,7 +78,7 @@ Once you have `rustup` installed, then you need to install:

Make sure that these binaries are in your `PATH`. After that, you should be able to build Parity Ethereum from source.

## Build from Source Code
### 3.2 Build from Source Code <a id="chapter-0032"></a>

```bash
# download Parity Ethereum code
Expand Down Expand Up @@ -95,7 +115,7 @@ or
$ git checkout beta
```

## Simple One-Line Installer for Mac and Linux
### 3.3 Simple One-Line Installer for Mac and Linux <a id="chapter-0033"></a>

```bash
bash <(curl https://get.parity.io -L)
Expand All @@ -107,9 +127,9 @@ The one-line installer always defaults to the latest beta release. To install a
bash <(curl https://get.parity.io -L) -r stable
```

## Start Parity Ethereum
### 3.4 Starting Parity Ethereum <a id="chapter-0034"></a>

### Manually
#### Manually

To start Parity Ethereum manually, just run

Expand All @@ -119,7 +139,7 @@ $ ./target/release/parity

so Parity Ethereum begins syncing the Ethereum blockchain.

### Using `systemd` service file
#### Using `systemd` service file

To start Parity Ethereum as a regular user using `systemd` init:

Expand All @@ -128,17 +148,222 @@ To start Parity Ethereum as a regular user using `systemd` init:
2. Copy release to bin folder, write `sudo install ./target/release/parity /usr/bin/parity`
3. To configure Parity Ethereum, write a `/etc/parity/config.toml` config file, see [Configuring Parity Ethereum](https://paritytech.github.io/wiki/Configuring-Parity) for details.

## Parity Ethereum toolchain
## 4. Documentation <a id="chapter-004"></a>

Official website: https://parity.io

Be sure to [check out our wiki](https://wiki.parity.io) for more information.

### Viewing documentation for Parity Ethereum packages

You can generate documentation for a Parity Ethereum Rust package and have it automatically open in your web browser using [rustdoc with Cargo](https://doc.rust-lang.org/rustdoc/what-is-rustdoc.html#using-rustdoc-with-cargo), (of the The Rustdoc Book), by running the the following commands:

```
cargo doc --package <spec> --open
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the default instruction should be to build all docs right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes thanks. I've addressed this in commit 95dd2cb

```

Replacing `<spec>` with one of the following (i.e. `cargo doc --package parity-ethereum --open`):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this section is that useful, would rather see it in some top-level code organisation overview section.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's handy if you just want to copy/paste the relevant docs that you want to open in development (without opening them all), but it does take up a lot of space. I've wrapped it in a "Details >" section

I've made changes in commit 55d1a3e

What are you envisioning by a top-level code organisation overview section?

I think ideally there'd be a Parity Ethereum equivalent of https://docs.substrate.dev/docs/architecture-of-a-runtime, where you could just click on one of the packages and it'd take you to where it's published on crates.io or similar.

And that there'd be an equivalent of say https://docs.substrate.dev/docs/srml-overview#section-srml-architecture that contains your architecture diagram.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think ideally there'd be a Parity Ethereum equivalent of https://docs.substrate.dev/docs/architecture-of-a-runtime,

That looks really awesome.


* Parity Ethereum (EthCore) Client Application
```bash
parity-ethereum
```
* Parity Ethereum Account Management, Hardware Wallet Support, Key Management Tool, and Keys Generator
```bash
ethcore-accounts, ethkey-cli, ethstore, ethstore-cli, fake-hardware-wallet, hardware-wallets
dvdplm marked this conversation as resolved.
Show resolved Hide resolved
```
* Parity Chain Specification
```bash
chainspec
```
* Parity CLI Signer Tool & RPC Client
```bash
cli-signer parity-rpc-client
```
* Parity Ethereum Ethash & ProgPoW Implementations
```bash
ethash
```
* Parity (EthCore) Library
```bash
ethcore
```
* Parity Ethereum Blockchain Database, Generator, Configuration,
dvdplm marked this conversation as resolved.
Show resolved Hide resolved
Caching, Importing Blocks, and Block Information
```bash
ethcore-blockchain
```
* Parity Ethereum (EthCore) Contract Calls and Blockchain Service & Registry Information
```bash
ethcore-call-contract
```
* Parity Ethereum (EthCore) Database Access & Utilities, Database Cache Manager
```bash
ethcore-db
```
* Parity Ethereum Virtual Machine (EVM) Rust Implementation
```bash
evm
```
* Parity Ethereum (EthCore) Light Client Implementation
```bash
ethcore-light
```
* Parity Smart Contract based Node Filter, Manage Permissions of Network Connections
```bash
node-filter
```
* Parity Private Transactions
```bash
ethcore-private-tx
```
* Parity Ethereum (EthCore) Client & Network Service Creation & Registration with the I/O Subsystem
```bash
ethcore-service
```
* Parity Ethereum (EthCore) Blockchain Synchronization
```bash
ethcore-sync
```
* Parity Ethereum Common Types
```bash
common-types
```
* Parity Ethereum Virtual Machines (VM) Support Library
```bash
vm
```
* Parity Ethereum WASM Interpreter
```bash
wasm
```
* Parity Ethereum WASM Test Run
ltfschoen marked this conversation as resolved.
Show resolved Hide resolved
```bash
pwasm-run-test
```
* Parity EVM Implementation
```bash
evmbin
```
* Parity Ethereum IPFS-compatible API
```bash
parity-ipfs-api
```
* Parity Ethereum JSON Deserialization
```bash
ethjson
```
* Parity Ethereum State Machine Generalization for Consensus Engines
```bash
parity-machine
```
* Parity Ethereum (EthCore) Miner Interface
```bash
ethcore-miner parity-local-store price-info ethcore-stratum using_queue
```
* Parity Ethereum (EthCore) Logger Implementation
```bash
ethcore-logger
```
* Parity Ethereum Client C-Bindings Library
```bash
parity-clib
```
* Parity Ethereum JSON-RPC Servers
```bash
parity-rpc
```
* Parity Ethereum (EthCore) Secret Store
```bash
ethcore-secretstore
```
* Parity Updater Service
```bash
parity-updater parity-hash-fetch
```
* Parity Utilities
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is a fair label for what these are. These are not really "utilities": they are core pieces of functionality while "utility" sort of implies a "nice to have" piece of code. Maybe "Parity core libs"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit e87b8ba

```bash
ethcore-bloom-journal blooms-db dir eip-712 fake-fetch fastmap fetch ethcore-io
journaldb keccak-hasher len-caching-lock macros memory-cache memzero
migration-rocksdb ethcore-network ethcore-network-devp2p panic_hook
patricia-trie-ethereum registrar rlp_compress rlp_derive parity-runtime stats
time-utils triehash-ethereum unexpected parity-version
```
* Parity Whisper Protocol Implementation
```bash
parity-whisper whisper-cli
```

### Contributing to documentation for Parity Ethereum packages

[Document source code](https://doc.rust-lang.org/1.9.0/book/documentation.html) for Parity Ethereum packages by annotating the source code with documentation comments.

Example (generic):
```markdown
/// Summary
///
/// Description
///
/// # Panics
///
/// # Errors
///
/// # Safety
///
/// # Examples
///
/// Summary of Example 1
///
/// ```rust
/// // insert example 1 code here
/// ```
///
```

* Important notes:
* Documentation comments must use annotations with a triple slash `///`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not teach the reader Rust, that is assumed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit 39cdd6f but removing that line

* Modules are documented using `//!`
dvdplm marked this conversation as resolved.
Show resolved Hide resolved
```
//! Summary (of module)
//!
//! Description (of module)
```
* Special section header is indicated with a hash `#`.
* `Panics` section requires an explanation if the function triggers a panic
* `Errors` section is for describing conditions under which a function of method returns `Err(E)` if it returns a `Result<T, E>`
* `Safety` section requires an explanation if the function is `unsafe`
* `Examples` section includes examples of using the function or method
* Code block annotations for examples are included between triple graves, as shown above.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not teach the reader Rust, that is assumed.

Copy link
Contributor Author

@ltfschoen ltfschoen Jun 6, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit 39cdd6f but removing that line

Instead of including the programming language to use for syntax highlighting as the annotation
after the triple graves, alternative annotations include the `ignore`, `text`, `should_panic`, or `no_run`.
* Summary sentence is a short high level single sentence of its functionality
* Description paragraph is for details additional to the summary sentence
* Missing documentation annotations may be used to identify where to generate warnings with `#![warn(missing_docs)]`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"where to generate" sounds odd.

Copy link
Contributor Author

@ltfschoen ltfschoen Jun 6, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit 39cdd6f by rewording it

or errors `#![deny(missing_docs)]`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#![deny(missing_docs)] should be required in all new code.

Copy link
Contributor Author

@ltfschoen ltfschoen Jun 6, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit 39cdd6f but adding what you've suggested

* Hide documentation for items with `#[doc(hidden)]`

### Contributing to documentation (tests, extended examples, macros) for Parity Ethereum packages

The code block annotations in the `# Example` section may be used as [documentation as tests and for extended examples](https://doc.rust-lang.org/1.9.0/book/documentation.html#documentation-as-tests).

* Important notes:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, don't teach people Rust. Please remove this paragraph.

Copy link
Contributor Author

@ltfschoen ltfschoen Jun 6, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in commit 39cdd6f by removing that paragraph

* Rustdoc will automatically add a `main()` wrapper around the code block to test it
* [Documenting macros](https://doc.rust-lang.org/1.9.0/book/documentation.html#documenting-macros).
* Documentation as tests examples are included when running `cargo test`

## 5. Toolchain <a id="chapter-005"></a>

In addition to the Parity Ethereum client, there are additional tools in this repository available:

- [evmbin](https://github.com/paritytech/parity-ethereum/blob/master/evmbin/) - EVM implementation for Parity Ethereum.
- [ethabi](https://github.com/paritytech/ethabi) - Parity Ethereum function calls encoding.
- [ethstore](https://github.com/paritytech/parity-ethereum/blob/master/accounts/ethstore) - Parity Ethereum key management.
- [ethkey](https://github.com/paritytech/parity-ethereum/blob/master/accounts/ethkey) - Parity Ethereum keys generator.
- [whisper](https://github.com/paritytech/parity-ethereum/blob/master/whisper/) - Implementation of Whisper-v2 PoC.
- [evmbin](https://github.com/paritytech/parity-ethereum/blob/master/evmbin/) - Parity Ethereum EVM Implementation.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd add [docs here](https://………) to all of these.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a link to the rustdocs that are on crates.io only for ethabi in commit 46b5e94

Copy link
Contributor Author

@ltfschoen ltfschoen Jun 6, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on discussion with @tomusdrw in order to be able to add publish documentation links to crates.io for the other internal toolchains evmbin, ethstore, ethkey, and whisper, we first need to "fix" and publish their dependencies. We need to create a separate issue for this. By "fix" we want them to be as minimal as possible, so ethkey shouldn't bring half of parity-ethereum repo. We need to carefuly select packages that are going to be published.It also requires changes in the code to declare dependencies in a different way, i.e.:

# Cargo.toml of ethstore
ethkey = { path = "../ethkey", version = "1.0.0" } #version is required if we want to publish to crates.io

Copy link
Contributor Author

@ltfschoen ltfschoen Jun 11, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've created the new issue here: #10739

- [ethabi](https://github.com/paritytech/ethabi) - Parity Ethereum Encoding of Function Calls.
- [ethstore](https://github.com/paritytech/parity-ethereum/blob/master/accounts/ethstore) - Parity Ethereum Key Management.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO we should use relative paths to projects within the repo. I'd also group tools from external repos together.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed this in these commits 55d1a3e, d880c01

- [ethkey](https://github.com/paritytech/parity-ethereum/blob/master/accounts/ethkey) - Parity Ethereum Keys Generator.
- [whisper](https://github.com/paritytech/parity-ethereum/blob/master/whisper/) - Parity Ethereum Whisper-v2 PoC Implementation.

## Join the chat!
## 6. Community <a id="chapter-006"></a>

### Join the chat!

Questions? Get in touch with us on Gitter:
[![Gitter: Parity](https://img.shields.io/badge/gitter-parity-4AB495.svg)](https://gitter.im/paritytech/parity)
Expand All @@ -149,8 +374,14 @@ Questions? Get in touch with us on Gitter:
Alternatively, join our community on Matrix:
[![Riot: +Parity](https://img.shields.io/badge/riot-%2Bparity%3Amatrix.parity.io-orange.svg)](https://riot.im/app/#/group/+parity:matrix.parity.io)

## Documentation
## 7. Contributing <a id="chapter-007"></a>

Official website: https://parity.io
An introduction has been provided in the ["So You Want to be a Core Developer" presentation slides by Hernando Castano](http://tiny.cc/contrib-to-parity-eth). Additional guidelines are provided in [CONTRIBUTING](https://github.com/paritytech/parity-ethereum/blob/master/.github/CONTRIBUTING.md).

Be sure to [check out our wiki](https://wiki.parity.io) for more information.
### Contributor Code of Conduct

[CODE_OF_CONDUCT](https://github.com/paritytech/parity-ethereum/blob/master/.github/CODE_OF_CONDUCT.md)

## 8. License <a id="chapter-008"></a>

[LICENSE](https://github.com/paritytech/parity-ethereum/blob/master/LICENSE)
2 changes: 1 addition & 1 deletion accounts/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
description = "Account management for Parity Ethereum"
description = "Parity Ethereum Account Management"
homepage = "http://parity.io"
license = "GPL-3.0"
name = "ethcore-accounts"
Expand Down
1 change: 1 addition & 0 deletions accounts/ethkey/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[package]
description = "Parity Ethereum Keys Generator"
name = "ethkey"
version = "0.3.0"
authors = ["Parity Technologies <admin@parity.io>"]
Expand Down
Loading