mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-23 02:27:40 +08: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>
118 lines
3.7 KiB
TOML
118 lines
3.7 KiB
TOML
[package]
|
|
authors = ["Quentin de Quelen <quentin@dequelen.me>", "Clément Renault <clement@meilisearch.com>"]
|
|
description = "Meilisearch HTTP server"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
name = "meilisearch-http"
|
|
version = "0.29.1"
|
|
|
|
[[bin]]
|
|
name = "meilisearch"
|
|
path = "src/main.rs"
|
|
|
|
[build-dependencies]
|
|
anyhow = { version = "1.0.65", optional = true }
|
|
cargo_toml = { version = "0.12.4", optional = true }
|
|
hex = { version = "0.4.3", optional = true }
|
|
reqwest = { version = "0.11.12", features = ["blocking", "rustls-tls"], default-features = false, optional = true }
|
|
sha-1 = { version = "0.10.0", optional = true }
|
|
static-files = { version = "0.2.3", optional = true }
|
|
tempfile = { version = "3.3.0", optional = true }
|
|
vergen = { version = "7.4.2", default-features = false, features = ["git"] }
|
|
zip = { version = "0.6.2", optional = true }
|
|
|
|
[dependencies]
|
|
actix-cors = "0.6.3"
|
|
actix-web = { version = "4.2.1", default-features = false, features = ["macros", "compress-brotli", "compress-gzip", "cookies", "rustls"] }
|
|
actix-http = "3.2.2"
|
|
actix-web-static-files = { git = "https://github.com/kilork/actix-web-static-files.git", rev = "2d3b6160", optional = true }
|
|
anyhow = { version = "1.0.65", features = ["backtrace"] }
|
|
async-stream = "0.3.3"
|
|
async-trait = "0.1.57"
|
|
bstr = "1.0.1"
|
|
byte-unit = { version = "4.0.14", default-features = false, features = ["std", "serde"] }
|
|
bytes = "1.2.1"
|
|
clap = { version = "4.0.9", features = ["derive", "env"] }
|
|
crossbeam-channel = "0.5.6"
|
|
either = "1.8.0"
|
|
env_logger = "0.9.1"
|
|
flate2 = "1.0.24"
|
|
fst = "0.4.7"
|
|
futures = "0.3.24"
|
|
futures-util = "0.3.24"
|
|
http = "0.2.8"
|
|
indexmap = { version = "1.9.1", features = ["serde-1"] }
|
|
itertools = "0.10.5"
|
|
jsonwebtoken = "8.1.1"
|
|
log = "0.4.17"
|
|
meilisearch-auth = { path = "../meilisearch-auth" }
|
|
meilisearch-types = { path = "../meilisearch-types" }
|
|
meilisearch-lib = { path = "../meilisearch-lib", default-features = false }
|
|
mimalloc = { version = "0.1.29", default-features = false }
|
|
mime = "0.3.16"
|
|
num_cpus = "1.13.1"
|
|
obkv = "0.2.0"
|
|
once_cell = "1.15.0"
|
|
parking_lot = "0.12.1"
|
|
pin-project-lite = "0.2.9"
|
|
platform-dirs = "0.3.0"
|
|
rand = "0.8.5"
|
|
rayon = "1.5.3"
|
|
regex = "1.6.0"
|
|
reqwest = { version = "0.11.12", features = ["rustls-tls", "json"], default-features = false }
|
|
rustls = "0.20.6"
|
|
rustls-pemfile = "1.0.1"
|
|
segment = { version = "0.2.1", optional = true }
|
|
serde = { version = "1.0.145", features = ["derive"] }
|
|
serde-cs = "0.2.4"
|
|
serde_json = { version = "1.0.85", features = ["preserve_order"] }
|
|
sha2 = "0.10.6"
|
|
siphasher = "0.3.10"
|
|
slice-group-by = "0.3.0"
|
|
static-files = { version = "0.2.3", optional = true }
|
|
sysinfo = "0.26.4"
|
|
tar = "0.4.38"
|
|
tempfile = "3.3.0"
|
|
thiserror = "1.0.37"
|
|
time = { version = "0.3.15", features = ["serde-well-known", "formatting", "parsing", "macros"] }
|
|
tokio = { version = "1.21.2", features = ["full"] }
|
|
tokio-stream = "0.1.10"
|
|
toml = "0.5.9"
|
|
uuid = { version = "1.1.2", features = ["serde", "v4"] }
|
|
walkdir = "2.3.2"
|
|
prometheus = { version = "0.13.2", features = ["process"], optional = true }
|
|
lazy_static = "1.4.0"
|
|
|
|
[dev-dependencies]
|
|
actix-rt = "2.7.0"
|
|
assert-json-diff = "2.0.2"
|
|
brotli = "3.3.4"
|
|
manifest-dir-macros = "0.1.16"
|
|
maplit = "1.0.2"
|
|
urlencoding = "2.1.2"
|
|
yaup = "0.2.1"
|
|
|
|
[features]
|
|
default = ["analytics", "meilisearch-lib/default", "mini-dashboard"]
|
|
metrics = ["prometheus"]
|
|
analytics = ["segment"]
|
|
mini-dashboard = [
|
|
"actix-web-static-files",
|
|
"static-files",
|
|
"anyhow",
|
|
"cargo_toml",
|
|
"hex",
|
|
"reqwest",
|
|
"sha-1",
|
|
"tempfile",
|
|
"zip",
|
|
]
|
|
chinese = ["meilisearch-lib/chinese"]
|
|
hebrew = ["meilisearch-lib/hebrew"]
|
|
japanese = ["meilisearch-lib/japanese"]
|
|
thai = ["meilisearch-lib/thai"]
|
|
|
|
[package.metadata.mini-dashboard]
|
|
assets-url = "https://github.com/meilisearch/mini-dashboard/releases/download/v0.2.2/build.zip"
|
|
sha1 = "c69feffc6b590e38a46981a85c47f48905d4082a"
|