-
Notifications
You must be signed in to change notification settings - Fork 112
Documentation Improvements #625
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This is built using a custom script in #622. The natspec comments in the interface contracts could use some punctuation fixes including the use of back ticks when referring to a
I think it would be best to keep the standard Gitflow Workflow, merging feature branches such as this into the When we are ready to publish changes to documentation, they should be aligned with a new release, therefore we would merge the When we are ready to merge
As @elenadimitrova mentioned here in #612, you can skip CircleCI builds by adding |
|
Hmmm, yeah ok that seems to make sense, although I for some reason have doubts that the Okay, closing this and will open up a new feature-specific docs branch for the next round. |
|
I am going to reopen this PR for the purposes of updating the points Griffin made in the improvements list above. It won't "remain in existence permanently" and it will be merged around the imminent go-live. The current level of documentation (even with the lovely parsed interface docs) is not sufficient for a developer to be productively using the network. There is a lot of know-how that's just not captured. |
docs/CONTRIBUTING.md
Outdated
|
|
||
| ### Test coverage | ||
| ### Documentation-only contributions | ||
| If changes only affect files in the `docs/` directory, suspend CI builds by adding `[skip ci]` or `[ci skip]` to your commit message. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"suspend" it too strong a word here. Maybe "skip"?
docs/_Docs_GetStarted.md
Outdated
| If you intend to work with `glider-rc.1` on the Görli testnet, proceed with installation below, skipping the "local development and testing" section. | ||
|
|
||
|
|
||
| ### Installation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section is an almost exact duplicate of the repo readme which is why it goes out of date so often. I'd like to remove it altogether.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't want to butcher this section before @gichiba and @ryanchristo agree?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this section could be improved upon and trimmed down a bit but I also think it would be best if a developer was able to get started without needing to leave the page (moving from the docs to the readme and back to the docs).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am going to fight very very hard against any duplication of installation instructions and dependencies. If you want to keep and maintain it here, I will remove it from the readme.
| The Colony Network is a large set of contracts that together define how all colonies operate and interact with people and other smart contracts on the Ethereum blockchain. | ||
|
|
||
| Colony is designed to be modular, upgradable, and eternally backwards-compatible. This is achieved through a sophisticated contract architecture that requires a bit of exposition. It is recommended that any developer seeking to understand the Colony Network solidity implementation first read the [Colony White Paper](https://colony.io/whitepaper/), or at the very least, the [White Paper TL;DR](/colonynetwork/whitepaper-tldr-colony/). | ||
| Colony is designed to be modular, upgradable, and eternally backwards-compatible. This is achieved through a sophisticated contract architecture that requires a bit of exposition. It is recommended that any developer seeking to understand the Colony Network solidity implementation first read the [Colony White Paper](https://colony.io/whitepaper.pdf), or at the very least, the [White Paper TL;DR](/colonynetwork/whitepaper-tldr-colony/). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://github.com/JoinColony/colonyNetwork/pull/625/files#diff-f3b3c6b116ba5f2f1a88aa387b245ae9R58 These contracts have very little to do with the CLNY token :/
f2419c1 to
b6a60fd
Compare
| Data structures, enums, constants and events are declared in a dedicated `*DataTypes.sol` contract, e.g. `ColonyDataTypes.sol`. | ||
|
|
||
| For clarity all storage variables are held separately in a `*Storage.sol` contract, e.g. `ColonyStorage.sol`. Storage variable declaration ordering is crucial to be maintained correctly as that ordering cannot change during contract upgrages, due to the [contract upgrade mechanism](/colonynetwork/docs-the-delegate-proxy-pattern/) we use. | ||
| For clarity, all storage variables are held separately in a `*Storage.sol` contract, e.g. `ColonyStorage.sol`. Storage variable declaration ordering is crucial to be maintained; network upgrades and recovery depend on a consistent and clear storage layout. All variabes are commented with slot numbers to support developers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
network upgrades and recovery depend on a consistent and clear storage layout
This is insufficient to convey the full meaning.
"ordering cannot change during contract upgrades" <- this is what it's all about. If you insert a new storage variable amongst existing ones for example, it'll break the upgrade even if the storage layout is clear.
7a20253 to
71daac3
Compare
| Skill `254` has children: `[]` | ||
|
|
||
| Currently this role grants permission for no functions. It is a placeholder for the dispute resolution system, to be implemented in later releases. | ||
| If a user with "Admininstration" authority in domain `2` wants to finalize a payment in domain `5`, they would call: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I hope you approve of me changing the example function, @elenadimitrova. I think it's a little confusing to make the first example of permissioned functions a function that alters permissions 😛
and into ... well ... permissions section. Also renamed the The Delegate Proxy Pattern page to Upgrade design for clarity [skip ci]
988b71e to
9959c00
Compare
…n reputation mining [skip ci]
Ensure Goerli is spelled consistently
… changes[skip ci]
This PR tracks all improvements to documentation following the merge of #614
an API section (blocked by the lack of a natspec parser)As Ryan pointed out, this was already solved in Generate documentation for interface contracts #622updated network inheritance diagram (which includes domainRoles)this was too detailed so instead I did an architecture level diagram of the network design. The inheritance model is not really that useful on paper, plus it can get very brittle to maintain. Devs would normally go to the codebase to look at details like this.