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

feat: parse home flag earlier #20771

Merged
merged 14 commits into from
Jun 25, 2024
Merged

feat: parse home flag earlier #20771

merged 14 commits into from
Jun 25, 2024

Conversation

julienrbrt
Copy link
Member

@julienrbrt julienrbrt commented Jun 25, 2024

Description

Closes: #20769

  • Add home directory helper in client/v2
  • Delete hack api that were adding
  • Update usage

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, you can find examples of the prefixes below:
  • 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.

Please see Pull Request Reviewer section in the contributing guide for more information on how to review a pull request.

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

  • New Features

    • Introduced GetNodeHomeDirectory helper function for determining the home directory based on various inputs.
    • Improved clarity of environment variables by renaming GAIA_HOME to NODE_HOME and GAIA_NODE to NODE_NODE.
  • Bug Fixes

    • Updated the rm commands in initialization scripts to include the -v flag for verbose output.
  • Refactor

    • Integrated functionality from ReadDefaultValuesFromDefaultClientConfig into CreateClientConfig.
    • Modified flag and home path handling within several commands and configuration files.
  • Chores

    • Enhanced upgrade flow to create the upgrade directory only when necessary.
    • Added viper as a direct dependency for configuration handling.

Copy link
Contributor

coderabbitai bot commented Jun 25, 2024

Warning

Rate limit exceeded

@julienrbrt has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 28 minutes and 26 seconds before requesting another review.

How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Commits

Files that changed from the base of the PR and between 040b46c and e8d3ca1.

Walkthrough

The updates primarily involve restructuring and optimizing how configuration parameters are handled within the cosmos-sdk. Key improvements include removing the ReadDefaultValuesFromDefaultClientConfig function and integrating its functionality into CreateClientConfig, adding a new GetNodeHomeDirectory helper, updating environment variable naming conventions, enhancing verbosity in scripts, and refining dependency injection and path handling. These changes aim to streamline configuration management and improve clarity and consistency throughout the SDK.

Changes

Files/Directories Change Summary
CHANGELOG.md Summarizes the removal of ReadDefaultValuesFromDefaultClientConfig and the introduction of GetNodeHomeDirectory in version v0.50.6.
client/config/config.go Removed ReadDefaultValuesFromDefaultClientConfig and integrated its functionality into CreateClientConfig.
client/v2/CHANGELOG.md, client/v2/helpers/home.go Added GetNodeHomeDirectory helper for determining the node's home directory.
docs/learn/advanced/07-cli.md Updated environment variable naming conventions from GAIA_HOME to NODE_HOME and GAIA_NODE to NODE_NODE.
scripts/init-simapp.sh, scripts/simapp-v2-init.sh Added -v flag to the rm command for verbose output.
server/v2/cometbft/flags/flags.go Removed FlagHome, FlagKeyringDir, and FlagUseLedger; modified FlagChainID, FlagNode, and FlagGRPC.
simapp/... (multiple files) Refactored dependency injection, updated DefaultNodeHome initialization, and modified path setups. Removed os and flags imports, changed function signatures and usages related to config reading and client setup.
x/upgrade/... (multiple files) Introduced viper for configuration handling, modified file path handling, and improved upgrade directory creation logic.

Sequence Diagram(s)

Not applicable due to the nature of the changes.

Assessment Against Linked Issues

