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

chore: Fix all broken links #20204

Merged
merged 10 commits into from
May 6, 2024
Merged

Conversation

MasterPi-2124
Copy link
Contributor

@MasterPi-2124 MasterPi-2124 commented Apr 29, 2024

Description

This PR fixes all broken URLs in the repo using lychee tool. However, the tool only checks and reports the broken links, so we had to fix them manually. If the tool is helpful, I can set up a CI job to periodically check and create new issues reporting all broken links, decreasing the number of spam PRs.

CHANGELOG.md files are excluded from the search. We can also exclude files with custom regex names so the tool won't look for the files matching these regex.

Note: There are still some URLs and file paths that could not be fixed as the new paths are missing. Below is the list of broken links:

Filename URL Error
./SECURITY.md https://github.com/cosmos/security/blob/main/TIMELINE.md
https://github.com/cosmos/security/blob/main/DISCLOSURE.md
https://github.com/cosmos/security/blob/main/EXAMPLES.md
Failed: Not found
Failed: Not found
Failed: Not found

Author Checklist

All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.

I have...

  • included the correct type prefix in the PR title
  • confirmed ! in the type prefix if API or client breaking change
  • targeted the correct branch (see PR Targeting)
  • provided a link to the relevant issue or specification
  • reviewed "Files changed" and left comments if necessary
  • included the necessary unit and integration tests
  • added a changelog entry to CHANGELOG.md
  • updated the relevant documentation or specification, including comments for documenting Go code
  • confirmed all CI checks have passed

Reviewers Checklist

All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.

I have...

  • confirmed the correct type prefix in the PR title
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic, API design and naming, documentation is accurate, tests and test coverage

Summary by CodeRabbit

  • Documentation Updates
    • Updated documentation links across various modules to point to the correct URLs and file paths in the Cosmos SDK documentation.
    • Corrected hyperlink references within README files for better navigation and consistency.
  • Refactor
    • Adjusted internal paths for coin.ParseCoin function within the Cosmos SDK, enhancing structural consistency.

Copy link
Contributor

coderabbitai bot commented Apr 29, 2024

Walkthrough

This update primarily focuses on correcting and updating documentation links across various files in the Cosmos SDK repository. Changes include adjusting URLs to point to the correct document locations, updating file paths, and ensuring that internal references are accurate and functional.

Changes

File Path Change Summary
core/CHANGELOG.md Moved coin.ParseCoin within the same directory.
docs/build/.../01-app-go-v2.md Updated links to depinject documentation and ADR-057.
docs/build/.../03-msg-services.md Updated file path reference in a Protobuf Msg service documentation.
docs/build/.../11-structure.md Updated a link in the README.md to the spec directory.
docs/build/.../13-upgrade.md Corrected a path to an architecture document about balance keys migration.
docs/spec/store/interblock-cache.md Updated the link to the ARC implementation in the inter-block cache documentation.
x/auth/README.md Updated a hyperlink reference within the document.
x/authz/README.md Corrected a hyperlink to the auth module.

Possibly related issues


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@MasterPi-2124 MasterPi-2124 changed the title Fix allbroken links Fix all broken links Apr 29, 2024
@MasterPi-2124 MasterPi-2124 changed the title Fix all broken links chores: Fix all broken links Apr 29, 2024
@MasterPi-2124 MasterPi-2124 changed the title chores: Fix all broken links chore: Fix all broken links Apr 29, 2024
@MasterPi-2124 MasterPi-2124 marked this pull request as ready for review April 29, 2024 03:23
@MasterPi-2124 MasterPi-2124 requested a review from a team as a code owner April 29, 2024 03:23
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 13

Out of diff range and nitpick comments (29)
docs/build/building-apps/01-app-go-v2.md (2)

Line range hint 60-60: Correct the grammatical error in the sentence.

