-
Notifications
You must be signed in to change notification settings - Fork 4.1k
fix: dead links in documentation #25056
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
📝 WalkthroughWalkthroughThis set of changes updates various documentation files to correct and standardize internal and external hyperlink references. The modifications involve adjusting relative paths and updating URLs to stable, versioned documentation sources. No functional, logical, or content changes were made beyond these link corrections. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. 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 using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
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.
Actionable comments posted: 2
🧹 Nitpick comments (4)
docs/docs/learn/advanced/02-context.md (1)
33-37: Add anchor for direct navigation toVoteInfoThe version-pinned URL is great, but dropping the
#voteinfoanchor forces readers to scroll.-* **VoteInfo:** A list of the ABCI type [`VoteInfo`](https://docs.cometbft.com/v0.37/spec/abci/), ... +* **VoteInfo:** A list of the ABCI type [`VoteInfo`](https://docs.cometbft.com/v0.37/spec/abci/#voteinfo), ...docs/docs/user/run-node/02-interact-node.md (3)
69-69: Over-qualified relative path
01-run-node.mdlives in the samerun-node/folder;./01-run-node.md(or simply01-run-node.md) is shorter and less error-prone.-... inside [`app.toml`](../../user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)): +... inside [`app.toml`](./01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)):
271-271: Ditto – consider simplifying the Swagger link-[`app.toml`](../../user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml) +[`app.toml`](./01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)
289-289: Ditto – CORS section-[...] field inside [`app.toml`](../../user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml). +[...] field inside [`app.toml`](./01-run-node.md#configuring-the-node-using-apptoml-and-configtoml).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Knowledge Base: Disabled due to Reviews > Disable Knowledge Base setting
📒 Files selected for processing (6)
docs/architecture/adr-063-core-module-api.md(1 hunks)docs/docs/build/building-modules/00-intro.md(1 hunks)docs/docs/build/building-modules/06-keeper.md(1 hunks)docs/docs/learn/advanced/02-context.md(1 hunks)docs/docs/learn/advanced/08-events.md(1 hunks)docs/docs/user/run-node/02-interact-node.md(3 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/docs/learn/advanced/02-context.md
[style] ~36-~36: Consider a more concise word here.
Context: ...ees.md) price a node is willing to take in order to include a transaction in its block. Thi...
(IN_ORDER_TO_PREMIUM)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Summary
🔇 Additional comments (2)
docs/architecture/adr-063-core-module-api.md (1)
561-561: Correct link target for ADR 057 – good catch
The change replaces the non-existentadr-057-app-wiring-1.mdwith the correctadr-057-app-wiring.md, matching the file name used elsewhere in this ADR and in the docs tree.docs/docs/learn/advanced/08-events.md (1)
60-60: LGTM – corrected staking spec linkThe new
../../../../x/staking/README.mdpath properly resolves fromdocs/docs/learn/advanced/.
No further action needed.
|
|
||
| * **Composability**: Cosmos SDK applications are almost always composed of multiple modules. This means developers need to carefully consider the integration of their module not only with the core of the Cosmos SDK, but also with other modules. The former is achieved by following standard design patterns outlined [here](#main-components-of-cosmos-sdk-modules), while the latter is achieved by properly exposing the store(s) of the module via the [`keeper`](./06-keeper.md). | ||
| * **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../learn/advanced/10-ocap.md) of the Cosmos SDK. | ||
| * **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../docs/learn/advanced/10-ocap.md) of the Cosmos SDK. |
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.
Broken link ‒ the new path adds an extra “docs” segment and 404s
From this location (docs/docs/build/building-modules/), ../../ already lands at docs/docs/.
Adding another docs/ in the URL yields docs/docs/docs/learn/..., which does not exist.
-... [object-capabilities model](../../docs/learn/advanced/10-ocap.md) ...
+... [object-capabilities model](../../learn/advanced/10-ocap.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. Thoroughly test & benchmark the code to ensure it meets the requirements.
| * **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../docs/learn/advanced/10-ocap.md) of the Cosmos SDK. | |
| * **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../learn/advanced/10-ocap.md) of the Cosmos SDK. |
🤖 Prompt for AI Agents
In docs/docs/build/building-modules/00-intro.md at line 59, the relative link to
the object-capabilities model documentation is incorrect because it adds an
extra "docs" segment, causing a 404 error. Fix this by adjusting the relative
path to remove the redundant "docs/" so that it correctly points to
../../learn/advanced/10-ocap.md from the current file location.
| The Cosmos SDK is a framework that makes it easy for developers to build complex decentralized applications from scratch, mainly by composing modules together. As the ecosystem of open-source modules for the Cosmos SDK expands, it will become increasingly likely that some of these modules contain vulnerabilities, as a result of the negligence or malice of their developer. | ||
|
|
||
| The Cosmos SDK adopts an [object-capabilities-based approach](../../learn/advanced/10-ocap.md) to help developers better protect their application from unwanted inter-module interactions, and `keeper`s are at the core of this approach. A `keeper` can be considered quite literally to be the gatekeeper of a module's store(s). Each store (typically an [`IAVL` Store](../../learn/advanced/04-store.md#iavl-store)) defined within a module comes with a `storeKey`, which grants unlimited access to it. The module's `keeper` holds this `storeKey` (which should otherwise remain unexposed), and defines [methods](#implementing-methods) for reading and writing to the store(s). | ||
| The Cosmos SDK adopts an [object-capabilities-based approach](../../docs/learn/advanced/10-ocap.md) to help developers better protect their application from unwanted inter-module interactions, and `keeper`s are at the core of this approach. A `keeper` can be considered quite literally to be the gatekeeper of a module's store(s). Each store (typically an [`IAVL` Store](../../learn/advanced/04-store.md#iavl-store)) defined within a module comes with a `storeKey`, which grants unlimited access to it. The module's `keeper` holds this `storeKey` (which should otherwise remain unexposed), and defines [methods](#implementing-methods) for reading and writing to the store(s). |
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.
Same broken relative link as in 00-intro.md
../../ is sufficient; the inserted docs/ causes docs/docs/docs/learn/....
-The Cosmos SDK adopts an [object-capabilities-based approach](../../docs/learn/advanced/10-ocap.md)
+The Cosmos SDK adopts an [object-capabilities-based approach](../../learn/advanced/10-ocap.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. Thoroughly test & benchmark the code to ensure it meets the requirements.
| The Cosmos SDK adopts an [object-capabilities-based approach](../../docs/learn/advanced/10-ocap.md) to help developers better protect their application from unwanted inter-module interactions, and `keeper`s are at the core of this approach. A `keeper` can be considered quite literally to be the gatekeeper of a module's store(s). Each store (typically an [`IAVL` Store](../../learn/advanced/04-store.md#iavl-store)) defined within a module comes with a `storeKey`, which grants unlimited access to it. The module's `keeper` holds this `storeKey` (which should otherwise remain unexposed), and defines [methods](#implementing-methods) for reading and writing to the store(s). | |
| The Cosmos SDK adopts an [object-capabilities-based approach](../../learn/advanced/10-ocap.md) to help developers better protect their application from unwanted inter-module interactions, and `keeper`s are at the core of this approach. A `keeper` can be considered quite literally to be the gatekeeper of a module's store(s). Each store (typically an [`IAVL` Store](../../learn/advanced/04-store.md#iavl-store)) defined within a module comes with a `storeKey`, which grants unlimited access to it. The module's `keeper` holds this `storeKey` (which should otherwise remain unexposed), and defines [methods](#implementing-methods) for reading and writing to the store(s). |
🤖 Prompt for AI Agents
In docs/docs/build/building-modules/06-keeper.md at line 21, the relative link
to the object-capabilities-based approach is incorrect because it includes an
extra 'docs/' segment, causing the path to resolve to docs/docs/docs/learn/....
Fix the link by removing the inserted 'docs/' so that the relative path starts
with '../../' only, ensuring it correctly points to the intended target.
📝 WalkthroughWalkthroughThis change set updates several documentation files to correct and standardize internal hyperlink references. The modifications include adjusting relative paths and updating URLs to versioned specifications or more accurate locations. No content, logic, or structure beyond the link targets was altered, and no code or public API changes were made. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Note ⚡️ Unit Test Generation is now available in beta!Learn more here, or try it out under "Finishing Touches" below. ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. 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 using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
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.
Actionable comments posted: 1
♻️ Duplicate comments (1)
docs/docs/build/building-modules/06-keeper.md (1)
21-22: Same double “docs” issue as in 00-intro.
../../docs/learn/advanced/10-ocap.mdlikely overshoots by one level and will break the link.Apply the same one-level-up correction:
-... (../../docs/learn/advanced/10-ocap.md) ... +... (../../learn/advanced/10-ocap.md) ...
🧹 Nitpick comments (2)
docs/docs/user/run-node/02-interact-node.md (1)
69-70: Minor path redundancy – optional cleanup.Going two levels up and then back into
user/run-node/…is functionally correct but a bit verbose.
Using../run-node/…keeps the link shorter and avoids extra directory traversal. No blocker, just a nit.-...](../../user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml) +...](../run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)Also applies to: 271-272, 289-290
docs/docs/learn/advanced/08-events.md (1)
60-60: Verify new relative link – it likely climbs outside the docs site root
../../../../x/staking/README.mdescapes thedocs/docsroot and points to a file that is not included in the built documentation tree.
On the rendered site this will 404 unless the build step copies the entirex/directory (it currently does not).Consider instead:
-| `create_validator.validator='cosmosval1...'` | x/staking-specific Event, see [x/staking SPEC](../../../../x/staking/README.md). | +| `create_validator.validator='cosmosval1...'` | x/staking-specific Event, see [x/staking spec](https://github.com/cosmos/cosmos-sdk/blob/v0.53.0-rc.2/x/staking/README.md). |(or adjust the relative path to stay within
docs/docs, e.g.../../../x/staking/README.md, after confirming it resolves).Please test the link locally (
npm run startwith Docusaurus) or in the preview build before merging.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Knowledge Base: Disabled due to Reviews > Disable Knowledge Base setting
📒 Files selected for processing (6)
docs/architecture/adr-063-core-module-api.md(1 hunks)docs/docs/build/building-modules/00-intro.md(1 hunks)docs/docs/build/building-modules/06-keeper.md(1 hunks)docs/docs/learn/advanced/02-context.md(1 hunks)docs/docs/learn/advanced/08-events.md(1 hunks)docs/docs/user/run-node/02-interact-node.md(3 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/docs/learn/advanced/02-context.md
[style] ~36-~36: Consider a more concise word here.
Context: ...ees.md) price a node is willing to take in order to include a transaction in its block. Thi...
(IN_ORDER_TO_PREMIUM)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Summary
🔇 Additional comments (2)
docs/architecture/adr-063-core-module-api.md (1)
558-562: Correct link target – looks good.The original link pointed at a non-existent “app-wiring-1” file; the new relative path resolves to the actual ADR 057 document.
No further action needed.docs/docs/learn/advanced/02-context.md (1)
33-34: LGTM – updated to versioned CometBFT docs.Switching from floating master links to
v0.37-scoped URLs is a clear win for stability and reproducibility.Also applies to: 37-38
| * **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../docs/learn/advanced/10-ocap.md) of the Cosmos SDK. | ||
| * **Capabilities**: Most modules need to read and/or write to the store(s) of other modules. However, in an open-source environment, it is possible for some modules to be malicious. That is why module developers need to carefully think not only about how their module interacts with other modules, but also about how to give access to the module's store(s). The Cosmos SDK takes a capabilities-oriented approach to inter-module security. This means that each store defined by a module is accessed by a `key`, which is held by the module's [`keeper`](./06-keeper.md). This `keeper` defines how to access the store(s) and under what conditions. Access to the module's store(s) is done by passing a reference to the module's `keeper`. |
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.
💡 Verification agent
🧩 Analysis chain
Potentially incorrect relative link – double “docs” segment.
From docs/docs/build/building-modules/00-intro.md,
../../docs/learn/advanced/10-ocap.md resolves to docs/docs/docs/learn/advanced/10-ocap.md.
Unless a third docs directory really exists, this is likely an off-by-one path change that will 404 when rendered.
-... [object-capabilities model](../../docs/learn/advanced/10-ocap.md) ...
+... [object-capabilities model](../../learn/advanced/10-ocap.md) ...🏁 Script executed:
#!/bin/bash
# Verify the target file actually exists where the new link expects it.
fd --full-path docs/docs/docs/learn/advanced/10-ocap.md && echo "⚠️ duplicated docs path" || echo "✅ path does not exist"
fd --full-path docs/docs/learn/advanced/10-ocap.md && echo "✅ correct location exists" || echo "⚠️ file missing at expected location"Length of output: 264
Update the object-capabilities link to the correct relative path
The link currently points to ../../docs/learn/advanced/10-ocap.md, which resolves to docs/docs/docs/learn/... and doesn’t match the actual file location. The correct path from docs/docs/build/building-modules/00-intro.md is ../../learn/advanced/10-ocap.md.
- File:
docs/docs/build/building-modules/00-intro.md
Lines: 59–60
- ... [object-capabilities model](../../docs/learn/advanced/10-ocap.md) ...
+ ... [object-capabilities model](../../learn/advanced/10-ocap.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. Thoroughly test & benchmark the code to ensure it meets the requirements.
| * **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../docs/learn/advanced/10-ocap.md) of the Cosmos SDK. | |
| * **Capabilities**: Most modules need to read and/or write to the store(s) of other modules. However, in an open-source environment, it is possible for some modules to be malicious. That is why module developers need to carefully think not only about how their module interacts with other modules, but also about how to give access to the module's store(s). The Cosmos SDK takes a capabilities-oriented approach to inter-module security. This means that each store defined by a module is accessed by a `key`, which is held by the module's [`keeper`](./06-keeper.md). This `keeper` defines how to access the store(s) and under what conditions. Access to the module's store(s) is done by passing a reference to the module's `keeper`. | |
| * **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../learn/advanced/10-ocap.md) of the Cosmos SDK. | |
| * **Capabilities**: Most modules need to read and/or write to the store(s) of other modules. However, in an open-source environment, it is possible for some modules to be malicious. That is why module developers need to carefully think not only about how their module interacts with other modules, but also about how to give access to the module's store(s). The Cosmos SDK takes a capabilities-oriented approach to inter-module security. This means that each store defined by a module is accessed by a `key`, which is held by the module's [`keeper`](./06-keeper.md). This `keeper` defines how to access the store(s) and under what conditions. Access to the module's store(s) is done by passing a reference to the module's `keeper`. |
🧰 Tools
🪛 LanguageTool
[style] ~60-~60: Try using a synonym here to strengthen your writing.
Context: ...th other modules, but also about how to give access to the module's store(s). The Co...
(GIVE_PROVIDE)
🤖 Prompt for AI Agents
In docs/docs/build/building-modules/00-intro.md around lines 59 to 60, the
relative link to the object-capabilities model file is incorrect and resolves to
a wrong path. Update the link from ../../docs/learn/advanced/10-ocap.md to
../../learn/advanced/10-ocap.md to correctly point to the target file location.
|
@sashaodessa conflicts |
@aljo242 updated |
Summary
Fixed multiple broken links throughout the Cosmos SDK documentation to improve user experience and maintain documentation integrity.
Files Modified
docs/docs/learn/advanced/02-context.mddocs/docs/build/building-modules/06-keeper.mddocs/docs/build/building-modules/00-intro.mddocs/architecture/adr-063-core-module-api.mddocs/docs/user/run-node/02-interact-node.mddocs/docs/learn/advanced/08-events.mdSummary by CodeRabbit