Objective Addressed Explanation
Parse --home flag earlier (#20769)

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.
    • @coderabbitai help me debug CodeRabbit configuration file.

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 an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @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.

@github-actions github-actions bot added the C:CLI label Jun 25, 2024
@julienrbrt julienrbrt marked this pull request as ready for review June 25, 2024 11:18
@julienrbrt julienrbrt requested a review from a team as a code owner June 25, 2024 11:18
@julienrbrt julienrbrt marked this pull request as draft June 25, 2024 11:19

This comment has been minimized.

@julienrbrt julienrbrt marked this pull request as ready for review June 25, 2024 11:33
@julienrbrt julienrbrt added the backport/v0.50.x PR scheduled for inclusion in the v0.50's next stable release label Jun 25, 2024
@julienrbrt
Copy link
Member Author

We can partially backport this (without api breaks)

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.

tACK

@tac0turtle
Copy link
Member

do we need to backport this?

@julienrbrt
Copy link
Member Author

do we need to backport this?

not the sdk changes but the rest (in client/v2 and simapp) it would be nice

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: 12

Outside diff range and nitpick comments (3)
client/config/config.go (3)

Line range hint 14-14: Ensure consistent import grouping.

The import statements should be grouped according to best practices: standard library, third-party packages, and then internal packages. Consider reordering them for better readability and maintainability.

import (
	"crypto/tls"
	"fmt"
	"os"
	"path/filepath"

	"google.golang.org/grpc"
	"google.golang.org/grpc/credentials"
	"google.golang.org/grpc/credentials/insecure"

	"github.com/cosmos/cosmos-sdk/client"
	"github.com/cosmos/cosmos-sdk/client/flags"
)

Line range hint 14-14: Deprecated function should be removed or flagged appropriately.

The function ReadFromClientConfig is marked as deprecated. If it is no longer used within the project, consider removing it to clean up the codebase. If it is still in use, ensure that there is a plan for migration to the recommended alternative.


Line range hint 14-14: Potential security risk with file handling.

The function CreateClientConfig writes to a file within the application's directory. Ensure that proper permissions are set and consider validating or sanitizing the input paths to avoid security vulnerabilities related to path traversal or file inclusion.

Review details

Configuration used: .coderabbit.yml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between aceeaf4 and 040b46c.

Files selected for processing (21)
  • CHANGELOG.md (1 hunks)
  • client/config/config.go (1 hunks)
  • client/v2/CHANGELOG.md (1 hunks)
  • client/v2/helpers/home.go (1 hunks)
  • docs/learn/advanced/07-cli.md (2 hunks)
  • scripts/init-simapp.sh (1 hunks)
  • scripts/simapp-v2-init.sh (1 hunks)
  • server/v2/cometbft/flags/flags.go (1 hunks)
  • simapp/CHANGELOG.md (1 hunks)
  • simapp/app.go (3 hunks)
  • simapp/app_di.go (2 hunks)
  • simapp/simd/cmd/commands.go (4 hunks)
  • simapp/simd/cmd/root.go (2 hunks)
  • simapp/simd/cmd/root_di.go (3 hunks)
  • simapp/v2/app_di.go (6 hunks)
  • simapp/v2/simdv2/cmd/commands.go (3 hunks)
  • simapp/v2/simdv2/cmd/root_di.go (1 hunks)
  • x/upgrade/CHANGELOG.md (1 hunks)
  • x/upgrade/depinject.go (3 hunks)
  • x/upgrade/go.mod (2 hunks)
  • x/upgrade/keeper/keeper.go (4 hunks)
Files skipped from review due to trivial changes (4)
  • client/v2/helpers/home.go
  • simapp/simd/cmd/commands.go
  • simapp/v2/simdv2/cmd/commands.go
  • x/upgrade/go.mod
Additional context used
Path-based instructions (15)
server/v2/cometbft/flags/flags.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

simapp/CHANGELOG.md (1)

Pattern **/*.md: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"

x/upgrade/depinject.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

simapp/v2/simdv2/cmd/root_di.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

client/v2/CHANGELOG.md (1)

Pattern **/*.md: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"

simapp/simd/cmd/root_di.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

x/upgrade/CHANGELOG.md (1)

Pattern **/*.md: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"

simapp/simd/cmd/root.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

client/config/config.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

simapp/v2/app_di.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

simapp/app_di.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

x/upgrade/keeper/keeper.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

docs/learn/advanced/07-cli.md (1)

Pattern **/*.md: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"

simapp/app.go (1)

Pattern **/*.go: Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations.

CHANGELOG.md (1)

Pattern **/*.md: "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"

Shellcheck
scripts/init-simapp.sh

[warning] 7-7: Quote this to prevent word splitting. (SC2046)

scripts/simapp-v2-init.sh

[warning] 16-16: Quote this to prevent word splitting. (SC2046)

LanguageTool
client/v2/CHANGELOG.md

[uncategorized] ~49-~49: A comma may be missing after the conjunctive/linking adverb ‘Instead’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...autocli.AppOptionsandflag.Builder`. Instead client/v2 uses the address codecs prese...

x/upgrade/CHANGELOG.md

[uncategorized] ~68-~68: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... is extracted to have a separate go.mod file which allows it be a standalone module....


[grammar] ~68-~68: The preposition ‘to’ may be missing (allow someone to do something). (ALLOW_TO_DO)
Context: ... a separate go.mod file which allows it be a standalone module. ### Improvements ...

docs/learn/advanced/07-cli.md

[style] ~17-~17: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ... to interact with the simapp CLI simd in order to send some tokens: ```bash simd tx bank...


[uncategorized] ~25-~25: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...and: * The root command for the entire application simd. * The subcommand tx, which co...


[uncategorized] ~40-~40: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...tion - stores can only persist []bytes so the developer must define a serializati...


[style] ~60-~60: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ...ob/v0.50.0-alpha.0/client/keys/add.go). For more details about usage of `--keyring-...


[style] ~66-~66: Consider removing “of” to be more concise (ALL_OF_THE)
Context: ...be run before every execution, and adds all of the necessary subcommands. ```go reference...


[uncategorized] ~73-~73: A comma may be missing after the conjunctive/linking adverb ‘Additionally’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...s from the modules to the root command. Additionally it adds all manually defined modules co...


[uncategorized] ~90-~90: Did you mean: “By default,”? (BY_DEFAULT_COMMA)
Context: ...mapp/simd/cmd/root_v2.go#L164-L180 ``` By default the app uses CometBFT app config templa...


[style] ~115-~115: This phrase is redundant (‘I’ stands for ‘interface’). Use simply “CLI”. (ACRONYM_TAUTOLOGY)
Context: ... the creation of transactions using the CLI interface, a function txCommand is generally ad...


[style] ~123-~123: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...saction requires some sort of signature in order to be valid, the signing command is necess...


[style] ~140-~140: This phrase is redundant (‘I’ stands for ‘interface’). Use simply “CLI”. (ACRONYM_TAUTOLOGY)
Context: ...nable the creation of queries using the CLI interface, a function queryCommand is generally...


[uncategorized] ~169-~169: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...d to commands; some toggle an option off but others are empty values that the user n...


[uncategorized] ~171-~171: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...ain()` function. Adding this flag makes sense as the chain ID should not be changing ...


[typographical] ~175-~175: After the expression ‘for example’ a comma is usually used. (COMMA_FOR_EXAMPLE)
Context: .... - must be substituted with _. For example flag --node for application with base...


[uncategorized] ~175-~175: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case. (AMOUNTOF_TO_NUMBEROF)
Context: ... to GAIA_NODE. It allows reducing the amount of flags typed for routine operations. ...


[typographical] ~175-~175: After the expression ‘for example’ a comma is usually used. (COMMA_FOR_EXAMPLE)
Context: ...flags typed for routine operations. For example instead of: ```shell gaia --home=./ --...


[uncategorized] ~206-~206: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...er.Context` viper literal. This is vital so the application can get access to not o...

Markdownlint
client/v2/CHANGELOG.md

65-65: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation

x/upgrade/CHANGELOG.md

44-44: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


82-82: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines

docs/learn/advanced/07-cli.md

216-216: Column: 2 (MD010, no-hard-tabs)
Hard tabs


222-222: Column: 2 (MD010, no-hard-tabs)
Hard tabs

CHANGELOG.md

72-72: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


73-73: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


77-77: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


78-78: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


79-79: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


80-80: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


85-85: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


130-130: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


131-131: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


132-132: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


136-136: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


139-139: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


140-140: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


141-141: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


148-148: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


158-158: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


160-160: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


163-163: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


182-182: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


183-183: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


185-185: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


186-186: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


239-239: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


240-240: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


241-241: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


405-405: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


408-408: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


430-430: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


431-431: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


444-444: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


476-476: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


477-477: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


478-478: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


479-479: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


481-481: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


482-482: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


483-483: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


484-484: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


498-498: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


500-500: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


502-502: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


504-504: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


507-507: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


508-508: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


509-509: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


517-517: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


518-518: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


520-520: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


521-521: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


523-523: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


524-524: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


525-525: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


527-527: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


528-528: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


536-536: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


547-547: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


548-548: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


549-549: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


555-555: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


556-556: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


557-557: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


563-563: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


579-579: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


580-580: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


581-581: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


582-582: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


583-583: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


584-584: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


589-589: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


590-590: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


591-591: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


592-592: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


599-599: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


600-600: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


601-601: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


635-635: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


636-636: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


637-637: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


638-638: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


643-643: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


644-644: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


792-792: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


935-935: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


956-956: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


959-959: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1041-1041: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1042-1042: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1043-1043: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1044-1044: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1045-1045: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1046-1046: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1143-1143: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1229-1229: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1275-1275: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1281-1281: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1282-1282: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1283-1283: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1284-1284: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1285-1285: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1286-1286: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1386-1386: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1511-1511: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1512-1512: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1513-1513: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1514-1514: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1515-1515: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1516-1516: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1517-1517: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1518-1518: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1521-1521: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1522-1522: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1523-1523: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1524-1524: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1525-1525: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1526-1526: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


1775-1775: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1776-1776: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1777-1777: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1778-1778: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1779-1779: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1780-1780: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


1890-1890: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2227-2227: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2228-2228: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2229-2229: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2232-2232: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2233-2233: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2234-2234: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2256-2256: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2257-2257: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2258-2258: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2259-2259: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2260-2260: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2268-2268: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2269-2269: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2270-2270: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2271-2271: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2272-2272: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2274-2274: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2275-2275: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2276-2276: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2603-2603: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2604-2604: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2605-2605: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2606-2606: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2607-2607: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2609-2609: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2611-2611: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2612-2612: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2613-2613: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2614-2614: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2615-2615: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2616-2616: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2618-2618: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2619-2619: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2620-2620: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2623-2623: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2624-2624: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2625-2625: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2626-2626: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2627-2627: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2630-2630: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2633-2633: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2636-2636: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2637-2637: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2640-2640: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2647-2647: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2648-2648: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2649-2649: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2650-2650: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2651-2651: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2653-2653: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2654-2654: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2655-2655: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2656-2656: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2657-2657: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2658-2658: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2659-2659: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2660-2660: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2661-2661: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2664-2664: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2665-2665: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2666-2666: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2667-2667: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2668-2668: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2669-2669: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2676-2676: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2677-2677: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2678-2678: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2679-2679: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2686-2686: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2688-2688: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2690-2690: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2691-2691: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2692-2692: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2693-2693: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2694-2694: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2695-2695: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2696-2696: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2697-2697: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2698-2698: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2699-2699: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2700-2700: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2701-2701: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2702-2702: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2703-2703: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2704-2704: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2705-2705: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2706-2706: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2707-2707: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2708-2708: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2709-2709: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2710-2710: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2711-2711: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2712-2712: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2713-2713: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2714-2714: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2715-2715: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2716-2716: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2718-2718: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2719-2719: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2721-2721: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2722-2722: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2723-2723: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2724-2724: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2725-2725: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2726-2726: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2727-2727: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2730-2730: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2731-2731: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2733-2733: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2734-2734: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2737-2737: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2738-2738: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2739-2739: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2740-2740: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2741-2741: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2742-2742: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2743-2743: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2744-2744: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2746-2746: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2747-2747: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2748-2748: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2754-2754: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2757-2757: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2763-2763: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2771-2771: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2772-2772: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2773-2773: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2774-2774: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2782-2782: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2789-2789: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2790-2790: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2797-2797: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2799-2799: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2803-2803: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2804-2804: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2806-2806: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2814-2814: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2816-2816: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2817-2817: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2823-2823: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2831-2831: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2832-2832: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2833-2833: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2834-2834: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2835-2835: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2836-2836: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2837-2837: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2838-2838: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2839-2839: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2840-2840: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2841-2841: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2842-2842: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2843-2843: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2844-2844: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2846-2846: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2847-2847: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2849-2849: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2850-2850: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2851-2851: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2852-2852: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2853-2853: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2854-2854: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2855-2855: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2856-2856: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2857-2857: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2858-2858: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2860-2860: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2861-2861: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2864-2864: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2865-2865: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2866-2866: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2867-2867: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2868-2868: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2869-2869: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2870-2870: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2871-2871: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2872-2872: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2873-2873: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2874-2874: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2875-2875: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2876-2876: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2877-2877: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2878-2878: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2879-2879: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2884-2884: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2885-2885: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2886-2886: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2887-2887: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2888-2888: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2889-2889: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2891-2891: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2893-2893: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2907-2907: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2908-2908: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2909-2909: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2914-2914: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2915-2915: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2916-2916: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2920-2920: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2921-2921: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2922-2922: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2923-2923: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2924-2924: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2925-2925: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2928-2928: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2929-2929: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2930-2930: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2931-2931: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2932-2932: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2933-2933: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2934-2934: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2935-2935: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2936-2936: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2938-2938: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2940-2940: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2942-2942: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2947-2947: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2948-2948: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2949-2949: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2950-2950: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2951-2951: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2952-2952: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2953-2953: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2954-2954: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2955-2955: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2956-2956: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2957-2957: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2958-2958: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2959-2959: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2960-2960: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2961-2961: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2962-2962: Expected: 4; Actual: 8 (MD007, ul-indent)
Unordered list indentation


2963-2963: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2964-2964: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2965-2965: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2966-2966: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


2967-2967: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation


192-192: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


236-236: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces


1145-1145: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1935-1935: null (MD024, no-duplicate-heading)
Multiple headings with the same content


1693-1693: null (MD034, no-bare-urls)
Bare URL used


1723-1723: null (MD034, no-bare-urls)
Bare URL used


2670-2670: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2758-2758: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2760-2760: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2765-2765: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2767-2767: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2777-2777: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2779-2779: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2784-2784: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2792-2792: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2809-2809: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2811-2811: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2819-2819: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2825-2825: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2895-2895: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2898-2898: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2901-2901: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2903-2903: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


2943-2943: null (MD037, no-space-in-emphasis)
Spaces inside emphasis markers


1064-1064: null (MD038, no-space-in-code)
Spaces inside code span elements


2711-2711: null (MD038, no-space-in-code)
Spaces inside code span elements


2711-2711: null (MD038, no-space-in-code)
Spaces inside code span elements

Additional comments not posted (12)
server/v2/cometbft/flags/flags.go (1)

Line range hint 1-54: Flag management appears correctly implemented.

The flag declarations and the AddQueryFlagsToCmd function follow the conventions of the Cobra library and are consistent with good practices in Go for command-line applications.

simapp/CHANGELOG.md (1)

38-38: Ensure consistency in changelog updates.

The changelog entry correctly references the PR and provides a brief description of the change. It's good practice to ensure that all significant changes are documented in this manner to maintain historical context for changes.
[APROVED]

x/upgrade/depinject.go (2)

5-5: Refactor to use dependency injection effectively.

The introduction of viper and the optional AppOptions in the ModuleInputs struct are good examples of using dependency injection to handle configuration dynamically. This change should make the module more flexible and easier to configure in different environments.

Also applies to: 45-46


62-68: Use configuration precedence effectively.

The logic to prioritize viper configuration over AppOptions if available is a robust design choice. It allows for more flexibility in configuration management, ensuring that the most specific settings are used.

client/v2/CHANGELOG.md (3)

45-45: Add a more descriptive entry for the new helper function.

While the changelog correctly notes the addition of the GetNodeHomeDirectory helper, it could benefit from a brief description of its purpose or impact, enhancing clarity for users or developers reading the changelogs.


Line range hint 49-49: Add a comma for clarity in the API breaking changes entry.

A comma after "Instead" would improve the readability of the sentence.

- Instead client/v2 uses the address codecs present in the context...
+ Instead, client/v2 uses the address codecs present in the context...

Line range hint 65-65: Correct the indentation for unordered list items.

The Markdown list indentation does not follow the expected two-space convention, which could lead to rendering issues in some Markdown parsers.

- * [#19646](https://github.com/cosmos/cosmos-sdk/pull/19646) Use keyring from command context.
- * (deps) [#19810](https://github.com/cosmos/cosmos-sdk/pull/19810) Upgrade SDK version due to prometheus breaking change.
x/upgrade/CHANGELOG.md (1)

31-31: Clarify the conditions under which the upgrade directory is created.

The entry could be more descriptive by specifying under what conditions the upgrade directory is necessary, which would help users understand the change better.

client/config/config.go (1)

Line range hint 14-14: Validate custom template and config logic.

The function CreateClientConfig contains logic to validate customClientTemplate and customConfig. Ensure that this validation is robust and covers all edge cases to prevent runtime errors.

Verification successful

Validation of CreateClientConfig Function

The CreateClientConfig function includes robust validation checks:

  • Ensures both customClientTemplate and customConfig are either both nil or both not nil.
  • Handles directory and file creation errors.
  • Validates custom template parsing and writing.

Additionally, the function is used across multiple files with proper handling of its return values, ensuring that any errors are caught and managed.

  • Files and Lines:
    • simapp/simd/cmd/root.go: Lines around 20-30 and 50-60.
    • simapp/simd/cmd/root_di.go: Lines around 20-30 and 50-60.
    • simapp/v2/simdv2/cmd/root_di.go: Lines around 20-30 and 50-60.
    • client/config/config_test.go: Around line 10.

Conclusion: The validation logic in CreateClientConfig is robust and covers various edge cases, preventing potential runtime errors.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Search for usage of CreateClientConfig to ensure proper handling of custom templates and configs.

# Test: Search for the function usage. Expect: Proper validation checks before usage.
rg --type go $'CreateClientConfig'

Length of output: 1517



Script:

#!/bin/bash
# Extract the definition of CreateClientConfig function from client/config/config.go
ast-grep --lang go --pattern 'func CreateClientConfig($_, $_, $_) ($_ $_) {
  $$$
}' --json

Length of output: 96



Script:

#!/bin/bash
# Search for the definition of CreateClientConfig function in client/config/config.go
rg 'func CreateClientConfig' client/config/config.go

Length of output: 179



Script:

#!/bin/bash
# Extract the full implementation of CreateClientConfig function from client/config/config.go
sed -n '/func CreateClientConfig(ctx client.Context, customClientTemplate string, customConfig interface{}) (client.Context, error) {/,/^}/p' client/config/config.go

Length of output: 2970



Script:

#!/bin/bash
# Extract relevant lines around the usage of CreateClientConfig in the identified files
files=("simapp/simd/cmd/root.go" "simapp/simd/cmd/root_di.go" "simapp/v2/simdv2/cmd/root_di.go" "client/config/config_test.go")
for file in "${files[@]}"; do
  echo "File: $file"
  rg -A 5 -B 5 'CreateClientConfig' "$file"
done

Length of output: 3612

x/upgrade/keeper/keeper.go (1)

67-68: Logging level for empty homePath might be too high.

The warning level for an empty homePath might be too severe since it defaults to the current directory. Consider if this should be an informational log instead, depending on how critical the path setting is for your application.

docs/learn/advanced/07-cli.md (1)

175-175: Update environment variable naming convention for clarity.

The change from GAIA_HOME to NODE_HOME and GAIA_NODE to NODE_NODE improves clarity and consistency, aligning with the new naming conventions. However, ensure that all references to these variables across documentation and scripts are updated to avoid confusion.

Tools
LanguageTool

[typographical] ~175-~175: After the expression ‘for example’ a comma is usually used. (COMMA_FOR_EXAMPLE)
Context: .... - must be substituted with _. For example flag --node for application with base...


[uncategorized] ~175-~175: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case. (AMOUNTOF_TO_NUMBEROF)
Context: ... to GAIA_NODE. It allows reducing the amount of flags typed for routine operations. ...


[typographical] ~175-~175: After the expression ‘for example’ a comma is usually used. (COMMA_FOR_EXAMPLE)
Context: ...flags typed for routine operations. For example instead of: ```shell gaia --home=./ --...

simapp/app.go (1)

21-21: Approved import addition for client helpers.

The addition of clienthelpers "cosmossdk.io/client/v2/helpers" is aligned with the PR's objective to handle the --home flag more effectively by utilizing helper functions from this package.

@@ -102,6 +102,7 @@ Every module contains its own CHANGELOG.md. Please refer to the module you are i
* (proto) [#20098](https://github.com/cosmos/cosmos-sdk/pull/20098) Use cosmos_proto added_in annotation instead of // Since comments.
* (baseapp) [#20208](https://github.com/cosmos/cosmos-sdk/pull/20208) Skip running validateBasic for rechecking txs.
* (baseapp) [#20380](https://github.com/cosmos/cosmos-sdk/pull/20380) Enhanced OfferSnapshot documentation.
* (client) [#20771](https://github.com/cosmos/cosmos-sdk/pull/20771) Remove `ReadDefaultValuesFromDefaultClientConfig` from `client` package. (It was introduced in `v0.50.6` as a quick fix).
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 changelog entry for clarity and accuracy.

The entry mentions the removal of ReadDefaultValuesFromDefaultClientConfig from the client package. Ensure that the entry clearly states that this removal is part of the broader changes for parsing the --home flag earlier, which is the main focus of the PR.

- * (client) [#20771](https://github.com/cosmos/cosmos-sdk/pull/20771) Remove `ReadDefaultValuesFromDefaultClientConfig` from `client` package. (It was introduced in `v0.50.6` as a quick fix).
+ * (client) [#20771](https://github.com/cosmos/cosmos-sdk/pull/20771) Removed `ReadDefaultValuesFromDefaultClientConfig` from the `client` package as part of enhancements to parse the `--home` flag earlier. Introduced in `v0.50.6` as a temporary measure.
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.

Suggested change
* (client) [#20771](https://github.com/cosmos/cosmos-sdk/pull/20771) Remove `ReadDefaultValuesFromDefaultClientConfig` from `client` package. (It was introduced in `v0.50.6` as a quick fix).
* (client) [#20771](https://github.com/cosmos/cosmos-sdk/pull/20771) Removed `ReadDefaultValuesFromDefaultClientConfig` from the `client` package as part of enhancements to parse the `--home` flag earlier. Introduced in `v0.50.6` as a temporary measure.

Comment on lines +187 to +188
var err error
DefaultNodeHome, err = clienthelpers.GetNodeHomeDirectory(".simapp")
Copy link
Contributor

Choose a reason for hiding this comment

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

Review the initialization of DefaultNodeHome.

The modification to initialize DefaultNodeHome using clienthelpers.GetNodeHomeDirectory(".simapp") is a critical part of the PR's goal to parse the --home flag earlier. This ensures that the application's default home directory is set early in the process, which is essential for handling custom node locations correctly.

However, the use of panic(err) for error handling is a bit aggressive. Consider using a more graceful error handling strategy that could allow for recovery or at least a cleaner shutdown process.

- panic(err)
+ log.Fatalf("Failed to set DefaultNodeHome: %v", err)

Committable suggestion was skipped due to low confidence.

@@ -4,7 +4,7 @@ SIMD_BIN=${SIMD_BIN:=$(which simd 2>/dev/null)}

if [ -z "$SIMD_BIN" ]; then echo "SIMD_BIN is not set. Make sure to run make install before"; exit 1; fi
echo "using $SIMD_BIN"
if [ -d "$($SIMD_BIN config home)" ]; then rm -r $($SIMD_BIN config home); fi
if [ -d "$($SIMD_BIN config home)" ]; then rm -rv $($SIMD_BIN config home); fi
Copy link
Contributor

Choose a reason for hiding this comment

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

Quote the command substitution to prevent word splitting.

The script uses command substitution without quoting, which can lead to word splitting and unexpected behavior, especially when directory names contain spaces.

- if [ -d "$($SIMD_BIN config home)" ]; then rm -rv $($SIMD_BIN config home); fi
+ if [ -d "$("$SIMD_BIN" config home)" ]; then rm -rv "$("$SIMD_BIN" config home)"; fi
Tools
Shellcheck

[warning] 7-7: Quote this to prevent word splitting. (SC2046)

@@ -13,7 +13,7 @@ CONFIG="${CONFIG:-$HOME/.simappv2/config}"
cd "$SIMAPP_DIR"
go build -o "$ROOT/build/simdv2" simdv2/main.go

if [ -d "$($SIMD config home)" ]; then rm -r $($SIMD config home); fi
if [ -d "$($SIMD config home)" ]; then rm -rv $($SIMD config home); fi
Copy link
Contributor

Choose a reason for hiding this comment

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

Quote the command substitution to prevent word splitting.

As with the previous script, this line suffers from the same issue where command substitution could lead to word splitting. It's a good practice to quote these to ensure the command behaves as expected.

- if [ -d "$($SIMD config home)" ]; then rm -rv $($SIMD config home); fi
+ if [ -d "$("$SIMD" config home)" ]; then rm -rv "$("$SIMD" config home)"; fi
Tools
Shellcheck

[warning] 16-16: Quote this to prevent word splitting. (SC2046)

@@ -121,7 +121,7 @@ func ProvideClientContext(

// Read the config to overwrite the default values with the values from the config file
customClientTemplate, customClientConfig := initClientConfig()
clientCtx, err = config.ReadDefaultValuesFromDefaultClientConfig(clientCtx, customClientTemplate, customClientConfig)
clientCtx, err = config.CreateClientConfig(clientCtx, customClientTemplate, customClientConfig)
Copy link
Contributor

Choose a reason for hiding this comment

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

Refactor error handling in ProvideClientContext function.

The use of panic for error handling in a configuration setup function could be improved. Consider returning the error to the caller instead, allowing for more graceful error handling and testing.

- panic(err)
+ return client.Context{}, err

Committable suggestion was skipped due to low confidence.

@@ -114,7 +114,7 @@ func NewRootCmd() *cobra.Command {
// autocli opts
customClientTemplate, customClientConfig := initClientConfig()
var err error
initClientCtx, err = config.ReadDefaultValuesFromDefaultClientConfig(initClientCtx, customClientTemplate, customClientConfig)
initClientCtx, err = config.CreateClientConfig(initClientCtx, customClientTemplate, customClientConfig)
Copy link
Contributor

Choose a reason for hiding this comment

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

Refactor error handling in configuration setup.

Consistent with previous files, consider returning errors instead of using panic in the CreateClientConfig function call.

- panic(err)
+ return nil, err

Committable suggestion was skipped due to low confidence.

Comment on lines +78 to +79
var err error
DefaultNodeHome, err = clienthelpers.GetNodeHomeDirectory(".simappv2")
Copy link
Contributor

Choose a reason for hiding this comment

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

Proper error handling in initialization.

The init function sets the DefaultNodeHome using clienthelpers.GetNodeHomeDirectory. It panics if there's an error. Consider handling this error more gracefully to avoid crashing the application.

func init() {
	var err error
	DefaultNodeHome, err = clienthelpers.GetNodeHomeDirectory(".simappv2")
-	if err != nil {
-		panic(err)
+	if err != nil {
+		log.Fatalf("Failed to get node home directory: %v", err)
	}
}
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.

Suggested change
var err error
DefaultNodeHome, err = clienthelpers.GetNodeHomeDirectory(".simappv2")
func init() {
var err error
DefaultNodeHome, err = clienthelpers.GetNodeHomeDirectory(".simappv2")
if err != nil {
log.Fatalf("Failed to get node home directory: %v", err)
}
}

Comment on lines +103 to +104
var err error
DefaultNodeHome, err = clienthelpers.GetNodeHomeDirectory(".simapp")
Copy link
Contributor

Choose a reason for hiding this comment

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

Use consistent error handling across initializers.

Similar to the previous file, this init function uses panic for error handling. Recommend using a more consistent and graceful error handling approach.

func init() {
	var err error
	DefaultNodeHome, err = clienthelpers.GetNodeHomeDirectory(".simapp")
-	if err != nil {
-		panic(err)
+	if err != nil {
+		log.Fatalf("Failed to get node home directory: %v", err)
	}
}
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.

Suggested change
var err error
DefaultNodeHome, err = clienthelpers.GetNodeHomeDirectory(".simapp")
func init() {
var err error
DefaultNodeHome, err = clienthelpers.GetNodeHomeDirectory(".simapp")
if err != nil {
log.Fatalf("Failed to get node home directory: %v", err)
}
}

x/upgrade/keeper/keeper.go Show resolved Hide resolved
x/upgrade/keeper/keeper.go Show resolved Hide resolved
Copy link
Contributor

@hieuvubk hieuvubk left a comment

Choose a reason for hiding this comment

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

tACK with simd v1 & v2

@@ -57,7 +59,13 @@ func ProvideModule(in ModuleInputs) ModuleOutputs {
skipUpgradeHeights = make(map[int64]bool)
)

if in.AppOpts != nil {
if in.Viper != nil { // viper takes precedence over app options
for _, h := range in.Viper.GetIntSlice(server.FlagUnsafeSkipUpgrades) {
Copy link
Contributor

Choose a reason for hiding this comment

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

should we make the flags in x/group so don't need to care about v1 or v2 dep in the future?

Copy link
Member Author

Choose a reason for hiding this comment

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

(Assuming you meant x/upgrade), What do you mean?

@julienrbrt julienrbrt added this pull request to the merge queue Jun 25, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Jun 25, 2024
@julienrbrt julienrbrt added this pull request to the merge queue Jun 25, 2024
Merged via the queue into main with commit 5aaff21 Jun 25, 2024
70 of 71 checks passed
@julienrbrt julienrbrt deleted the julien/homeflag branch June 25, 2024 18:58
mergify bot pushed a commit that referenced this pull request Jun 25, 2024
(cherry picked from commit 5aaff21)

# Conflicts:
#	CHANGELOG.md
#	client/config/config.go
#	client/v2/CHANGELOG.md
#	scripts/simapp-v2-init.sh
#	server/v2/cometbft/flags/flags.go
#	server/v2/commands.go
#	simapp/CHANGELOG.md
#	simapp/app.go
#	simapp/app_v2.go
#	simapp/simd/cmd/root.go
#	simapp/simd/cmd/root_v2.go
#	simapp/v2/app_di.go
#	simapp/v2/simdv2/cmd/commands.go
#	simapp/v2/simdv2/cmd/root_di.go
#	x/upgrade/CHANGELOG.md
#	x/upgrade/depinject.go
#	x/upgrade/go.mod
julienrbrt added a commit that referenced this pull request Jun 25, 2024
Co-authored-by: Julien Robert <julien@rbrt.fr>
Reecepbcups pushed a commit to rollchains/cosmos-sdk that referenced this pull request Jul 19, 2024
* build(deps): Bump github.com/cosmos/gogoproto from 1.4.12 to 1.5.0 (cosmos#20567)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* refactor(x/authz,x/feegrant): provide updated keeper in depinject (cosmos#20590)

* docs: Update high level overview and introduction (backport cosmos#20535) (cosmos#20627)

Co-authored-by: samricotta <37125168+samricotta@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>

* fix: Properly parse json in the wait-tx command. (backport cosmos#20631) (cosmos#20660)

Co-authored-by: Daniel Wedul <github@wedul.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>

* docs: remove Ineffective code block (backport cosmos#20703) (cosmos#20711)

* feat(client): Add flag & reading mnemonic from file (backport cosmos#20690) (cosmos#20712)

Co-authored-by: Hieu Vu <72878483+hieuvubk@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>

* fix: nested multisig signatures using CLI (backport cosmos#20438) (cosmos#20692)

Co-authored-by: Facundo Medica <14063057+facundomedica@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>
Co-authored-by: Facundo <facundomedica@gmail.com>

* feat(client/v2): get keyring from context (backport cosmos#19646) (cosmos#20727)

Co-authored-by: Julien Robert <julien@rbrt.fr>

* docs(x/group): orm codespace comment (backport cosmos#20749) (cosmos#20751)

* feat: parse home flag earlier (backport cosmos#20771) (cosmos#20777)

Co-authored-by: Julien Robert <julien@rbrt.fr>

* build(deps): Bump github.com/cometbft/cometbft from 0.38.7 to 0.38.8 (cosmos#20805)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* build(deps): Bump github.com/cometbft/cometbft from 0.38.8 to 0.38.9 (cosmos#20836)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* fix(simulation): fix the problem of `validator set is empty after InitGenesis` in simulation test (backport cosmos#18196) (cosmos#20897)

Co-authored-by: Chenqun Lu <luchenqun@qq.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>

* fix(simulation): Fix all problems `make test-sim-custom-genesis-fast` for simulation test. (backport cosmos#17911) (cosmos#20909)

Co-authored-by: Chenqun Lu <luchenqun@qq.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>

* chore: prepare v0.50.8 (cosmos#20910)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: samricotta <37125168+samricotta@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>
Co-authored-by: Daniel Wedul <github@wedul.com>
Co-authored-by: Hieu Vu <72878483+hieuvubk@users.noreply.github.com>
Co-authored-by: Facundo Medica <14063057+facundomedica@users.noreply.github.com>
Co-authored-by: Facundo <facundomedica@gmail.com>
Co-authored-by: Chenqun Lu <luchenqun@qq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/v0.50.x PR scheduled for inclusion in the v0.50's next stable release C:CLI C:x/upgrade Type: Build
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Parse --home flag earlier
4 participants