- The configuration can then be embed with `go:embed` and read with [`appconfig.LoadYAML`](https://pkg.go.dev/cosmossdk.io/core/appconfig#LoadYAML), or [`appconfig.LoadJSON`](https://pkg.go.dev/cosmossdk.io/core/appconfig#LoadJSON), in `app_di.go`.
+ The configuration can then be embedded with `go:embed` and read with [`appconfig.LoadYAML`](https://pkg.go.dev/cosmossdk.io/core/appconfig#LoadYAML), or [`appconfig.LoadJSON`](https://pkg.go.dev/cosmossdk.io/core/appconfig#LoadJSON), in `app_di.go`.

Line range hint 100-100: Ensure the sentence starts with an uppercase letter.

- `app_di.go` is the place where `SimApp` is constructed.
+ `App_di.go` is the place where `SimApp` is constructed.
docs/build/building-modules/16-testing.md (2)

Line range hint 9-9: Correct the grammatical error in the sentence.

- We advice, as a general rule, to use tests at all stages of the development cycle.
+ We advise, as a general rule, to use tests at all stages of the development cycle.

Line range hint 10-10: Improve the sentence structure for clarity.

- It is advised, as a chain developer, to test your application and modules in a similar way than the SDK.
+ It is advised, as a chain developer, to test your application and modules similarly to the SDK.
docs/learn/advanced/08-events.md (2)

Line range hint 6-6: Replace accent character with an apostrophe for correct punctuation.

- `Event`s are objects that contain information about the execution of the application.
+ `Event's` are objects that contain information about the execution of the application.

Line range hint 28-28: Replace accent character with an apostrophe for correct punctuation.

- A list of `attributes` are key-value pairs that give more information about the categorized Event.
+ A list of `attributes` are key-value pairs that give more information about the categorized Event's.
x/authz/README.md (3)

Line range hint 9-9: Capitalize the first letter of the sentence following the header for proper sentence structure.

- `x/authz` is an implementation of a Cosmos SDK module...
+ `X/authz` is an implementation of a Cosmos SDK module...

Line range hint 15-31: Adjust the indentation of the unordered list to maintain consistency and readability.

-    * [Authorization and Grant](#authorization-and-grant)
-    * [Built-in Authorizations](#built-in-authorizations)
-    * [Gas](#gas)
+  * [Authorization and Grant](#authorization-and-grant)
+  * [Built-in Authorizations](#built-in-authorizations)
+  * [Gas](#gas)

Line range hint 87-87: Use American English spelling for consistency across the documentation.

- to authorise delegating, undelegating or redelegating
+ to authorize delegating, undelegating or redelegating
docs/learn/advanced/05-encoding.md (1)

Line range hint 251-251: Correct the unpaired bracket to ensure proper formatting.

- see more details in [ADR 023](../../architecture/adr-023-protobuf-naming.md)
+ see more details in [ADR 023](../../architecture/adr-023-protobuf-naming.md)
docs/learn/advanced/07-cli.md (6)

Line range hint 8-8: Consider adding the article "the" before "command-line interface" for grammatical correctness.


Line range hint 8-8: Replace "on" with "at" to correct the preposition usage: "works at a high-level".


Line range hint 36-36: Ensure that bullet points start with an uppercase letter for consistency and readability.


Line range hint 53-53: Add a space after the period to separate sentences properly for better readability.


167-167: Consider adding the article "the" before "flags" to maintain grammatical consistency.


Line range hint 196-196: Add a space after the period to separate sentences properly for better readability.

x/auth/README.md (2)

Line range hint 21-31: Correct the indentation for unordered lists to improve readability.

-    * `auth` - authentication of accounts and transactions for Cosmos SDK applications and is responsible for specifying the base transaction and account types.
-    * `authz` - authorization for accounts to perform actions on behalf of other accounts and enables a granter to grant authorizations to a grantee that allows the grantee to execute messages on behalf of the granter.
+  * `auth` - authentication of accounts and transactions for Cosmos SDK applications and is responsible for specifying the base transaction and account types.
+  * `authz` - authorization for accounts to perform actions on behalf of other accounts and enables a granter to grant authorizations to a grantee that allows the grantee to execute messages on behalf of the granter.

Line range hint 432-432: Remove trailing spaces to adhere to Markdown best practices.

- When adding transactions to mempool or gossipping transactions, validators check if the transaction's gas prices, which are determined by the provided fees, meet any of the validator's minimum gas prices. In other words, a transaction must provide a fee of at least one denomination that matches a validator's minimum gas price. 
+ When adding transactions to mempool or gossipping transactions, validators check if the transaction's gas prices, which are determined by the provided fees, meet any of the validator's minimum gas prices. In other words, a transaction must provide a fee of at least one denomination that matches a validator's minimum gas price.
docs/learn/beginner/00-app-anatomy.md (11)

199-199: Consider adding a space after the comma in the grpc.enable and grpc.address fields for better readability.


Line range hint 55-55: Replace the accent character with an apostrophe in "module's keepers."

- **A list of module's `keeper`s.**
+ **A list of module's `keepers`.**

Line range hint 80-80: Replace the accent character with an apostrophe in "legacy Msgs."

- The Cosmos SDK still supports legacy `Msg`s and legacy CometBFT queries, which are routed using the legacy `Msg` routes and the legacy query routes, respectively.
+ The Cosmos SDK still supports legacy `Msgs` and legacy CometBFT queries, which are routed using the legacy `Msg` routes and the legacy query routes, respectively.

Line range hint 182-182: Replace the accent character with an apostrophe in "Protobuf Anys."

- `sdk.Msg`s are encoded using Protobuf [`Any`s](#register-codec).
+ `sdk.Msgs` are encoded using Protobuf [`Anys`](#register-codec).

Line range hint 168-168: Replace the accent character with an apostrophe in "other modules' keepers."

- **Reference to other modules' `keeper`s.**
+ **Reference to other modules' `keepers`.**

Line range hint 219-219: Replace the accent character with an apostrophe in "other modules' keepers."

- and potentially references other modules' `keeper`s as parameters.
+ and potentially references other modules' `keepers` as parameters.

Line range hint 216-216: Correct the possessive form to plural form by removing the apostrophe in "other module's keepers."

- * Reference to **other module's `keepers`**.
+ * Reference to **other modules' `keepers`**.

Line range hint 217-217: Consider rephrasing to avoid the comma before "because" as it introduces an essential clause.

- The `keeper` needs it to marshal structs before storing them, or to unmarshal them when it retrieves them, because stores only accept `[]bytes` as value.
+ The `keeper` needs it to marshal structs before storing them or to unmarshal them when it retrieves them because stores only accept `[]bytes` as value.

Line range hint 81-81: Consider using "different from" instead of "different than" for more formal writing.

- Should the value be different than the predicted one, special logic defined in the invariant registry is triggered (usually the chain is halted).
+ Should the value be different from the predicted one, special logic defined in the invariant registry is triggered (usually the chain is halted).

Line range hint 84-87: Adjust the indentation of the unordered list to match the surrounding content.

-    * [`InitChainer`](#initchainer): used to initialize the application when it is first started.
-    * [`PreBlocker`](#preblocker): called before BeginBlock.
-    * [`BeginBlocker`, `EndBlocker`](#beginblocker-and-endblocker): called at the beginning and at the end of every block.
-    * [`anteHandler`](../advanced/00-baseapp.md#antehandler): used to handle fees and signature verification.
+  * [`InitChainer`](#initchainer): used to initialize the application when it is first started.
+  * [`PreBlocker`](#preblocker): called before BeginBlock.
+  * [`BeginBlocker`, `EndBlocker`](#beginblocker-and-endblocker): called at the beginning and at the end of every block.
+  * [`anteHandler`](../advanced/00-baseapp.md#antehandler): used to handle fees and signature verification.

Line range hint 115-116: Use asterisks for list items to maintain consistency with the rest of the document.

- - It runs before the `BeginBlocker` of all modules
- - It can modify consensus parameters in storage, and signal the caller through the return value.
+ * It runs before the `BeginBlocker` of all modules
+ * It can modify consensus parameters in storage, and signal the caller through the return value.

@@ -159,4 +159,4 @@ You can sync a full node to an existing blockchain which has been upgraded using

To successfully sync, you must start with the initial binary that the blockchain started with at genesis. If all Software Upgrade Plans contain binary instruction, then you can run Cosmovisor with auto-download option to automatically handle downloading and switching to the binaries associated with each sequential upgrade. Otherwise, you need to manually provide all binaries to Cosmovisor.

To learn more about Cosmovisor, see the [Cosmovisor Quick Start](../../build/tooling/01-cosmovisor.md).
To learn more about Cosmovisor, see the [Cosmovisor Quick Start](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/tooling/01-cosmovisor.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

Update the link to the Cosmovisor Quick Start guide.

The provided link points to an outdated or incorrect URL. Please update it to the correct location on GitHub or the appropriate documentation site.

@@ -57,7 +57,7 @@ The following examples show how to query Events using the Cosmos SDK.
| `tx.height=23` | Query all transactions at height 23 |
| `message.action='/cosmos.bank.v1beta1.Msg/Send'` | Query all transactions containing a x/bank `Send` [Service `Msg`](../../build/building-modules/03-msg-services.md). Note the `'`s around the value. |
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct the article before a vowel sound and ensure proper punctuation around the value.

- Query all transactions containing a x/bank `Send` [Service `Msg`](../../build/building-modules/03-msg-services.md). Note the `'`s around the value.
+ Query all transactions containing an x/bank `Send` [Service `Msg`](../../build/building-modules/03-msg-services.md). Note the `'`s around the value.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
| `message.action='/cosmos.bank.v1beta1.Msg/Send'` | Query all transactions containing a x/bank `Send` [Service `Msg`](../../build/building-modules/03-msg-services.md). Note the `'`s around the value. |
| `message.action='/cosmos.bank.v1beta1.Msg/Send'` | Query all transactions containing an x/bank `Send` [Service `Msg`](../../build/building-modules/03-msg-services.md). Note the `'`s around the value. |

@@ -57,7 +57,7 @@
| `tx.height=23` | Query all transactions at height 23 |
| `message.action='/cosmos.bank.v1beta1.Msg/Send'` | Query all transactions containing a x/bank `Send` [Service `Msg`](../../build/building-modules/03-msg-services.md). Note the `'`s around the value. |
| `message.module='bank'` | Query all transactions containing messages from the x/bank module. Note the `'`s around the value. |
| `create_validator.validator='cosmosval1...'` | x/staking-specific Event, see [x/staking SPEC](../../build/modules/staking/README.md). |
| `create_validator.validator='cosmosval1...'` | x/staking-specific Event, see [x/staking SPEC](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/modules/staking/README.md). |
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure consistent spacing in markdown tables.

- | `create_validator.validator='cosmosval1...'`     | x/staking-specific Event, see [x/staking SPEC](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/modules/staking/README.md).
+ | `create_validator.validator='cosmosval1...'` | x/staking-specific Event, see [x/staking SPEC](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/modules/staking/README.md).

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
| `create_validator.validator='cosmosval1...'` | x/staking-specific Event, see [x/staking SPEC](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/modules/staking/README.md). |
| `create_validator.validator='cosmosval1...'` | x/staking-specific Event, see [x/staking SPEC](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/modules/staking/README.md).

* [Confix](./02-confix.md)
* [Hubl](./03-hubl.md)
* [Cosmovisor](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/tooling/01-cosmovisor.md)
* [Confix](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/tooling/02-confix.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

Possible spelling mistake in the tool name "Confix".

It seems like "Confix" might be a typo. Please verify the correct name of the tool. If it is indeed a typo, consider correcting it to the intended name.

* [Hubl](./03-hubl.md)
* [Cosmovisor](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/tooling/01-cosmovisor.md)
* [Confix](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/tooling/02-confix.md)
* [Hubl](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/tooling/03-hubl.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

Possible spelling mistake in the tool name "Hubl".

It seems like "Hubl" might be a typo. Please verify the correct name of the tool. If it is indeed a typo, consider correcting it to the intended name.

Comment on lines 9 to 10
The Cosmos SDK allows much easier wiring of an `app.go` thanks to App Wiring and [`depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md).
Learn more about the rationale of App Wiring in [ADR-057](../../architecture/adr-057-app-wiring.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct the spelling of "depinject" to maintain consistency.

- The Cosmos SDK allows much easier wiring of an `app.go` thanks to App Wiring and [`depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md).
+ The Cosmos SDK allows much easier wiring of an `app.go` thanks to App Wiring and [`Depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md).

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
The Cosmos SDK allows much easier wiring of an `app.go` thanks to App Wiring and [`depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md).
Learn more about the rationale of App Wiring in [ADR-057](../../architecture/adr-057-app-wiring.md).
The Cosmos SDK allows much easier wiring of an `app.go` thanks to App Wiring and [`Depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md).
Learn more about the rationale of App Wiring in [ADR-057](../../architecture/adr-057-app-wiring.md).

Comment on lines 17 to 18
* [Depinject Documentation](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md)
* [Modules depinject-ready](../building-modules/15-depinject.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct the spelling of "depinject" to maintain consistency.

- * [Depinject Documentation](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md)
+ * [Depinject Documentation](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-Depinject.md)

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
* [Depinject Documentation](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md)
* [Modules depinject-ready](../building-modules/15-depinject.md)
* [Depinject Documentation](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-Depinject.md)
* [Modules depinject-ready](../building-modules/15-depinject.md)

@@ -86,7 +86,7 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/tests/integration/bank

## Simulations

Simulations uses as well a minimal application, built with [`depinject`](../packages/01-depinject.md):
Simulations uses as well a minimal application, built with [`depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md):
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct the spelling of "depinject" to maintain consistency.

- Simulations uses as well a minimal application, built with [`depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md):
+ Simulations use as well a minimal application, built with [`Depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md):

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Simulations uses as well a minimal application, built with [`depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md):
Simulations use as well a minimal application, built with [`Depinject`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/build/packages/01-depinject.md):

docs/learn/advanced/03-node.md Outdated Show resolved Hide resolved
@@ -89,6 +89,6 @@ https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/proto/cosmos/auth/v1be
```

<!-- markdown-link-check-disable -->
gRPC gateway is started in-process along with the application and CometBFT. It can be enabled or disabled by setting gRPC Configuration `enable` in [`app.toml`](../run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml).
gRPC gateway is started in-process along with the application and CometBFT. It can be enabled or disabled by setting gRPC Configuration `enable` in [`app.toml`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml).
Copy link
Contributor

Choose a reason for hiding this comment

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

Clarify the sentence structure for better readability.

- gRPC gateway is started in-process along with the application and CometBFT.
+ The gRPC gateway is started in-process along with the application and CometBFT.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
gRPC gateway is started in-process along with the application and CometBFT. It can be enabled or disabled by setting gRPC Configuration `enable` in [`app.toml`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml).
The gRPC gateway is started in-process along with the application and CometBFT. It can be enabled or disabled by setting gRPC Configuration `enable` in [`app.toml`](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml).

@@ -93,4 +93,4 @@ Upon starting, the node will bootstrap its RPC and P2P server and start dialing

## Other commands
<!-- markdown-link-check-disable-next-line -->
To discover how to concretely run a node and interact with it, please refer to our [Running a Node, API and CLI](../../user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml) guide.
To discover how to concretely run a node and interact with it, please refer to our [Running a Node, API and CLI](https://github.com/cosmos/cosmos-sdk-docs/blob/main/docs/user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml) guide.
Copy link
Member

Choose a reason for hiding this comment

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

we should leave the direct linking since this is used in the docs page. This will send users to the repo which is not desired

Copy link
Contributor Author

Choose a reason for hiding this comment

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

sure I will revert this. However, a lot of file paths are not there anymore (ex. docs/user/run-node/01-run-node.md) so we still need other ways to fix this

Copy link
Member

@tac0turtle tac0turtle left a comment

Choose a reason for hiding this comment

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

left a comment, some of these changes should be reverted due to how the docs site work

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

Out of diff range and nitpick comments (19)
docs/spec/store/interblock-cache.md (3)

Line range hint 31-31: Correct grammatical error in the description of data stability.

- This is data that do not change often
+ This is data that does not change often

Line range hint 74-74: Correct verb agreement in the description of atomic writes.

- supports atomic writes and use them
+ supports atomic writes and uses them

Line range hint 4-265: Correct Markdown list indentation for consistency and readability.

- * [Inter-block Cache](#inter-block-cache)
-     * [Synopsis](#synopsis)
-     * [Overview and basic concepts](#overview-and-basic-concepts)
-         * [Motivation](#motivation)
-         * [Definitions](#definitions)
-     * [System model and properties](#system-model-and-properties)
-         * [Assumptions](#assumptions)
-         * [Properties](#properties)
-             * [Thread safety](#thread-safety)
-             * [Crash recovery](#crash-recovery)
-             * [Iteration](#iteration)
-     * [Technical specification](#technical-specification)
-         * [General design](#general-design)
-         * [API](#api)
-             * [CommitKVCacheManager](#commitkvcachemanager)
-             * [CommitKVStoreCache](#commitkvstorecache)
-         * [Implementation details](#implementation-details)
-     * [History](#history)
-     * [Copyright](#copyright)
+ * [Inter-block Cache](#inter-block-cache)
+   * [Synopsis](#synopsis)
+   * [Overview and basic concepts](#overview-and-basic-concepts)
+     * [Motivation](#motivation)
+     * [Definitions](#definitions)
+   * [System model and properties](#system-model-and-properties)
+     * [Assumptions](#assumptions)
+     * [Properties](#properties)
+       * [Thread safety](#thread-safety)
+       * [Crash recovery](#crash-recovery)
+       * [Iteration](#iteration)
+   * [Technical specification](#technical-specification)
+     * [General design](#general-design)
+     * [API](#api)
+       * [CommitKVCacheManager](#commitkvcachemanager)
+       * [CommitKVStoreCache](#commitkvstorecache)
+     * [Implementation details](#implementation-details)
+   * [History](#history)
+   * [Copyright](#copyright)
x/authz/README.md (7)

Line range hint 9-9: Capitalize the first letter of the sentence for proper noun consistency.

- # `x/authz`
+ # `X/authz`

Line range hint 107-107: Add a comma after "Hence" for correct punctuation.

- Hence we only allow one grant for the (granter, grantee, Authorization) triple.
+ Hence, we only allow one grant for the (granter, grantee, Authorization) triple.

Line range hint 152-152: Ensure sentences start with an uppercase letter.

- * both granter and grantee have the same address.
+ * Both granter and grantee have the same address.

Line range hint 153-153: Ensure sentences start with an uppercase letter.

- * provided `Expiration` time is less than current unix timestamp (but a grant will be created if no `expiration` time is provided since `expiration` is optional).
+ * Provided `Expiration` time is less than current unix timestamp (but a grant will be created if no `expiration` time is provided since `expiration` is optional).

Line range hint 154-154: Ensure sentences start with an uppercase letter.

- * provided `Grant.Authorization` is not implemented.
+ * Provided `Grant.Authorization` is not implemented.

Line range hint 155-155: Ensure sentences start with an uppercase letter.

- * `Authorization.MsgTypeURL()` is not defined in the router (there is no defined handler in the app router to handle that Msg types).
+ * `Authorization.MsgTypeURL()` is not defined in the router (there is no defined handler in the app router to handle that Msg types).

Line range hint 221-221: Ensure sentences start with an uppercase letter.

- simd query authz --help
+ Simd query authz --help
x/auth/README.md (9)

Line range hint 40-40: Add a comma for clarity.

- actions on behalf of other accounts and enables a granter to grant authorizations
+ actions on behalf of other accounts, and enables a granter to grant authorizations

This change improves the readability of the sentence by clearly separating the clauses.


Line range hint 59-59: Correct the spelling of "gossiping".

- gossipping transactions
+ gossiping transactions

The correct spelling is "gossiping". This correction ensures professionalism and accuracy in documentation.


Line range hint 64-64: Correct the spelling of "CometBFT".

- CometBFT
+ Tendermint

The term "CometBFT" appears to be a typo or outdated term for the consensus engine used in the Cosmos SDK, which is known as Tendermint. Updating this will avoid confusion.


Line range hint 80-80: Add a space after the period for consistency.

- `sdk.Coins`.  Accounts are exposed externally as an
+ `sdk.Coins`. Accounts are exposed externally as an

Adding a space after the period aligns with standard writing practices and improves the readability of the document.


Line range hint 148-148: Simplify the language for clarity.

- CometBFT proposers presently have the ability to include in their proposed block transactions which fail `CheckTx`.
+ Tendermint proposers can include transactions that fail `CheckTx` in their proposed blocks.

This revision simplifies the sentence structure and updates the terminology to "Tendermint", enhancing clarity and accuracy.


Line range hint 186-186: Remove unnecessary hyphenation.

- fully-permissioned account keeper
+ fully permissioned account keeper

The adverb "fully" already modifies the adjective "permissioned" clearly, so the hyphen is not necessary.


Line range hint 252-252: Correct the possessive form of "it's" to "its".

- query for an account by it's address
+ query for an account by its address

"It's" is a contraction for "it is" or "it has", not a possessive form. This correction ensures grammatical accuracy in the documentation.


Line range hint 442-442: Correct the verb form for agreement with the subject.

- transactions that was generated offline
+ transactions that were generated offline

The verb "were" correctly matches the plural subject "transactions", ensuring grammatical correctness.


Line range hint 491-491: Correct the possessive form of "it's" to "its".

- query for an account by it's address
+ query for an account by its address

"It's" is a contraction for "it is" or "it has", not a possessive form. This correction ensures grammatical accuracy in the documentation.

@@ -40,7 +40,7 @@ on behalf of one account to other accounts. The design is defined in the [ADR 03
A *grant* is an allowance to execute a Msg by the grantee on behalf of the granter.
Authorization is an interface that must be implemented by a concrete authorization logic to validate and execute grants. Authorizations are extensible and can be defined for any Msg service method even outside of the module where the Msg method is defined. See the `SendAuthorization` example in the next section for more details.
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider simplifying the phrase to avoid redundancy.

- even outside of the module where the Msg method is defined
+ outside the module where the Msg method is defined

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Authorization is an interface that must be implemented by a concrete authorization logic to validate and execute grants. Authorizations are extensible and can be defined for any Msg service method even outside of the module where the Msg method is defined. See the `SendAuthorization` example in the next section for more details.
Authorization is an interface that must be implemented by a concrete authorization logic to validate and execute grants. Authorizations are extensible and can be defined for any Msg service method outside the module where the Msg method is defined. See the `SendAuthorization` example in the next section for more details.

@@ -62,4 +62,4 @@ func (m Migrator) Migrate1to2(ctx sdk.Context) error {
}
```

To see example code of changes that were implemented in a migration of balance keys, check out [migrateBalanceKeys](https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/x/bank/migrations/v2/store.go#L55-L76). For context, this code introduced migrations of the bank store that updated addresses to be prefixed by their length in bytes as outlined in [ADR-028](../architecture/adr-028-public-key-addresses.md).
To see example code of changes that were implemented in a migration of balance keys, check out [migrateBalanceKeys](https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/x/bank/migrations/v2/store.go#L55-L76). For context, this code introduced migrations of the bank store that updated addresses to be prefixed by their length in bytes as outlined in [ADR-028](../../architecture/adr-028-public-key-addresses.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

Correct the spelling mistake in the link text.

- To see example code of changes that were implemented in a migration of balance keys, check out [migrateBalanceKeys](https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/x/bank/migrations/v2/store.go#L55-L76).
+ To see example code of changes that were implemented in a migration of balance keys, check out [migrateBalanceKeys](https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/x/bank/migrations/v2/store.go#L55-L76).

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
To see example code of changes that were implemented in a migration of balance keys, check out [migrateBalanceKeys](https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/x/bank/migrations/v2/store.go#L55-L76). For context, this code introduced migrations of the bank store that updated addresses to be prefixed by their length in bytes as outlined in [ADR-028](../../architecture/adr-028-public-key-addresses.md).
To see example code of changes that were implemented in a migration of balance keys, check out [migrateBalanceKeys](https://github.com/cosmos/cosmos-sdk/blob/v0.50.0-alpha.0/x/bank/migrations/v2/store.go#L55-L76). For context, this code introduced migrations of the bank store that updated addresses to be prefixed by their length in bytes as outlined in [ADR-028](../../architecture/adr-028-public-key-addresses.md).

@@ -83,7 +83,7 @@ x/{module_name}
* `abci.go`: The module's `BeginBlocker` and `EndBlocker` implementations (this file is only required if `BeginBlocker` and/or `EndBlocker` need to be defined).
* `autocli.go`: The module [autocli](https://docs.cosmos.network/main/core/autocli) options.
* `simulation/`: The module's [simulation](./14-simulator.md) package defines functions used by the blockchain simulator application (`simapp`).
* `README.md`: The module's specification documents outlining important concepts, state storage structure, and message and event type definitions. Learn more how to write module specs in the [spec guidelines](../spec/SPEC_MODULE.md).
* `README.md`: The module's specification documents outlining important concepts, state storage structure, and message and event type definitions. Learn more how to write module specs in the [spec guidelines](../../spec/SPEC_MODULE.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

Update the link to point to the correct location.

- Learn more how to write module specs in the [spec guidelines](../../spec/SPEC_MODULE.md).
+ Learn more about how to write module specs in the [spec guidelines](../../spec/SPEC_MODULE.md).

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
* `README.md`: The module's specification documents outlining important concepts, state storage structure, and message and event type definitions. Learn more how to write module specs in the [spec guidelines](../../spec/SPEC_MODULE.md).
* `README.md`: The module's specification documents outlining important concepts, state storage structure, and message and event type definitions. Learn more about how to write module specs in the [spec guidelines](../../spec/SPEC_MODULE.md).

@@ -19,7 +19,7 @@ A Protobuf `Msg` service processes [messages](./02-messages-and-queries.md#messa

Each module should define a Protobuf `Msg` service, which will be responsible for processing requests (implementing `sdk.Msg`) and returning responses.

As further described in [ADR 031](../architecture/adr-031-msg-service.md), this approach has the advantage of clearly specifying return types and generating server and client code.
As further described in [ADR 031](../../architecture/adr-031-msg-service.md), this approach has the advantage of clearly specifying return types and generating server and client code.
Copy link
Contributor

Choose a reason for hiding this comment

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

Clarify the documentation on ADR 031.

- As further described in [ADR 031](../../architecture/adr-031-msg-service.md), this approach has the advantage of clearly specifying return types and generating server and client code.
+ As further described in [ADR 031](../../architecture/adr-031-msg-service.md), this approach has the advantage of clearly specifying return types and generating server and client code.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
As further described in [ADR 031](../../architecture/adr-031-msg-service.md), this approach has the advantage of clearly specifying return types and generating server and client code.
As further described in [ADR 031](../../architecture/adr-031-msg-service.md), this approach has the advantage of clearly specifying return types and generating server and client code.

@@ -7,13 +7,13 @@ sidebar_position: 1
:::note Synopsis

The Cosmos SDK allows much easier wiring of an `app.go` thanks to App Wiring and [`depinject`](../packages/01-depinject.md).
Learn more about the rationale of App Wiring in [ADR-057](../architecture/adr-057-app-wiring.md).
Learn more about the rationale of App Wiring in [ADR-057](../../architecture/adr-057-app-wiring.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

Ensure consistency in the documentation of ADR-057.

- Learn more about the rationale of App Wiring in [ADR-057](../../architecture/adr-057-app-wiring.md).
+ Learn more about the rationale of App Wiring in [ADR-057](../../architecture/adr-057-app-wiring.md).

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Learn more about the rationale of App Wiring in [ADR-057](../../architecture/adr-057-app-wiring.md).
Learn more about the rationale of App Wiring in [ADR-057](../../architecture/adr-057-app-wiring.md).

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Out of diff range and nitpick comments (6)
docs/spec/store/interblock-cache.md (4)

Line range hint 31-31: Correct verb agreement in the sentence.

- This is data that do not change often
+ This is data that does not change often

Line range hint 4-21: Correct the list indentation to improve markdown formatting.

- * [Inter-block Cache](#inter-block-cache)
-     * [Synopsis](#synopsis)
-     * [Overview and basic concepts](#overview-and-basic-concepts)
-         * [Motivation](#motivation)
-         * [Definitions](#definitions)
-     * [System model and properties](#system-model-and-properties)
-         * [Assumptions](#assumptions)
-         * [Properties](#properties)
-             * [Thread safety](#thread-safety)
-             * [Crash recovery](#crash-recovery)
-             * [Iteration](#iteration)
-     * [Technical specification](#technical-specification)
-         * [General design](#general-design)
-         * [API](#api)
-             * [CommitKVCacheManager](#commitkvcachemanager)
-             * [CommitKVStoreCache](#commitkvstorecache)
-         * [Implementation details](#implementation-details)
- * [History](#history)
- * [Copyright](#copyright)
+ * [Inter-block Cache](#inter-block-cache)
+   * [Synopsis](#synopsis)
+   * [Overview and basic concepts](#overview-and-basic-concepts)
+     * [Motivation](#motivation)
+     * [Definitions](#definitions)
+   * [System model and properties](#system-model-and-properties)
+     * [Assumptions](#assumptions)
+     * [Properties](#properties)
+       * [Thread safety](#thread-safety)
+       * [Crash recovery](#crash-recovery)
+       * [Iteration](#iteration)
+   * [Technical specification](#technical-specification)
+     * [General design](#general-design)
+     * [API](#api)
+       * [CommitKVCacheManager](#commitkvcachemanager)
+       * [CommitKVStoreCache](#commitkvstorecache)
+     * [Implementation details](#implementation-details)
+ * [History](#history)
+ * [Copyright](#copyright)

Line range hint 73-265: Remove trailing spaces to adhere to markdown best practices.

- The inter-block cache transparently delegates `Commit()` to its aggregate `CommitKVStore`. If the 
+ The inter-block cache transparently delegates `Commit()` to its aggregate `CommitKVStore`. If the
- `CacheWrap` wraps a `CommitKVStoreCache` with another caching layer (`CacheKV`). 
+ `CacheWrap` wraps a `CommitKVStoreCache` with another caching layer (`CacheKV`).
- It is unclear whether there is a use case for `CacheWrap`. 
+ It is unclear whether there is a use case for `CacheWrap`.

Line range hint 35-35: Start sentences with an uppercase letter.

- `Store key` uniquely identifies a store.
+ `Store key` Uniquely identifies a store.
x/authz/README.md (2)

Line range hint 9-9: Start the sentence with an uppercase letter for proper noun consistency.

- `x/authz` is an implementation of a Cosmos SDK module...
+ `X/authz` is an implementation of a Cosmos SDK module...

Line range hint 15-31: Correct the list indentation to improve readability and maintain consistency.

-    * [Concepts](#concepts)
-        * [Authorization and Grant](#authorization-and-grant)
-        * [Built-in Authorizations](#built-in-authorizations)
-        * [Gas](#gas)
-    * [State](#state)
-        * [Grant](#grant)
-        * [GrantQueue](#grantqueue)
-    * [Messages](#messages)
-        * [MsgGrant](#msggrant)
-        * [MsgRevoke](#msgrevoke)
-        * [MsgRevokeAll](#msgrevokeall)
-        * [MsgExec](#msgexec)
-        * [MsgPruneExpiredGrants](#msgpruneexpiredgrants)
-    * [Events](#events)
-    * [Client](#client)
-        * [CLI](#cli)
-        * [gRPC](#grpc)
-        * [REST](#rest)
+  * [Concepts](#concepts)
+    * [Authorization and Grant](#authorization-and-grant)
+    * [Built-in Authorizations](#built-in-authorizations)
+    * [Gas](#gas)
+  * [State](#state)
+    * [Grant](#grant)
+    * [GrantQueue](#grantqueue)
+  * [Messages](#messages)
+    * [MsgGrant](#msggrant)
+    * [MsgRevoke](#msgrevoke)
+    * [MsgRevokeAll](#msgrevokeall)
+    * [MsgExec](#msgexec)
+    * [MsgPruneExpiredGrants](#msgpruneexpiredgrants)
+  * [Events](#events)
+  * [Client](#client)
+    * [CLI](#cli)
+    * [gRPC](#grpc)
+    * [REST](#rest)

@@ -59,7 +59,7 @@ Ref: https://keepachangelog.com/en/1.0.0/

* [#19672](https://github.com/cosmos/cosmos-sdk/pull/19672) `PreBlock` now returns only an error for consistency with server/v2. The SDK has upgraded x/upgrade accordingly.
* [#18857](https://github.com/cosmos/cosmos-sdk/pull/18857) Moved `FormatCoins` to `x/tx`.
* [#18861](httpes://github.com/cosmos/cosmos-sdk/pull/18861) Moved `coin.ParseCoin` to `client/v2/internal`.
* [#18861](https://github.com/cosmos/cosmos-sdk/pull/18861) Moved `coin.ParseCoin` to `client/v2/internal`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Update the location of coin.ParseCoin to reflect the PR description accurately.

- Moved `coin.ParseCoin` to `client/v2/internal`.
+ Moved `coin.ParseCoin` to a new location (not specified).

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
* [#18861](https://github.com/cosmos/cosmos-sdk/pull/18861) Moved `coin.ParseCoin` to `client/v2/internal`.
* [#18861](https://github.com/cosmos/cosmos-sdk/pull/18861) Moved `coin.ParseCoin` to a new location (not specified).

@@ -32,7 +32,7 @@ This module is used in the Cosmos Hub.

## Concepts

**Note:** The auth module is different from the [authz module](../modules/authz/).
**Note:** The auth module is different from the [authz module](../authz/).
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider enhancing the description of the auth and authz modules with specific examples or use cases to provide clearer insights into their functionalities and distinctions.

Would you like me to draft a more detailed description for these modules?

@tac0turtle tac0turtle enabled auto-merge May 6, 2024 10:18
@tac0turtle
Copy link
Member

@MasterPi-2124 could you merge main into your branch

@MasterPi-2124
Copy link
Contributor Author

Sure, just merged

@tac0turtle tac0turtle added this pull request to the merge queue May 6, 2024
Merged via the queue into cosmos:main with commit e901584 May 6, 2024
58 checks passed
lfz941 added a commit to lfz941/cosmos-sdk that referenced this pull request Jun 25, 2024
@lfz941 lfz941 mentioned this pull request Jun 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants