Skip to content
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

docs: add first documentation archetype. #957

Closed
wants to merge 2 commits into from

Conversation

ajnavarro
Copy link
Contributor

@ajnavarro ajnavarro commented Jul 7, 2023

Adding different concepts linked between them as a first iteration to keep adding new and deeper ones to our documentation.

Related issues and PRs:

Contributors Checklist

  • Added new tests, or not needed, or not feasible
  • Provided an example (e.g. screenshot) to aid review or the PR is self-explanatory
  • Updated the official documentation or not needed
  • No breaking changes were made, or a BREAKING CHANGE: xxx message was included in the description
  • Added references to related issues and PRs
  • Provided any useful hints for running manual tests
  • Added new benchmarks to generated graphs, if any. More info here.

Adding different concepts linked between them as a first iteration to
keep adding new and deeper ones to our documentation.

Signed-off-by: Antonio Navarro Perez <[email protected]>
@ajnavarro ajnavarro requested a review from a team as a code owner July 7, 2023 10:04
@ajnavarro ajnavarro changed the title Docs: Add first documentation archetype. docs: Add first documentation archetype. Jul 7, 2023
docs/daos.md Outdated
---

# DAOs
Decentralized Autonomous Organizations are represented as a group of [Realm](./realm.md)s or/and [package](.)s that can manage decisions using the blockchain. We have several DAOs that will be in charge of:
Copy link
Member

@thehowl thehowl Jul 7, 2023

Choose a reason for hiding this comment

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

Mmh, it's actually people, no? I see it as decision-making regulated through code

docs/gnovm.md Outdated

# Gnovm

Gnovm is in charge to run [Gno](.) code. It interprets directly the source code and parses it to an AST. After that, it emulates CPU instructions to execute the AST instead of executing it directly. It is able to store the state of a [Realm](./realm.md) and retrieve it on the next execution.
Copy link
Member

Choose a reason for hiding this comment

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

it emulates CPU instructions to execute the AST instead of executing it directly

unclear; I would suggest something like "interprets the AST to execute its code, similarly to Python, in contrast to executing machine code directly, like Go with the official compiler".

Copy link
Contributor

Choose a reason for hiding this comment

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

I propose(combines discussion above): "Gnovm is in charge to run Gno code. Firstly, Gno source code is parsed into an Abstract Syntax Tree (AST). Then, Gnovm interprets the AST to execute the code. This process bears similarity to Python's execution model, which contrasts with that of Go's official compiler that directly executes machine code..."

Copy link
Contributor Author

@ajnavarro ajnavarro Jul 10, 2023

Choose a reason for hiding this comment

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

I would suggest something like "interprets the AST to execute its code, similarly to Python, in contrast to executing machine code directly, like Go with the official compiler".

I would prefer to explain things as they are instead of using other languages as examples. Some people might not know how Python interpreter works.

edit: where are we talking in your rewordings about OP codes? we are not just executing the AST but generating a list of OP codes that will be executed.

docs/gnoweb.md Outdated

gnoweb is an application that can call a special method on a [realm](./realm.md) that returns markdown as the output. This can be used to create any kind of web interface, like social networks, blog systems, forums, or standard status pages.

The method that it calls is `Render(string)`string` where the input string is a path, and the output string is markdown.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
The method that it calls is `Render(string)`string` where the input string is a path, and the output string is markdown.
The method that it calls is `Render(string) string` where the input is a path (to discriminate different requests, and potentially handle them through a router), and the return value is markdown to be rendered.

I would also add something like:

It has read-only access also to the [Realm State](./realm-state.md), so it can serve as a useful bridge between web2 and content on web3.

Copy link
Member

Choose a reason for hiding this comment

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

Just a note that the output of Render does not have to be markdown specifically

Copy link
Member

@zivkovicmilos zivkovicmilos left a comment

Choose a reason for hiding this comment

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

I like this as a starting point for our official docs, that will incorporate these very documents somehow

Left a few super minor comments, otherwise it looks good for the base version that will get expanded 💯

@@ -0,0 +1,9 @@
---
state: design # Nothing implemented yet, figuring out the best way to do it.
Copy link
Member

Choose a reason for hiding this comment

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

What kinds of states do we have in total?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

right now, 3:

  • improvements-needed: The final PoC is working well, but it must evolve performance-wise.
  • design: Nothing implemented yet, figuring out the best way to do it.
  • done: it is done (nothing yet)

docs/gnode.md Show resolved Hide resolved
docs/gnoweb.md Outdated

gnoweb is an application that can call a special method on a [realm](./realm.md) that returns markdown as the output. This can be used to create any kind of web interface, like social networks, blog systems, forums, or standard status pages.

The method that it calls is `Render(string)`string` where the input string is a path, and the output string is markdown.
Copy link
Member

Choose a reason for hiding this comment

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

Just a note that the output of Render does not have to be markdown specifically

docs/ibc-protocol.md Outdated Show resolved Hide resolved
docs/new-tendermint.md Outdated Show resolved Hide resolved
docs/new-tendermint.md Outdated Show resolved Hide resolved
@harry-hov harry-hov changed the title docs: Add first documentation archetype. docs: add first documentation archetype. Jul 7, 2023
Signed-off-by: Antonio Navarro Perez <[email protected]>
@thehowl
Copy link
Member

thehowl commented Sep 7, 2023

Superseded by #1046

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants