mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-12-24 13:40:31 +01:00
5d895dd7da
2851: Upgrade clap to 4.0 r=loiclec a=choznerol # Pull Request ## Related issue Fixes #2846 This PR is draft based on #2847 to avoid conflict. I will rebase and mark as 'Ready for review' after #2847 is merged. ## What does this PR do? 1. Upgrade clap to the latest version or 4.0 (4.0.9 as of today) by following the [migrating instruction](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md#migrating) from [4.0 changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md#migrating) 2. Fix an `ArgGroup` typo that can only be caught after upgrading to 4.0 in 20a715e29ed17c5a76229c98fb31504ada873597 ## Notable changes ### The `--help` message The format, ordering and indentation of `--help` message was changed in 4.0. I recorded the output of `cargo run -- --help` before and after upgrade to 4.0 for reference. <details> <summary>diff</summary> Output of `diff --ignore-all-space --text --unified --new-file help-message-before.txt help-message-after.txt`: ```diff --- help-message-before.txt 2022-10-14 16:45:36.000000000 +0800 +++ help-message-after.txt 2022-10-14 16:36:53.000000000 +0800 `@@` -1,12 +1,8 `@@` -meilisearch-http 0.29.1 +Usage: meilisearch [OPTIONS] -USAGE: - meilisearch [OPTIONS] - -OPTIONS: +Options: --config-file-path <CONFIG_FILE_PATH> - Set the path to a configuration file that should be used to setup the engine. Format - must be TOML + Set the path to a configuration file that should be used to setup the engine. Format must be TOML --db-path <DB_PATH> Designates the location where database files will be created and retrieved `@@` -26,15 +22,14 `@@` [default: dumps/] --env <ENV> - Configures the instance's environment. Value must be either `production` or - `development` + Configures the instance's environment. Value must be either `production` or `development` [env: MEILI_ENV=] [default: development] [possible values: development, production] -h, --help - Print help information + Print help information (use `-h` for a summary) --http-addr <HTTP_ADDR> Sets the HTTP address and port Meilisearch will use `@@` -43,63 +38,53 `@@` [default: 127.0.0.1:7700] --http-payload-size-limit <HTTP_PAYLOAD_SIZE_LIMIT> - Sets the maximum size of accepted payloads. Value must be given in bytes or explicitly - stating a base unit (for instance: 107374182400, '107.7Gb', or '107374 Mb') + Sets the maximum size of accepted payloads. Value must be given in bytes or explicitly stating a base unit (for instance: 107374182400, '107.7Gb', or '107374 Mb') [env: MEILI_HTTP_PAYLOAD_SIZE_LIMIT=] [default: 100000000] --ignore-dump-if-db-exists - Prevents a Meilisearch instance with an existing database from throwing an error when - using `--import-dump`. Instead, the dump will be ignored and Meilisearch will launch - using the existing database. + Prevents a Meilisearch instance with an existing database from throwing an error when using `--import-dump`. Instead, the dump will be ignored and Meilisearch will launch using the existing database. This option will trigger an error if `--import-dump` is not defined. [env: MEILI_IGNORE_DUMP_IF_DB_EXISTS=] --ignore-missing-dump - Prevents Meilisearch from throwing an error when `--import-dump` does not point to a - valid dump file. Instead, Meilisearch will start normally without importing any dump. + Prevents Meilisearch from throwing an error when `--import-dump` does not point to a valid dump file. Instead, Meilisearch will start normally without importing any dump. This option will trigger an error if `--import-dump` is not defined. [env: MEILI_IGNORE_MISSING_DUMP=] --ignore-missing-snapshot - Prevents a Meilisearch instance from throwing an error when `--import-snapshot` does not - point to a valid snapshot file. + Prevents a Meilisearch instance from throwing an error when `--import-snapshot` does not point to a valid snapshot file. This command will throw an error if `--import-snapshot` is not defined. [env: MEILI_IGNORE_MISSING_SNAPSHOT=] --ignore-snapshot-if-db-exists - Prevents a Meilisearch instance with an existing database from throwing an error when - using `--import-snapshot`. Instead, the snapshot will be ignored and Meilisearch will - launch using the existing database. + Prevents a Meilisearch instance with an existing database from throwing an error when using `--import-snapshot`. Instead, the snapshot will be ignored and Meilisearch will launch using the existing database. This command will throw an error if `--import-snapshot` is not defined. [env: MEILI_IGNORE_SNAPSHOT_IF_DB_EXISTS=] --import-dump <IMPORT_DUMP> - Imports the dump file located at the specified path. Path must point to a `.dump` file. - If a database already exists, Meilisearch will throw an error and abort launch + Imports the dump file located at the specified path. Path must point to a `.dump` file. If a database already exists, Meilisearch will throw an error and abort launch [env: MEILI_IMPORT_DUMP=] --import-snapshot <IMPORT_SNAPSHOT> - Launches Meilisearch after importing a previously-generated snapshot at the given - filepath + Launches Meilisearch after importing a previously-generated snapshot at the given filepath [env: MEILI_IMPORT_SNAPSHOT=] --log-level <LOG_LEVEL> Defines how much detail should be present in Meilisearch's logs. - Meilisearch currently supports five log levels, listed in order of increasing verbosity: - ERROR, WARN, INFO, DEBUG, TRACE. + Meilisearch currently supports five log levels, listed in order of increasing verbosity: ERROR, WARN, INFO, DEBUG, TRACE. [env: MEILI_LOG_LEVEL=] [default: INFO] `@@` -110,31 +95,25 `@@` [env: MEILI_MASTER_KEY=] --max-index-size <MAX_INDEX_SIZE> - Sets the maximum size of the index. Value must be given in bytes or explicitly stating a - base unit (for instance: 107374182400, '107.7Gb', or '107374 Mb') + Sets the maximum size of the index. Value must be given in bytes or explicitly stating a base unit (for instance: 107374182400, '107.7Gb', or '107374 Mb') [env: MEILI_MAX_INDEX_SIZE=] [default: 107374182400] --max-indexing-memory <MAX_INDEXING_MEMORY> - Sets the maximum amount of RAM Meilisearch can use when indexing. By default, - Meilisearch uses no more than two thirds of available memory + Sets the maximum amount of RAM Meilisearch can use when indexing. By default, Meilisearch uses no more than two thirds of available memory [env: MEILI_MAX_INDEXING_MEMORY=] [default: "21.33 TiB"] --max-indexing-threads <MAX_INDEXING_THREADS> - Sets the maximum number of threads Meilisearch can use during indexation. By default, - the indexer avoids using more than half of a machine's total processing units. This - ensures Meilisearch is always ready to perform searches, even while you are updating an - index + Sets the maximum number of threads Meilisearch can use during indexation. By default, the indexer avoids using more than half of a machine's total processing units. This ensures Meilisearch is always ready to perform searches, even while you are updating an index [env: MEILI_MAX_INDEXING_THREADS=] [default: 5] --max-task-db-size <MAX_TASK_DB_SIZE> - Sets the maximum size of the task database. Value must be given in bytes or explicitly - stating a base unit (for instance: 107374182400, '107.7Gb', or '107374 Mb') + Sets the maximum size of the task database. Value must be given in bytes or explicitly stating a base unit (for instance: 107374182400, '107.7Gb', or '107374 Mb') [env: MEILI_MAX_TASK_DB_SIZE=] [default: 107374182400] ``` - ~[help-message-before.txt](https://github.com/meilisearch/meilisearch/files/9715683/help-message-before.txt)~ [help-message-before.txt](https://github.com/meilisearch/meilisearch/files/9784156/help-message-before-2.txt) - ~[help-message-after.txt](https://github.com/meilisearch/meilisearch/files/9715682/help-message-after.txt)~ [help-message-after.txt](https://github.com/meilisearch/meilisearch/files/9784091/help-message-after.txt) </details> ## PR checklist Please check if your PR fulfills the following requirements: - [x] Does this PR fix an existing issue, or have you listed the changes applied in the PR description (and why they are needed)? - [x] Have you read the contributing guidelines? - [x] Have you made sure that the title is accurate and descriptive of the changes? Thank you so much for contributing to Meilisearch! Co-authored-by: Lawrence Chou <choznerol@protonmail.com>