diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dccf93c3ab..b8aa22f179 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,6 +119,32 @@ jobs: - name: Test cargo vendor run: cargo vendor --locked + check-cli-docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: prefix-dev/setup-pixi@v0.8.3 + + - uses: Swatinem/rust-cache@v2 + with: + workspaces: ". -> target/pixi" + key: ${{ hashFiles('pixi.lock') }} + save-if: ${{ github.ref == 'refs/heads/main' }} + + - name: Verify CLI documentation + run: | + # Remove the generated CLI documentation to make sure we don't accidentally leave removed documentation + find docs/reference/cli -type f -name '*.md' -exec grep -q '' {} \; -print0 | xargs -0 rm + + # Regenerate CLI documentation + pixi run generate-cli-docs + + # Check if there are any changes + if ! git diff --quiet; then + echo "Error: Generated CLI documentation differs from committed version" + git diff + exit 1 + fi # # Run tests on important platforms. # diff --git a/crates/pixi_config/src/lib.rs b/crates/pixi_config/src/lib.rs index b8176e8aa2..aca2be9a36 100644 --- a/crates/pixi_config/src/lib.rs +++ b/crates/pixi_config/src/lib.rs @@ -102,7 +102,7 @@ pub struct ConfigCli { #[arg(long)] auth_file: Option, - /// Specifies if we want to use uv keyring provider + /// Specifies whether to use the keyring to look up credentials for PyPI. #[arg(long)] pypi_keyring_provider: Option, @@ -110,7 +110,7 @@ pub struct ConfigCli { #[arg(long)] pub concurrent_solves: Option, - /// Max concurrent network requests, default is 50 + /// Max concurrent network requests, default is `50` #[arg(long)] pub concurrent_downloads: Option, } diff --git a/docs/advanced/shebang.md b/docs/advanced/shebang.md index b028a445cd..d7549dc0e5 100644 --- a/docs/advanced/shebang.md +++ b/docs/advanced/shebang.md @@ -4,7 +4,7 @@ !!!warning "Only on Unix-like systems" The following approach only works on Unix-like systems (i.e. Linux and macOS) since Windows does not support shebang lines. -For simple scripts, you can use [`pixi exec`](../reference/cli.md#exec) to run them directly without needing to take care of installing dependencies or setting up a virtual environment. +For simple scripts, you can use [`pixi exec`](../reference/cli/pixi/exec.md) to run them directly without needing to take care of installing dependencies or setting up a virtual environment. This can be done by adding a [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix)) at the top of the script, which tells the system how to execute the script. Usually, a shebang line starts with `#!/usr/bin/env` followed by the name of the interpreter to use. diff --git a/docs/integration/ci/github_actions.md b/docs/integration/ci/github_actions.md index c839eef9b7..7d5cf3d70a 100644 --- a/docs/integration/ci/github_actions.md +++ b/docs/integration/ci/github_actions.md @@ -270,7 +270,7 @@ With `pixi exec`, you can also run a one-off command inside a temporary pixi env 1. everything here will be run inside of the temporary pixi environment -See [here](../../reference/cli.md#exec) for more information about `pixi exec`. +See [here](../../reference/cli/pixi/exec.md) for more information about `pixi exec`. ### Environment activation diff --git a/docs/integration/third_party/pixi_diff.md b/docs/integration/third_party/pixi_diff.md index 139dc41a8c..14c44eb34d 100644 --- a/docs/integration/third_party/pixi_diff.md +++ b/docs/integration/third_party/pixi_diff.md @@ -15,7 +15,7 @@ With [henriklovhaug/md-tui](https://github.com/henriklovhaug/md-tui), you can ev pixi global install pixi-diff pixi-diff-to-markdown md-tui ``` -`pixi-diff --before pixi.lock.old --after pixi.lock.new` will output a JSON object that contains the differences between the two lockfiles similar to [`pixi update --json`](../../reference/cli.md#update). +`pixi-diff --before pixi.lock.old --after pixi.lock.new` will output a JSON object that contains the differences between the two lockfiles similar to [`pixi update --json`](../../reference/cli/pixi/update.md). ```bash $ pixi-diff --before pixi.lock.old --after pixi.lock.new diff --git a/docs/reference/cli.md b/docs/reference/cli.md deleted file mode 100644 index 9a1049ea33..0000000000 --- a/docs/reference/cli.md +++ /dev/null @@ -1,1619 +0,0 @@ - -## Global options - -- `--verbose (-v|vv|vvv)` Increase the verbosity of the output messages, the -v|vv|vvv increases the level of verbosity respectively. -- `--help (-h)` Shows help information, use `-h` to get the short version of the help. -- `--version (-V)`: shows the version of pixi that is used. -- `--quiet (-q)`: Decreases the amount of output. -- `--color `: Whether the log needs to be colored [env: `PIXI_COLOR=`] [default: `auto`] [possible values: `always`, `never`, `auto`]. - Pixi also honors the `FORCE_COLOR` and `NO_COLOR` environment variables. - They both take precedence over `--color` and `PIXI_COLOR`. -- `--no-progress`: Disables the progress bar.[env: `PIXI_NO_PROGRESS`] [default: `false`] - -## `init` - -This command is used to create a new project. -It initializes a `pixi.toml` file and also prepares a `.gitignore` to prevent the environment from being added to `git`. - -It also supports the [`pyproject.toml`](../python/pyproject_toml.md) file, if you have a `pyproject.toml` file in the directory where you run `pixi init`, it appends the pixi data to the `pyproject.toml` instead of a new `pixi.toml` file. - -##### Arguments - -1. `[PATH]`: Where to place the project (defaults to current path) [default: `.`] - -##### Options - -- `--channel (-c)`: Specify a channel that the project uses. Defaults to `conda-forge`. (Allowed to be used more than once) -- `--platform (-p)`: Specify a platform that the project supports. (Allowed to be used more than once) -- `--import (-i)`: Import an existing conda environment file, e.g. `environment.yml`. -- `--format `: Specify the format of the project file, either `pyproject` or `pixi`. [default: `pixi`] -- `--scm `: Specify the SCM used to manage the project with. Possible values: github, gitlab, codeberg. [default: `github`] - -!!! info "Importing an environment.yml" - When importing an environment, the `pixi.toml` will be created with the dependencies from the environment file. - The `pixi.lock` will be created when you install the environment. - We don't support `git+` urls as dependencies for pip packages and for the `defaults` channel we use `main`, `r` and `msys2` as the default channels. - -```shell -pixi init myproject -pixi init ~/myproject -pixi init # Initializes directly in the current directory. -pixi init --channel conda-forge --channel bioconda myproject -pixi init --platform osx-64 --platform linux-64 myproject -pixi init --import environment.yml -pixi init --format pyproject -pixi init --format pixi --scm gitlab -``` - -## `add` - -Adds dependencies to the [manifest file](pixi_manifest.md). -It will only add dependencies compatible with the rest of the dependencies in the project. -[More info](../environments/multi_platform_configuration.md) on multi-platform configuration. - -If the project manifest is a `pyproject.toml`, by default, adding a pypi dependency will add it to the native `project.dependencies` array, or to the native `dependency-groups` table if a feature is specified: - -- `pixi add --pypi boto3` would add `boto3` to the `project.dependencies` array -- `pixi add --pypi boto3 --feature aws` would add `boto3` to the `dependency-groups.aws` array - -Note that if `--platform` or `--editable` are specified, the pypi dependency -will be added to the `tool.pixi.pypi-dependencies` table instead as native -arrays have no support for platform-specific or editable dependencies. - -These dependencies will be read by pixi as if they had been added to the pixi `pypi-dependencies` tables of the default or a named feature. - -##### Arguments - -1. `[SPECS]`: The package(s) to add, space separated. The version constraint is optional. - -##### Options - -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--host`: Specifies a host dependency, important for building a package. -- `--build`: Specifies a build dependency, important for building a package. -- `--pypi`: Specifies a PyPI dependency, not a conda package. - Parses dependencies as [PEP508](https://peps.python.org/pep-0508/) requirements, supporting extras and versions. - See [configuration](pixi_manifest.md) for details. -- `--git`: Specifies a git dependency, the package will be installed from the git repository. - The `--git` flag can be used with the following options: - - `--branch `: The branch to use when installing the package. - - `--tag `: The tag to use when installing the package. - - `--rev `: The revision to use when installing the package. - - `--subdir `: The subdirectory to use when installing the package. -- `--no-install`: Don't install the package to the environment, only add the package to the lock-file. -- `--no-lockfile-update`: Don't update the lock-file, implies the `--no-install` flag. -- `--platform (-p)`: The platform for which the dependency should be added. (Allowed to be used more than once) -- `--feature (-f)`: The feature for which the dependency should be added. -- `--editable`: Specifies an editable dependency; only used in combination with `--pypi`. -- `--concurrent-downloads`: The number of concurrent downloads to use when installing packages. Defaults to 50. -- `--concurrent-solves`: The number of concurrent solves to use when installing packages. Defaults to the number of cpu threads. - -```shell -pixi add numpy # (1)! -pixi add numpy pandas "pytorch>=1.8" # (2)! -pixi add "numpy>=1.22,<1.24" # (3)! -pixi add --manifest-path ~/myproject/pixi.toml numpy # (4)! -pixi add --host "python>=3.9.0" # (5)! -pixi add --build cmake # (6)! -pixi add --platform osx-64 clang # (7)! -pixi add --no-install numpy # (8)! -pixi add --no-lockfile-update numpy # (9)! -pixi add --feature featurex numpy # (10)! -pixi add --git https://github.com/wolfv/pixi-build-examples boost-check # (11)! -pixi add --git https://github.com/wolfv/pixi-build-examples --branch main --subdir boost-check boost-check # (12)! -pixi add --git https://github.com/wolfv/pixi-build-examples --tag v0.1.0 boost-check # (13)! -pixi add --git https://github.com/wolfv/pixi-build-examples --rev e50d4a1 boost-check # (14)! - -# Add a pypi dependency -pixi add --pypi requests[security] # (15)! -pixi add --pypi Django==5.1rc1 # (16)! -pixi add --pypi "boltons>=24.0.0" --feature lint # (17)! -pixi add --pypi "boltons @ https://files.pythonhosted.org/packages/46/35/e50d4a115f93e2a3fbf52438435bb2efcf14c11d4fcd6bdcd77a6fc399c9/boltons-24.0.0-py3-none-any.whl" # (18)! -pixi add --pypi "exchangelib @ git+https://github.com/ecederstrand/exchangelib" # (19)! -pixi add --pypi "project @ file:///absolute/path/to/project" # (20)! -pixi add --pypi "project@file:///absolute/path/to/project" --editable # (21)! -pixi add --git https://github.com/mahmoud/boltons.git boltons --pypi # (22)! -pixi add --git https://github.com/mahmoud/boltons.git boltons --branch main --pypi # (23)! -pixi add --git https://github.com/mahmoud/boltons.git boltons --rev e50d4a1 --pypi # (24)! -pixi add --git https://github.com/mahmoud/boltons.git boltons --tag v0.1.0 --pypi # (25)! -pixi add --git https://github.com/mahmoud/boltons.git boltons --tag v0.1.0 --pypi --subdir boltons # (26)! -``` - -1. This will add the `numpy` package to the project with the latest available for the solved environment. -2. This will add multiple packages to the project solving them all together. -3. This will add the `numpy` package with the version constraint. -4. This will add the `numpy` package to the project of the manifest file at the given path. -5. This will add the `python` package as a host dependency. There is currently no different behavior for host dependencies. -6. This will add the `cmake` package as a build dependency. There is currently no different behavior for build dependencies. -7. This will add the `clang` package only for the `osx-64` platform. -8. This will add the `numpy` package to the manifest and lockfile, without installing it in an environment. -9. This will add the `numpy` package to the manifest without updating the lockfile or installing it in the environment. -10. This will add the `numpy` package in the feature `featurex`. -11. This will add the `boost-check` source package to the dependencies from the git repository. -12. This will add the `boost-check` source package to the dependencies from the git repository using `main` branch and the `boost-check` folder in the repository. -13. This will add the `boost-check` source package to the dependencies from the git repository using `v0.1.0` tag. -14. This will add the `boost-check` source package to the dependencies from the git repository using `e50d4a1` revision. -15. This will add the `requests` package as `pypi` dependency with the `security` extra. -16. This will add the `pre-release` version of `Django` to the project as a `pypi` dependency. -17. This will add the `boltons` package in the feature `lint` as `pypi` dependency. -18. This will add the `boltons` package with the given `url` as `pypi` dependency. -19. This will add the `exchangelib` package with the given `git` url as `pypi` dependency. -20. This will add the `project` package with the given `file` url as `pypi` dependency. -21. This will add the `project` package with the given `file` url as an `editable` package as `pypi` dependency. -22. This will add the `boltons` package with the given `git` url as `pypi` dependency. -23. This will add the `boltons` package with the given `git` url and `main` branch as `pypi` dependency. -24. This will add the `boltons` package with the given `git` url and `e50d4a1` revision as `pypi` dependency. -25. This will add the `boltons` package with the given `git` url and `v0.1.0` tag as `pypi` dependency. -26. This will add the `boltons` package with the given `git` url, `v0.1.0` tag and the `boltons` folder in the repository as `pypi` dependency. - -!!! tip - If you want to use a non default pinning strategy, you can set it using [pixi's configuration](./pixi_configuration.md#pinning-strategy). - ``` - pixi config set pinning-strategy no-pin --global - ``` - The default is `semver` which will pin the dependencies to the latest major version or minor for `v0` versions. - !!! note - There is an exception to this rule when you add a package we defined as non `semver`, then we'll use the `minor` strategy. - These are the packages we defined as non `semver`: - Python, Rust, Julia, GCC, GXX, GFortran, NodeJS, Deno, R, R-Base, Perl - - -## `install` - -Installs an environment based on the [manifest file](pixi_manifest.md). -If there is no `pixi.lock` file or it is not up-to-date with the [manifest file](pixi_manifest.md), it will (re-)generate the lock file. - -`pixi install` only installs one environment at a time, if you have multiple environments you can select the right one with the `--environment` flag. -If you don't provide an environment, the `default` environment will be installed. - -Running `pixi install` is not required before running other commands. -As all commands interacting with the environment will first run the `install` command if the environment is not ready, to make sure you always run in a correct state. -E.g. `pixi run`, `pixi shell`, `pixi shell-hook`, `pixi add`, `pixi remove` to name a few. - -##### Options -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--frozen`: install the environment as defined in the lock file, doesn't update `pixi.lock` if it isn't up-to-date with [manifest file](pixi_manifest.md). It can also be controlled by the `PIXI_FROZEN` environment variable (example: `PIXI_FROZEN=true`). -- `--locked`: only install if the `pixi.lock` is up-to-date with the [manifest file](pixi_manifest.md)[^1]. It can also be controlled by the `PIXI_LOCKED` environment variable (example: `PIXI_LOCKED=true`). Conflicts with `--frozen`. -- `--environment (-e)`: The environment to install, if none are provided the default environment will be used. -- `--concurrent-downloads`: The number of concurrent downloads to use when installing packages. Defaults to 50. -- `--concurrent-solves`: The number of concurrent solves to use when installing packages. Defaults to the number of cpu threads. - -```shell -pixi install -pixi install --manifest-path ~/myproject/pixi.toml -pixi install --frozen -pixi install --locked -pixi install --environment lint -pixi install -e lint -``` - -## `update` - -The `update` command checks if there are newer versions of the dependencies and updates the `pixi.lock` file and environments accordingly. -It will only update the lock file if the dependencies in the [manifest file](pixi_manifest.md) are still compatible with the new versions. - -##### Arguments - -1. `[PACKAGES]...` The packages to update, space separated. If no packages are provided, all packages will be updated. - -##### Options -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--environment (-e)`: The environment to install, if none are provided all the environments are updated. -- `--platform (-p)`: The platform for which the dependencies should be updated. -- `--dry-run (-n)`: Only show the changes that would be made, without actually updating the lock file or environment. -- `--no-install`: Don't install the (solve) environment needed for solving pypi-dependencies. -- `--json`: Output the changes in json format. -- `--concurrent-downloads`: The number of concurrent downloads to use when installing packages. Defaults to 50. -- `--concurrent-solves`: The number of concurrent solves to use when installing packages. Defaults to the number of cpu threads. - -```shell -pixi update numpy -pixi update numpy pandas -pixi update --manifest-path ~/myproject/pixi.toml numpy -pixi update --environment lint python -pixi update -e lint -e schema -e docs pre-commit -pixi update --platform osx-arm64 mlx -pixi update -p linux-64 -p osx-64 numpy -pixi update --dry-run -pixi update --no-install boto3 -``` - -## `upgrade` - -The `upgrade` command checks if there are newer versions of the dependencies and upgrades them in the [manifest file](pixi_manifest.md). -`update` updates dependencies in the lock file while still fulfilling the version requirements set in the manifest. -`upgrade` loosens the requirements for the given packages, updates the lock file and the adapts the manifest accordingly. - -##### Arguments - -1. `[PACKAGES]...` The packages to upgrade, space separated. If no packages are provided, all packages will be upgraded. - -##### Options -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--feature (-e)`: The feature to upgrade, if none are provided the default feature will be used. -- `--no-install`: Don't install the (solve) environment needed for solving pypi-dependencies. -- `--json`: Output the changes in json format. -- `--dry-run (-n)`: Only show the changes that would be made, without actually updating the manifest, lock file, or environment. -- `--concurrent-downloads`: The number of concurrent downloads to use when installing packages. Defaults to 50. -- `--concurrent-solves`: The number of concurrent solves to use when installing packages. Defaults to the number of cpu threads. - -```shell -pixi upgrade -pixi upgrade numpy -pixi upgrade numpy pandas -pixi upgrade --manifest-path ~/myproject/pixi.toml numpy -pixi upgrade --feature lint python -pixi upgrade --json -pixi upgrade --dry-run -``` - -!!! note - The `pixi upgrade` command will only update `version`s, except when you specify the exact package name (`pixi upgrade numpy`). - - Then it will remove all fields, apart from: - - - `build` field containing a wildcard `*` - - `channel` - - `file_name` - - `url` - - `subdir`. - -## `lock` - -The `lock` command updates the `pixi.lock` file without modifying the environment. -It ensures the lockfile is accurate by performing minimal tasks, such as solving the environment only if the lockfile is outdated or installing the necessary dependencies to resolve the lockfile for PyPI dependencies. - -The output is similar to the `update` command, displaying the changes made to the lockfile. - -##### Options - -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--json` Output the changes in json format. - -```shell -pixi lock -pixi lock --manifest-path ~/myproject/pixi.toml -pixi lock --json -``` - -## `run` - -The `run` commands first checks if the environment is ready to use. -When you didn't run `pixi install` the run command will do that for you. -The custom tasks defined in the [manifest file](pixi_manifest.md) are also available through the run command. - -You cannot run `pixi run source setup.bash` as `source` is not available in the `deno_task_shell` commands and not an executable. - -##### Arguments - -1. `[TASK]...` The task you want to run in the projects environment, this can also be a normal command. And all arguments after the task will be passed to the task. - -##### Options - -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--frozen`: install the environment as defined in the lock file, doesn't update `pixi.lock` if it isn't up-to-date with [manifest file](pixi_manifest.md). It can also be controlled by the `PIXI_FROZEN` environment variable (example: `PIXI_FROZEN=true`). -- `--locked`: only install if the `pixi.lock` is up-to-date with the [manifest file](pixi_manifest.md)[^1]. It can also be controlled by the `PIXI_LOCKED` environment variable (example: `PIXI_LOCKED=true`). Conflicts with `--frozen`. -- `--environment (-e)`: The environment to run the task in, if none are provided the default environment will be used or a selector will be given to select the right environment. -- `--clean-env`: Run the task in a clean environment, this will remove all environment variables of the shell environment except for the ones pixi sets. THIS DOESN't WORK ON `Windows`. -- `--force-activate`: (default, except in _experimental_ mode) Force the activation of the environment, even if the environment is already activated. -- `--revalidate`: Revalidate the full environment, instead of checking the lock file hash. [more info](../environments/environment.md#environment-installation-metadata) -- `--concurrent-downloads`: The number of concurrent downloads to use when installing packages. Defaults to 50. -- `--concurrent-solves`: The number of concurrent solves to use when installing packages. Defaults to the number of cpu threads. -- `--skip-deps`: Skip the dependencies of the task, which where defined in the `depends-on` field of the task. -- `--dry-run (-n)`: Run the task in dry-run mode (only print the command that would run) - -```shell -pixi run python -pixi run cowpy "Hey pixi user" -pixi run --manifest-path ~/myproject/pixi.toml python -pixi run --frozen python -pixi run --locked python -# If you have specified a custom task in the pixi.toml you can run it with run as well -pixi run build -# Extra arguments will be passed to the tasks command. -pixi run task argument1 argument2 -# Skip dependencies of the task -pixi run --skip-deps task -# Run in dry-run mode to see the commands that would be run -pixi run --dry-run task - -# If you have multiple environments you can select the right one with the --environment flag. -pixi run --environment cuda python - -# THIS DOESN'T WORK ON WINDOWS -# If you want to run a command in a clean environment you can use the --clean-env flag. -# The PATH should only contain the pixi environment here. -pixi run --clean-env "echo \$PATH" - -``` - -!!! info - In `pixi` the [`deno_task_shell`](https://deno.land/manual@v1.35.0/tools/task_runner#task-runner) is the underlying runner of the run command. - Checkout their [documentation](https://deno.land/manual@v1.35.0/tools/task_runner#task-runner) for the syntax and available commands. - This is done so that the run commands can be run across all platforms. - -!!! tip "Cross environment tasks" - If you're using the `depends-on` feature of the `tasks`, the tasks will be run in the order you specified them. - The `depends-on` can be used cross environment, e.g. you have this `pixi.toml`: - ??? "pixi.toml" - ```toml - [tasks] - start = { cmd = "python start.py", depends-on = ["build"] } - - [feature.build.tasks] - build = "cargo build" - [feature.build.dependencies] - rust = ">=1.74" - - [environments] - build = ["build"] - ``` - - Then you're able to run the `build` from the `build` environment and `start` from the default environment. - By only calling: - ```shell - pixi run start - ``` - -## `exec` - -Runs a command in a temporary environment disconnected from any project. -This can be useful to quickly test out a certain package or version. - -Temporary environments are cached. If the same command is run again, the same environment will be reused. - -??? note "Cleaning temporary environments" - Currently, temporary environments can only be cleaned up manually. - Environments for `pixi exec` are stored under `cached-envs-v0/` in the cache directory. - Run `pixi info` to find the cache directory. - -##### Arguments - -1. ``: The command to run. - -#### Options: -- `--spec (-s)`: Matchspecs of packages to install. If this is not provided, the package is guessed from the command. -- `--channel (-c)`: The channel to install the packages from. If not specified the default channel is used. -- `--force-reinstall` If specified a new environment is always created even if one already exists. -- `--concurrent-downloads`: The number of concurrent downloads to use when installing packages. Defaults to 50. -- `--concurrent-solves`: The number of concurrent solves to use when installing packages. Defaults to the number of cpu threads. - -```shell -pixi exec python - -# Add a constraint to the python version -pixi exec -s python=3.9 python - -# Run ipython and include the py-rattler package in the environment -pixi exec -s ipython -s py-rattler ipython - -# Force reinstall to recreate the environment and get the latest package versions -pixi exec --force-reinstall -s ipython -s py-rattler ipython -``` - -## `remove` - -Removes dependencies from the [manifest file](pixi_manifest.md). - -If the project manifest is a `pyproject.toml`, removing a pypi dependency with the `--pypi` flag will remove it from either - -- the native pyproject `project.dependencies` array or the native `project.optional-dependencies` table (if a feature is specified) -- pixi `pypi-dependencies` tables of the default or a named feature (if a feature is specified) - -##### Arguments - -1. `...`: List of dependencies you wish to remove from the project. - -##### Options - -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--host`: Specifies a host dependency, important for building a package. -- `--build`: Specifies a build dependency, important for building a package. -- `--pypi`: Specifies a PyPI dependency, not a conda package. -- `--platform (-p)`: The platform from which the dependency should be removed. -- `--feature (-f)`: The feature from which the dependency should be removed. -- `--no-install`: Don't install the environment, only remove the package from the lock-file and manifest. -- `--no-lockfile-update`: Don't update the lock-file, implies the `--no-install` flag. - -```shell -pixi remove numpy -pixi remove numpy pandas pytorch -pixi remove --manifest-path ~/myproject/pixi.toml numpy -pixi remove --host python -pixi remove --build cmake -pixi remove --pypi requests -pixi remove --platform osx-64 --build clang -pixi remove --feature featurex clang -pixi remove --feature featurex --platform osx-64 clang -pixi remove --feature featurex --platform osx-64 --build clang -pixi remove --no-install numpy -``` - -## `task` - -If you want to make a shorthand for a specific command you can add a task for it. - -##### Options - -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. - -### `task add` - -Add a task to the [manifest file](pixi_manifest.md), use `--depends-on` to add tasks you want to run before this task, e.g. build before an execute task. - -##### Arguments - -1. ``: The name of the task. -2. ``: The command to run. This can be more than one word. -!!! info - If you are using `$` for env variables they will be resolved before adding them to the task. - If you want to use `$` in the task you need to escape it with a `\`, e.g. `echo \$HOME`. - -##### Options - -- `--platform (-p)`: the platform for which this task should be added. -- `--feature (-f)`: the feature for which the task is added, if non provided the default tasks will be added. -- `--depends-on `: the task it depends on to be run before the one your adding. -- `--cwd `: the working directory for the task relative to the root of the project. -- `--env `: the environment variables as `key=value` pairs for the task, can be used multiple times, e.g. `--env "VAR1=VALUE1" --env "VAR2=VALUE2"`. -- `--description `: a description of the task. - -```shell -pixi task add cow cowpy "Hello User" -pixi task add tls ls --cwd tests -pixi task add test cargo t --depends-on build -pixi task add build-osx "METAL=1 cargo build" --platform osx-64 -pixi task add train python train.py --feature cuda -pixi task add publish-pypi "hatch publish --yes --repo main" --feature build --env HATCH_CONFIG=config/hatch.toml --description "Publish the package to pypi" -``` - -This adds the following to the [manifest file](pixi_manifest.md): - -```toml -[tasks] -cow = "cowpy \"Hello User\"" -tls = { cmd = "ls", cwd = "tests" } -test = { cmd = "cargo t", depends-on = ["build"] } - -[target.osx-64.tasks] -build-osx = "METAL=1 cargo build" - -[feature.cuda.tasks] -train = "python train.py" - -[feature.build.tasks] -publish-pypi = { cmd = "hatch publish --yes --repo main", env = { HATCH_CONFIG = "config/hatch.toml" }, description = "Publish the package to pypi" } -``` - -Which you can then run with the `run` command: - -```shell -pixi run cow -# Extra arguments will be passed to the tasks command. -pixi run test --test test1 -``` - -### `task remove` - -Remove the task from the [manifest file](pixi_manifest.md) - -##### Arguments - -- ``: The names of the tasks, space separated. - -##### Options - -- `--platform (-p)`: the platform for which this task is removed. -- `--feature (-f)`: the feature for which the task is removed. - -```shell -pixi task remove cow -pixi task remove --platform linux-64 test -pixi task remove --feature cuda task -``` - -### `task alias` - -Create an alias for a task. - -##### Arguments - -1. ``: The alias name -2. ``: The names of the tasks you want to execute on this alias, order counts, first one runs first. - -##### Options - -- `--platform (-p)`: the platform for which this alias is created. - -```shell -pixi task alias test-all test-py test-cpp test-rust -pixi task alias --platform linux-64 test test-linux -pixi task alias moo cow -``` - -### `task list` - -List all tasks in the project. - -##### Options - -- `--environment`(`-e`): the environment's tasks list, if non is provided the default tasks will be listed. -- `--summary`(`-s`): list the tasks per environment. - -```shell -pixi task list -pixi task list --environment cuda -pixi task list --summary -``` - -## `list` - -List project's packages. Highlighted packages are explicit dependencies. - -##### Arguments - -1. `[REGEX]`: List only packages matching a regular expression (optional). - -##### Options - -- `--platform (-p)`: The platform to list packages for. Defaults to the current platform -- `--json`: Whether to output in json format. -- `--json-pretty`: Whether to output in pretty json format -- `--sort-by `: Sorting strategy [default: name] [possible values: size, name, type] -- `--explicit (-x)`: Only list the packages that are explicitly added to the [manifest file](pixi_manifest.md). -- `--manifest-path `: The path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--environment (-e)`: The environment's packages to list, if non is provided the default environment's packages will be listed. -- `--frozen`: install the environment as defined in the lock file, doesn't update `pixi.lock` if it isn't up-to-date with [manifest file](pixi_manifest.md). It can also be controlled by the `PIXI_FROZEN` environment variable (example: `PIXI_FROZEN=true`). -- `--locked`: Only install if the `pixi.lock` is up-to-date with the [manifest file](pixi_manifest.md)[^1]. It can also be controlled by the `PIXI_LOCKED` environment variable (example: `PIXI_LOCKED=true`). Conflicts with `--frozen`. -- `--no-install`: Don't install the environment for pypi solving, only update the lock-file if it can solve without installing. (Implied by `--frozen` and `--locked`) -- `--no-lockfile-update`: Don't update the lock-file, implies the `--no-install` flag. -- `--no-progress`: Hide all progress bars, always turned on if stderr is not a terminal [env: PIXI_NO_PROGRESS=] - -```shell -pixi list -pixi list py -pixi list --json-pretty -pixi list --explicit -pixi list --sort-by size -pixi list --platform win-64 -pixi list --environment cuda -pixi list --frozen -pixi list --locked -pixi list --no-install -``` - -Output will look like this, where `python` will be green as it is the package that was explicitly added to the [manifest file](pixi_manifest.md): - -```shell -➜ pixi list - Package Version Build Size Kind Source - _libgcc_mutex 0.1 conda_forge 2.5 KiB conda _libgcc_mutex-0.1-conda_forge.tar.bz2 - _openmp_mutex 4.5 2_gnu 23.1 KiB conda _openmp_mutex-4.5-2_gnu.tar.bz2 - bzip2 1.0.8 hd590300_5 248.3 KiB conda bzip2-1.0.8-hd590300_5.conda - ca-certificates 2023.11.17 hbcca054_0 150.5 KiB conda ca-certificates-2023.11.17-hbcca054_0.conda - ld_impl_linux-64 2.40 h41732ed_0 688.2 KiB conda ld_impl_linux-64-2.40-h41732ed_0.conda - libexpat 2.5.0 hcb278e6_1 76.2 KiB conda libexpat-2.5.0-hcb278e6_1.conda - libffi 3.4.2 h7f98852_5 56.9 KiB conda libffi-3.4.2-h7f98852_5.tar.bz2 - libgcc-ng 13.2.0 h807b86a_4 755.7 KiB conda libgcc-ng-13.2.0-h807b86a_4.conda - libgomp 13.2.0 h807b86a_4 412.2 KiB conda libgomp-13.2.0-h807b86a_4.conda - libnsl 2.0.1 hd590300_0 32.6 KiB conda libnsl-2.0.1-hd590300_0.conda - libsqlite 3.44.2 h2797004_0 826 KiB conda libsqlite-3.44.2-h2797004_0.conda - libuuid 2.38.1 h0b41bf4_0 32.8 KiB conda libuuid-2.38.1-h0b41bf4_0.conda - libxcrypt 4.4.36 hd590300_1 98 KiB conda libxcrypt-4.4.36-hd590300_1.conda - libzlib 1.2.13 hd590300_5 60.1 KiB conda libzlib-1.2.13-hd590300_5.conda - ncurses 6.4 h59595ed_2 863.7 KiB conda ncurses-6.4-h59595ed_2.conda - openssl 3.2.0 hd590300_1 2.7 MiB conda openssl-3.2.0-hd590300_1.conda - python 3.12.1 hab00c5b_1_cpython 30.8 MiB conda python-3.12.1-hab00c5b_1_cpython.conda - readline 8.2 h8228510_1 274.9 KiB conda readline-8.2-h8228510_1.conda - tk 8.6.13 noxft_h4845f30_101 3.2 MiB conda tk-8.6.13-noxft_h4845f30_101.conda - tzdata 2023d h0c530f3_0 116.8 KiB conda tzdata-2023d-h0c530f3_0.conda - xz 5.2.6 h166bdaf_0 408.6 KiB conda xz-5.2.6-h166bdaf_0.tar.bz2 -``` - -## `tree` - -Display the project's packages in a tree. Highlighted packages are those specified in the manifest. - -The package tree can also be inverted (`-i`), to see which packages require a specific dependencies. - -##### Arguments - -- `REGEX` optional regex of which dependencies to filter the tree to, or which dependencies to start with when inverting the tree. - -##### Options - -- `--invert (-i)`: Invert the dependency tree, that is given a `REGEX` pattern that matches some packages, show all the packages that depend on those. -- `--platform (-p)`: The platform to list packages for. Defaults to the current platform -- `--manifest-path `: The path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--environment (-e)`: The environment's packages to list, if non is provided the default environment's packages will be listed. -- `--frozen`: install the environment as defined in the lock file, doesn't update `pixi.lock` if it isn't up-to-date with [manifest file](pixi_manifest.md). It can also be controlled by the `PIXI_FROZEN` environment variable (example: `PIXI_FROZEN=true`). -- `--locked`: Only install if the `pixi.lock` is up-to-date with the [manifest file](pixi_manifest.md)[^1]. It can also be controlled by the `PIXI_LOCKED` environment variable (example: `PIXI_LOCKED=true`). Conflicts with `--frozen`. -- `--no-install`: Don't install the environment for pypi solving, only update the lock-file if it can solve without installing. (Implied by `--frozen` and `--locked`) -- `--no-lockfile-update`: Don't update the lock-file, implies the `--no-install` flag. -- `--no-progress`: Hide all progress bars, always turned on if stderr is not a terminal [env: PIXI_NO_PROGRESS=] - -```shell -pixi tree -pixi tree pre-commit -pixi tree -i yaml -pixi tree --environment docs -pixi tree --platform win-64 -``` - -!!! warning - Use `-v` to show which `pypi` packages are not yet parsed correctly. The `extras` and `markers` parsing is still under development. - -Output will look like this, where direct packages in the [manifest file](pixi_manifest.md) will be green. -Once a package has been displayed once, the tree won't continue to recurse through its dependencies (compare the first time `python` appears, vs the rest), and it will instead be marked with a star `(*)`. - -Version numbers are colored by the package type, yellow for Conda packages and blue for PyPI. - -```shell -➜ pixi tree -├── pre-commit v3.3.3 -│ ├── cfgv v3.3.1 -│ │ └── python v3.12.2 -│ │ ├── bzip2 v1.0.8 -│ │ ├── libexpat v2.6.2 -│ │ ├── libffi v3.4.2 -│ │ ├── libsqlite v3.45.2 -│ │ │ └── libzlib v1.2.13 -│ │ ├── libzlib v1.2.13 (*) -│ │ ├── ncurses v6.4.20240210 -│ │ ├── openssl v3.2.1 -│ │ ├── readline v8.2 -│ │ │ └── ncurses v6.4.20240210 (*) -│ │ ├── tk v8.6.13 -│ │ │ └── libzlib v1.2.13 (*) -│ │ └── xz v5.2.6 -│ ├── identify v2.5.35 -│ │ └── python v3.12.2 (*) -... -└── tbump v6.9.0 -... - └── tomlkit v0.12.4 - └── python v3.12.2 (*) -``` - -A regex pattern can be specified to filter the tree to just those that show a specific direct, or transitive dependency: - -```shell -➜ pixi tree pre-commit -└── pre-commit v3.3.3 - ├── virtualenv v20.25.1 - │ ├── filelock v3.13.1 - │ │ └── python v3.12.2 - │ │ ├── libexpat v2.6.2 - │ │ ├── readline v8.2 - │ │ │ └── ncurses v6.4.20240210 - │ │ ├── libsqlite v3.45.2 - │ │ │ └── libzlib v1.2.13 - │ │ ├── bzip2 v1.0.8 - │ │ ├── libzlib v1.2.13 (*) - │ │ ├── libffi v3.4.2 - │ │ ├── tk v8.6.13 - │ │ │ └── libzlib v1.2.13 (*) - │ │ ├── xz v5.2.6 - │ │ ├── ncurses v6.4.20240210 (*) - │ │ └── openssl v3.2.1 - │ ├── platformdirs v4.2.0 - │ │ └── python v3.12.2 (*) - │ ├── distlib v0.3.8 - │ │ └── python v3.12.2 (*) - │ └── python v3.12.2 (*) - ├── pyyaml v6.0.1 -... -``` - -Additionally, the tree can be inverted, and it can show which packages depend on a regex pattern. -The packages specified in the manifest will also be highlighted (in this case `cffconvert` and `pre-commit` would be). - -```shell -➜ pixi tree -i yaml - -ruamel.yaml v0.18.6 -├── pykwalify v1.8.0 -│ └── cffconvert v2.0.0 -└── cffconvert v2.0.0 - -pyyaml v6.0.1 -└── pre-commit v3.3.3 - -ruamel.yaml.clib v0.2.8 -└── ruamel.yaml v0.18.6 - ├── pykwalify v1.8.0 - │ └── cffconvert v2.0.0 - └── cffconvert v2.0.0 - -yaml v0.2.5 -└── pyyaml v6.0.1 - └── pre-commit v3.3.3 -``` - -## `shell` - -This command starts a new shell in the project's environment. -To exit the pixi shell, simply run `exit`. - -##### Options - -- `--change-ps1 `: When set to false, the `(pixi)` prefix in the shell prompt is removed (default: `true`). The default behavior can be [configured globally](pixi_configuration.md#change-ps1). -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--frozen`: install the environment as defined in the lock file, doesn't update `pixi.lock` if it isn't up-to-date with [manifest file](pixi_manifest.md). It can also be controlled by the `PIXI_FROZEN` environment variable (example: `PIXI_FROZEN=true`). -- `--locked`: only install if the `pixi.lock` is up-to-date with the [manifest file](pixi_manifest.md)[^1]. It can also be controlled by the `PIXI_LOCKED` environment variable (example: `PIXI_LOCKED=true`). Conflicts with `--frozen`. -- `--no-install`: Don't install the environment, only activate the environment. -- `--no-lockfile-update`: Don't update the lock-file, implies the `--no-install` flag. -- `--environment (-e)`: The environment to activate the shell in, if none are provided the default environment will be used or a selector will be given to select the right environment. -- `--no-progress`: Hide all progress bars, always turned on if stderr is not a terminal [env: PIXI_NO_PROGRESS=] -- `--force-activate`: (default, except in _experimental_ mode) Force the activation of the environment, even if the environment is already activated. -- `--revalidate`: Revalidate the full environment, instead of checking lock file hash. [more info](../environments/environment.md#environment-installation-metadata) -- `--concurrent-downloads`: The number of concurrent downloads to use when installing packages. Defaults to 50. -- `--concurrent-solves`: The number of concurrent solves to use when installing packages. Defaults to the number of cpu threads. -- `--no-completion`: Do not source the autocompletion scripts from the environment. - -```shell -pixi shell -exit -pixi shell --manifest-path ~/myproject/pixi.toml -exit -pixi shell --frozen -exit -pixi shell --locked -exit -pixi shell --environment cuda -exit -``` - -## `shell-hook` - -This command prints the activation script of an environment. - -##### Options - -- `--shell (-s)`: The shell for which the activation script should be printed. Defaults to the current shell. - Currently supported variants: [`bash`, `zsh`, `xonsh`, `cmd`, `powershell`, `fish`, `nushell`] -- `--manifest-path`: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--frozen`: install the environment as defined in the lock file, doesn't update `pixi.lock` if it isn't up-to-date with [manifest file](pixi_manifest.md). It can also be controlled by the `PIXI_FROZEN` environment variable (example: `PIXI_FROZEN=true`). -- `--locked`: only install if the `pixi.lock` is up-to-date with the [manifest file](pixi_manifest.md)[^1]. It can also be controlled by the `PIXI_LOCKED` environment variable (example: `PIXI_LOCKED=true`). Conflicts with `--frozen`. -- `--environment (-e)`: The environment to activate, if none are provided the default environment will be used or a selector will be given to select the right environment. -- `--json`: Print all environment variables that are exported by running the activation script as JSON. When specifying - this option, `--shell` is ignored. -- `--force-activate`: (default, except in _experimental_ mode) Force the activation of the environment, even if the environment is already activated. -- `--revalidate`: Revalidate the full environment, instead of checking lock file hash. [more info](../environments/environment.md#environment-installation-metadata) -- `--concurrent-downloads`: The number of concurrent downloads to use when installing packages. Defaults to 50. -- `--concurrent-solves`: The number of concurrent solves to use when installing packages. Defaults to the number of cpu threads. -- `--no-completion`: Do not source the autocompletion scripts from the environment. - -```shell -pixi shell-hook -pixi shell-hook --shell bash -pixi shell-hook --shell zsh -pixi shell-hook -s powershell -pixi shell-hook --manifest-path ~/myproject/pixi.toml -pixi shell-hook --frozen -pixi shell-hook --locked -pixi shell-hook --environment cuda -pixi shell-hook --json -``` - -Example use-case, when you want to get rid of the `pixi` executable in a Docker container. - -```shell -pixi shell-hook --shell bash > /etc/profile.d/pixi.sh -rm ~/.pixi/bin/pixi # Now the environment will be activated without the need for the pixi executable. -``` - -## `search` - -Search a package, output will list the latest version of the package. - -##### Arguments - -1. ``: Name of package to search, it's possible to use wildcards (`*`). - -###### Options - -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--channel (-c)`: specify a channel that the project uses. Defaults to `conda-forge`. (Allowed to be used more than once) -- `--limit (-l)`: optionally limit the number of search results -- `--platform (-p)`: specify a platform that you want to search for. (default: current platform) - -```zsh -pixi search pixi -pixi search --limit 30 "py*" -# search in a different channel and for a specific platform -pixi search -c robostack --platform linux-64 "plotjuggler*" -``` - -## `self-update` - -Update pixi to the latest version or a specific version. If pixi was installed using another package manager this feature might not -be available and pixi should be updated using the package manager used to install it. - -##### Options - -- `--version `: The desired version (to downgrade or upgrade to). Update to the latest version if not specified. - -```shell -pixi self-update -pixi self-update --version 0.13.0 -``` - -## `info` - -Shows helpful information about the pixi installation, cache directories, disk usage, and more. -More information [here](../advanced/explain_info_command.md). - -##### Options - -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--extended`: extend the information with more slow queries to the system, like directory sizes. -- `--json`: Get a machine-readable version of the information as output. - -```shell -pixi info -pixi info --json --extended -``` -## `clean` - -Clean the parts of your system which are touched by pixi. -Defaults to cleaning the environments and task cache. -Use the `cache` subcommand to clean the cache - -##### Options -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. -- `--environment (-e)`: The environment to clean, if none are provided all environments will be removed. - -```shell -pixi clean -``` - -### `clean cache` - -Clean the pixi cache on your system. - -##### Options -- `--pypi`: Clean the pypi cache. -- `--conda`: Clean the conda cache. -- `--mapping`: Clean the mapping cache. -- `--exec`: Clean the `exec` cache. -- `--repodata`: Clean the repodata cache. -- `--yes`: Skip the confirmation prompt. - -```shell -pixi clean cache # clean all pixi caches -pixi clean cache --pypi # clean only the pypi cache -pixi clean cache --conda # clean only the conda cache -pixi clean cache --mapping # clean only the mapping cache -pixi clean cache --exec # clean only the `exec` cache -pixi clean cache --repodata # clean only the `repodata` cache -pixi clean cache --yes # skip the confirmation prompt -``` - -## `upload` - -Upload a package to a prefix.dev channel - -##### Arguments - -1. ``: The host + channel to upload to. -2. ``: The package file to upload. - -```shell -pixi upload https://prefix.dev/api/v1/upload/my_channel my_package.conda -``` - -## `auth` - -This command is used to authenticate the user's access to remote hosts such as `prefix.dev` or `anaconda.org` for private channels. - -### `auth login` - -Store authentication information for given host. - -!!! tip - The host is real hostname not a channel. - -##### Arguments - -1. ``: The host to authenticate with. - -##### Options - -- `--token `: The token to use for authentication with prefix.dev. -- `--username `: The username to use for basic HTTP authentication -- `--password `: The password to use for basic HTTP authentication. -- `--conda-token `: The token to use on `anaconda.org` / `quetz` authentication. -- `--s3-access-key-id`: The S3 access key ID -- `--s3-secret-access-key`: The S3 secret access key -- `--s3-session-token`: The S3 session token (optional for S3 authentication) - -```shell -pixi auth login repo.prefix.dev --token pfx_JQEV-m_2bdz-D8NSyRSaAndHANx0qHjq7f2iD -pixi auth login anaconda.org --conda-token ABCDEFGHIJKLMNOP -pixi auth login https://myquetz.server --username john --password xxxxxx -pixi auth login s3://my-bucket --s3-access-key-id $AWS_ACCESS_KEY_ID --s3-access-key-id $AWS_SECRET_KEY_ID -``` - -### `auth logout` - -Remove authentication information for a given host. - -##### Arguments - -1. ``: The host to authenticate with. - -```shell -pixi auth logout -pixi auth logout repo.prefix.dev -pixi auth logout anaconda.org -pixi auth logout s3://my-bucket -``` - -## `config` - -Use this command to manage the configuration. - -##### Options - -- `--system (-s)`: Specify management scope to system configuration. -- `--global (-g)`: Specify management scope to global configuration. -- `--local (-l)`: Specify management scope to local configuration. -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. - -Checkout the [pixi configuration](./pixi_configuration.md) for more information about the locations. - -### `config edit` - -Edit the configuration file in the default editor. - - -##### Arguments - -1. `[EDITOR]`: The editor to use, defaults to `EDITOR` environment variable or `nano` on Unix and `notepad` on Windows - -```shell -pixi config edit --system -pixi config edit --local -pixi config edit -g -pixi config edit --global code -pixi config edit --system vim -``` - -### `config list` - -List the configuration - -##### Arguments - -1. `[KEY]`: The key to list the value of. (all if not provided) - -##### Options - -- `--json`: Output the configuration in JSON format. - -```shell -pixi config list default-channels -pixi config list --json -pixi config list --system -pixi config list -g -``` - -### `config prepend` - -Prepend a value to a list configuration key. - -##### Arguments - -1. ``: The key to prepend the value to. -2. ``: The value to prepend. - -```shell -pixi config prepend default-channels conda-forge -``` - -### `config append` - -Append a value to a list configuration key. - -##### Arguments - -1. ``: The key to append the value to. -2. ``: The value to append. - -```shell -pixi config append default-channels robostack -pixi config append default-channels bioconda --global -``` - -### `config set` - -Set a configuration key to a value. - -##### Arguments - -1. ``: The key to set the value of. -2. `[VALUE]`: The value to set. (if not provided, the key will be removed) - -```shell -pixi config set default-channels '["conda-forge", "bioconda"]' -pixi config set --global mirrors '{"https://conda.anaconda.org/": ["https://prefix.dev/conda-forge"]}' -pixi config set repodata-config.disable-zstd true --system -pixi config set --global detached-environments "/opt/pixi/envs" -pixi config set detached-environments false -pixi config set s3-options.my-bucket '{"endpoint-url": "http://localhost:9000", "force-path-style": true, "region": "auto"}' -``` - -### `config unset` - -Unset a configuration key. - -##### Arguments - -1. ``: The key to unset. - -```shell -pixi config unset default-channels -pixi config unset --global mirrors -pixi config unset repodata-config.disable-zstd --system -``` - -## `global` - -Global is the main entry point for the part of pixi that executes on the global(system) level. -All commands in this section are used to manage global installations of packages and environments through the global manifest. -More info on the global manifest can be found [here](../global_tools/introduction.md). - -!!! tip - Binaries and environments installed globally are stored in `~/.pixi` - by default, this can be changed by setting the `PIXI_HOME` environment - variable. -### `global add` - -Adds dependencies to a global environment. -Without exposing the binaries of that package to the system by default. - -##### Arguments -1. `[PACKAGE]`: The packages to add, this excepts the matchspec format. (e.g. `python=3.9.*`, `python [version='3.11.0', build_number=1]`) - -##### Options -- `--environment (-e)`: The environment to install the package into. -- `--expose `: A mapping from name to the binary to expose to the system. - -```shell -pixi global add python=3.9.* --environment my-env -pixi global add python=3.9.* --expose py39=python3.9 --environment my-env -pixi global add numpy matplotlib --environment my-env -pixi global add numpy matplotlib --expose np=python3.9 --environment my-env -``` - -### `global edit` -Edit the global manifest file in the default editor. - -Will try to use the `EDITOR` environment variable, if not set it will use `nano` on Unix systems and `notepad` on Windows. - -##### Arguments -1. ``: The editor to use. (optional) -```shell -pixi global edit -pixi global edit code -pixi global edit vim -``` - -### `global install` - -This command installs package(s) into its own environment and adds the binary to `PATH`. -Allowing you to access it anywhere on your system without activating the environment. - -##### Arguments - -1.`[PACKAGE]`: The package(s) to install, this can also be a version constraint. - -##### Options - -- `--channel (-c)`: specify a channel that the project uses. Defaults to `conda-forge`. (Allowed to be used more than once) -- `--platform (-p)`: specify a platform that you want to install the package for. (default: current platform) -- `--environment (-e)`: The environment to install the package into. (default: name of the tool) -- `--expose `: A mapping from name to the binary to expose to the system. (default: name of the tool) -- `--with `: Add additional dependencies to the environment. Their executables will not be exposed. -- `--force-reinstall`: Specifies that the packages should be reinstalled even if they are already installed -- `--no-shortcut`: Specifies that no shortcuts should be created for the installed packages - -```shell -pixi global install ruff -# Multiple packages can be installed at once -pixi global install starship rattler-build -# Specify the channel(s) -pixi global install --channel conda-forge --channel bioconda trackplot -# Or in a more concise form -pixi global install -c conda-forge -c bioconda trackplot - -# Support full conda matchspec -pixi global install python=3.9.* -pixi global install "python [version='3.11.0', build_number=1]" -pixi global install "python [version='3.11.0', build=he550d4f_1_cpython]" -pixi global install python=3.11.0=h10a6764_1_cpython - -# Install for a specific platform, only useful on osx-arm64 -pixi global install --platform osx-64 ruff - -# Install a package with all its executables exposed, together with additional packages that don't expose anything -pixi global install ipython --with numpy --with scipy - -# Install into a specific environment name and expose all executables -pixi global install --environment data-science ipython jupyterlab numpy matplotlib - -# Expose the binary under a different name -pixi global install --expose "py39=python3.9" "python=3.9.*" -``` - -!!! tip - Running `osx-64` on Apple Silicon will install the Intel binary but run it using [Rosetta](https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment) - ``` - pixi global install --platform osx-64 ruff - ``` - -After using global install, you can use the package you installed anywhere on your system. - -### `global uninstall` -Uninstalls environments from the global environment. -This will remove the environment and all its dependencies from the global environment. -It will also remove the related binaries from the system. - -##### Arguments -1. `[ENVIRONMENT]`: The environments to uninstall. - -```shell -pixi global uninstall my-env -pixi global uninstall pixi-pack rattler-build -``` - -### `global remove` - -Removes a package from a global environment. - -##### Arguments - -1. `[PACKAGE]`: The packages to remove. - -##### Options - -- `--environment (-e)`: The environment to remove the package from. - -```shell -pixi global remove -e my-env package1 package2 -``` - - -### `global list` - -This command shows the current installed global environments including what binaries come with it. -A global installed package/environment can possibly contain multiple exposed binaries and they will be listed out in the command output. - -##### Options -- `--environment (-e)`: The environment to install the package into. (default: name of the tool) - -We'll only show the dependencies and exposed binaries of the environment if they differ from the environment name. -Here is an example of a few installed packages: - -``` -pixi global list -``` -Results in: -``` -Global environments at /home/user/.pixi: -├── gh: 2.57.0 -├── pixi-pack: 0.1.8 -├── python: 3.11.0 -│ └─ exposes: 2to3, 2to3-3.11, idle3, idle3.11, pydoc, pydoc3, pydoc3.11, python, python3, python3-config, python3.1, python3.11, python3.11-config -├── rattler-build: 0.22.0 -├── ripgrep: 14.1.0 -│ └─ exposes: rg -├── vim: 9.1.0611 -│ └─ exposes: ex, rview, rvim, view, vim, vimdiff, vimtutor, xxd -└── zoxide: 0.9.6 -``` - -Here is an example of list of a single environment: -``` -pixi g list -e pixi-pack -``` -Results in: -``` -The 'pixi-pack' environment has 8 packages: -Package Version Build Size -_libgcc_mutex 0.1 conda_forge 2.5 KiB -_openmp_mutex 4.5 2_gnu 23.1 KiB -ca-certificates 2024.8.30 hbcca054_0 155.3 KiB -libgcc 14.1.0 h77fa898_1 826.5 KiB -libgcc-ng 14.1.0 h69a702a_1 50.9 KiB -libgomp 14.1.0 h77fa898_1 449.4 KiB -openssl 3.3.2 hb9d3cd8_0 2.8 MiB -pixi-pack 0.1.8 hc762bcd_0 4.3 MiB -Package Version Build Size - -Exposes: -pixi-pack -Channels: -conda-forge -Platform: linux-64 -``` - - -### `global sync` -As the global manifest can be manually edited, this command will sync the global manifest with the current state of the global environment. -You can modify the manifest in `$HOME/manifests/pixi_global.toml`. - -```shell -pixi global sync -``` - -### `global expose` -Modify the exposed binaries of a global environment. - -#### `global expose add` -Add exposed binaries from an environment to your global environment. - -##### Arguments -1. `[MAPPING]`: The binaries to expose (`python`), or give a map to expose a binary under a different name. (e.g. `py310=python3.10`) -The mapping is mapped as `exposed_name=binary_name`. -Where the exposed name is the one you will be able to use in the terminal, and the binary name is the name of the binary in the environment. - -##### Options -- `--environment (-e)`: The environment to expose the binaries from. - -```shell -pixi global expose add python --environment my-env -pixi global expose add py310=python3.10 --environment python -``` - -#### `global expose remove` -Remove exposed binaries from the global environment. - -##### Arguments -1. `[EXPOSED_NAME]`: The binaries to remove from the main global environment. - -```shell -pixi global expose remove python -pixi global expose remove py310 python3 -``` - -### `global update` - -Update all environments or specify an environment to update to the version. - -##### Arguments - -1. `[ENVIRONMENT]`: The environment(s) to update. - -```shell -pixi global update -pixi global update pixi-pack -pixi global update bat rattler-build -``` - -## `project` - -This subcommand allows you to modify the project configuration through the command line interface. - -##### Options - -- `--manifest-path `: the path to [manifest file](pixi_manifest.md), by default it searches for one in the parent directories. - -### `project channel add` - -Add channels to the channel list in the project configuration. -When you add channels, the channels are tested for existence, added to the lock file and the environment is reinstalled. - -##### Arguments - -1. ``: The channels to add, name or URL. - -##### Options - -- `--no-install`: do not update the environment, only add changed packages to the lock-file. -- `--feature (-f)`: The feature for which the channel is added. -- `--prepend`: Prepend the channel to the list of channels. - -``` -pixi project channel add robostack -pixi project channel add bioconda conda-forge robostack -pixi project channel add file:///home/user/local_channel -pixi project channel add https://repo.prefix.dev/conda-forge -pixi project channel add --no-install robostack -pixi project channel add --feature cuda nvidia -pixi project channel add --prepend pytorch -``` - -### `project channel list` - -List the channels in the manifest file - -##### Options - -- `urls`: show the urls of the channels instead of the names. - -```sh -$ pixi project channel list -Environment: default -- conda-forge - -$ pixi project channel list --urls -Environment: default -- https://conda.anaconda.org/conda-forge/ - -``` - -### `project channel remove` - -List the channels in the manifest file - -##### Arguments - -1. `...`: The channels to remove, name(s) or URL(s). - -##### Options - -- `--no-install`: do not update the environment, only add changed packages to the lock-file. -- `--feature (-f)`: The feature for which the channel is removed. - -```sh -pixi project channel remove conda-forge -pixi project channel remove https://conda.anaconda.org/conda-forge/ -pixi project channel remove --no-install conda-forge -pixi project channel remove --feature cuda nvidia -``` - -### `project description get` - -Get the project description. - -```sh -$ pixi project description get -Package management made easy! -``` - -### `project description set` - -Set the project description. - -##### Arguments - -1. ``: The description to set. - -```sh -pixi project description set "my new description" -``` - -### `project environment add` - -Add an environment to the manifest file. - -##### Arguments - -1. ``: The name of the environment to add. - -##### Options - -- `-f, --feature `: Features to add to the environment. -- `--solve-group `: The solve-group to add the environment to. -- `--no-default-feature`: Don't include the default feature in the environment. -- `--force`: Update the manifest even if the environment already exists. - -```sh -pixi project environment add env1 --feature feature1 --feature feature2 -pixi project environment add env2 -f feature1 --solve-group test -pixi project environment add env3 -f feature1 --no-default-feature -pixi project environment add env3 -f feature1 --force -``` - -### `project environment remove` - -Remove an environment from the manifest file. - -##### Arguments - -1. ``: The name of the environment to remove. - -```shell -pixi project environment remove env1 -``` - -### `project environment list` - -List the environments in the manifest file. - -```shell -pixi project environment list -``` - -### `project export conda-environment` - -Exports a conda [`environment.yml` file](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-from-an-environment-yml-file). The file can be used to create a conda environment using conda/mamba: - -```shell -pixi project export conda-environment environment.yml -mamba create --name --file environment.yml -``` - -##### Arguments - -1. ``: Optional path to render environment.yml to. Otherwise it will be printed to standard out. - -##### Options - -- `--environment (-e)`: Environment to render. -- `--platform (-p)`: The platform to render. - -```sh -pixi project export conda-environment --environment lint -pixi project export conda-environment --platform linux-64 environment.linux-64.yml -``` - -### `project export conda-explicit-spec` - -Render a platform-specific conda [explicit specification file](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#building-identical-conda-environments) -for an environment. The file can be then used to create a conda environment using conda/mamba: - -```shell -mamba create --name --file -``` - -As the explicit specification file format does not support pypi-dependencies, use the `--ignore-pypi-errors` option to ignore those dependencies. - -##### Arguments - -1. ``: Output directory for rendered explicit environment spec files. - -##### Options - -- `--environment (-e)`: Environment to render. Can be repeated for multiple envs. Defaults to all environments. -- `--platform (-p)`: The platform to render. Can be repeated for multiple platforms. Defaults to all platforms available for selected environments. -- `--ignore-pypi-errors`: PyPI dependencies are not supported in the conda explicit spec file. This flag allows creating the spec file even if PyPI dependencies are present. - -```sh -pixi project export conda-explicit-spec output -pixi project export conda-explicit-spec -e default -e test -p linux-64 output -``` - -### `project name get` - -Get the project name. - -```sh -$ pixi project name get -my project name -``` - -### `project name set` - -Set the project name. - -##### Arguments - -1. ``: The name to set. - -```sh -pixi project name set "my new project name" -``` - -### `project platform add` - -Adds a platform(s) to the manifest file and updates the lock file. - -##### Arguments - -1. `...`: The platforms to add. - -##### Options - -- `--no-install`: do not update the environment, only add changed packages to the lock-file. -- `--feature (-f)`: The feature for which the platform will be added. - -```sh -pixi project platform add win-64 -pixi project platform add --feature test win-64 -``` - -### `project platform list` - -List the platforms in the manifest file. - -```sh -$ pixi project platform list -osx-64 -linux-64 -win-64 -osx-arm64 -``` - -### `project platform remove` - -Remove platform(s) from the manifest file and updates the lock file. - -##### Arguments - -1. `...`: The platforms to remove. - -##### Options - -- `--no-install`: do not update the environment, only add changed packages to the lock-file. -- `--feature (-f)`: The feature for which the platform will be removed. - -```sh -pixi project platform remove win-64 -pixi project platform remove --feature test win-64 -``` - -### `project version get` - -Get the project version. - -```sh -$ pixi project version get -0.11.0 -``` - -### `project version set` - -Set the project version. - -##### Arguments - -1. ``: The version to set. - -```sh -pixi project version set "0.13.0" -``` - -### `project version {major|minor|patch}` - -Bump the project version to {MAJOR|MINOR|PATCH}. - -```sh -pixi project version major -pixi project version minor -pixi project version patch -``` - -### `project system-requirement add` - -Add a system requirement to the project configuration. - -##### Arguments -1. ``: The name of the system requirement. -2. ``: The version of the system requirement. - -##### Options -- `--family `: The family of the system requirement. Only used for `other-libc`. -- `--feature (-f)`: The feature for which the system requirement is added. - -```shell -pixi project system-requirements add cuda 12.6 -pixi project system-requirements add linux 5.15.2 -pixi project system-requirements add macos 15.2 -pixi project system-requirements add glibc 2.34 -pixi project system-requirements add other-libc 1.2.3 --family musl -pixi project system-requirements add --feature cuda cuda 12.0 -``` - -### `project system-requirement list` - -List the system requirements in the project configuration. - -##### Options -- `--environment (-e)`: The environment to list the system requirements for. - -```shell -pixi project system-requirements list -pixi project system-requirements list --environment test -``` - -[^1]: - An **up-to-date** lock file means that the dependencies in the lock file are allowed by the dependencies in the manifest file. - For example - - - a manifest with `python = ">= 3.11"` is up-to-date with a `name: python, version: 3.11.0` in the `pixi.lock`. - - a manifest with `python = ">= 3.12"` is **not** up-to-date with a `name: python, version: 3.11.0` in the `pixi.lock`. - - Being up-to-date does **not** mean that the lock file holds the latest version available on the channel for the given dependency. diff --git a/docs/reference/cli/__README.md b/docs/reference/cli/__README.md new file mode 100644 index 0000000000..1648842c92 --- /dev/null +++ b/docs/reference/cli/__README.md @@ -0,0 +1,9 @@ +This directory contains the same structure as the autogenerated cli documentation. + +In all the autogenerated files, there are `snippets` injected like `description` and `example`. + +If you put a file with the same file name and path as the autogenerated companion file, the `snippets` will be injected into the file. + +For example, `docs/autogenerated/pixi.md` is the autogenerated file and `docs/reference/cli/pixi.md` is the injecting file. + +Snipped documentation can be found here: https://facelessuser.github.io/pymdown-extensions/extensions/snippets/ diff --git a/docs/reference/cli/pixi.md b/docs/reference/cli/pixi.md new file mode 100644 index 0000000000..0c853f4317 --- /dev/null +++ b/docs/reference/cli/pixi.md @@ -0,0 +1,60 @@ + +# pixi + +--8<-- "docs/reference/cli/pixi_extender.md:description" + +## Usage +``` +pixi [OPTIONS] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`init`](pixi/init.md) | Creates a new workspace | +| [`add`](pixi/add.md) | Adds dependencies to the workspace | +| [`remove`](pixi/remove.md) | Removes dependencies from the workspace | +| [`install`](pixi/install.md) | Install an environment, both updating the lockfile and installing the environment | +| [`update`](pixi/update.md) | The `update` command checks if there are newer versions of the dependencies and updates the `pixi.lock` file and environments accordingly | +| [`upgrade`](pixi/upgrade.md) | Checks if there are newer versions of the dependencies and upgrades them in the lockfile and manifest file | +| [`lock`](pixi/lock.md) | Solve environment and update the lock file without installing the environments | +| [`run`](pixi/run.md) | Runs task in the pixi environment | +| [`exec`](pixi/exec.md) | Run a command and install it in a temporary environment | +| [`shell`](pixi/shell.md) | Start a shell in a pixi environment, run `exit` to leave the shell | +| [`shell-hook`](pixi/shell-hook.md) | Print the pixi environment activation script | +| [`project`](pixi/project.md) | Modify the project configuration file through the command line | +| [`task`](pixi/task.md) | Interact with tasks in the workspace | +| [`list`](pixi/list.md) | List project's packages | +| [`tree`](pixi/tree.md) | Show a tree of project dependencies | +| [`global`](pixi/global.md) | Subcommand for global package management actions | +| [`auth`](pixi/auth.md) | Login to prefix.dev or anaconda.org servers to access private channels | +| [`config`](pixi/config.md) | Configuration management | +| [`info`](pixi/info.md) | Information about the system, project and environments for the current machine | +| [`upload`](pixi/upload.md) | Upload a conda package | +| [`search`](pixi/search.md) | Search a conda package | +| [`self-update`](pixi/self-update.md) | Update pixi to the latest version or a specific version | +| [`clean`](pixi/clean.md) | Cleanup the environments | +| [`completion`](pixi/completion.md) | Generates a completion script for a shell | +| [`build`](pixi/build.md) | Workspace configuration | + + +## Options +- `--version (-V)` +: Display version information + +## Global Options +- `--color ` +: Whether the log needs to be colored +
**env**: `PIXI_COLOR` +
**default**: `auto` +
**options**: `always`, `never`, `auto` +- `--no-progress` +: Hide all progress bars, always turned on if stderr is not a terminal +
**env**: `PIXI_NO_PROGRESS` +
**default**: `false` +- `--quiet (-q)` +: Decrease logging verbosity +- `--verbose (-v)` +: Increase logging verbosity + +--8<-- "docs/reference/cli/pixi_extender.md:example" diff --git a/docs/reference/cli/pixi/add.md b/docs/reference/cli/pixi/add.md new file mode 100644 index 0000000000..713c2fd774 --- /dev/null +++ b/docs/reference/cli/pixi/add.md @@ -0,0 +1,131 @@ + +# [pixi](../pixi.md) add + +## About +Adds dependencies to the workspace + +--8<-- "docs/reference/cli/pixi/add_extender.md:description" + +## Usage +``` +pixi add [OPTIONS] ... +``` + +## Arguments +- `` +: The dependencies as names, conda MatchSpecs or PyPi requirements +
**required**: `true` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--branch ` +: The git branch +- `--build` +: The specified dependencies are build dependencies. Conflicts with `host` and `pypi` +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--editable` +: Whether the pypi requirement should be editable +- `--feature (-f) ` +: The feature for which the dependency should be modified +
**default**: `default` +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--git (-g) ` +: The git url to use when adding a git dependency +- `--host` +: The specified dependencies are host dependencies. Conflicts with `build` and `pypi` +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--platform (-p) ` +: The platform(s) for which the dependency should be modified +- `--pypi` +: The specified dependencies are pypi dependencies. Conflicts with `host` and `build` +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--rev ` +: The git revision +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--subdir (-s) ` +: The subdirectory of the git repository to use +- `--tag ` +: The git tag +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Adds dependencies to the workspace + +The dependencies should be defined as MatchSpec for conda package, or a PyPI +requirement for the `--pypi` dependencies. If no specific version is +provided, the latest version compatible with your project will be chosen +automatically or a * will be used. + +Example usage: + +- `pixi add python=3.9`: This will select the latest minor version that + complies with 3.9.*, i.e., python version 3.9.0, 3.9.1, 3.9.2, etc. +- `pixi add python`: In absence of a specified version, the latest version + will be chosen. For instance, this could resolve to python version + 3.11.3.* at the time of writing. + +Adding multiple dependencies at once is also supported: + +- `pixi add python pytest`: This will add both `python` and `pytest` to the + project's dependencies. + +The `--platform` and `--build/--host` flags make the dependency target +specific. + +- `pixi add python --platform linux-64 --platform osx-arm64`: Will add the + latest version of python for linux-64 and osx-arm64 platforms. +- `pixi add python --build`: Will add the latest version of python for as a + build dependency. + +Mixing `--platform` and `--build`/`--host` flags is supported + +The `--pypi` option will add the package as a pypi dependency. This cannot +be mixed with the conda dependencies + +- `pixi add --pypi boto3` +- `pixi add --pypi "boto3==version"` + +If the project manifest is a `pyproject.toml`, adding a pypi dependency will +add it to the native pyproject `project.dependencies` array or to the native +`dependency-groups` table if a feature is specified: + +- `pixi add --pypi boto3` will add `boto3` to the `project.dependencies` + array +- `pixi add --pypi boto3 --feature aws` will add `boto3` to the + `dependency-groups.aws` array + +Note that if `--platform` or `--editable` are specified, the pypi dependency +will be added to the `tool.pixi.pypi-dependencies` table instead as native +arrays have no support for platform-specific or editable dependencies. + +These dependencies will then be read by pixi as if they had been added to +the pixi `pypi-dependencies` tables of the default or of a named feature. + +The versions will be automatically added with a pinning strategy based on +semver or the pinning strategy set in the config. There is a list of +packages that are not following the semver versioning scheme but will use +the minor version by default: +Python, Rust, Julia, GCC, GXX, GFortran, NodeJS, Deno, R, R-Base, Perl + + +--8<-- "docs/reference/cli/pixi/add_extender.md:example" diff --git a/docs/reference/cli/pixi/add_extender.md b/docs/reference/cli/pixi/add_extender.md new file mode 100644 index 0000000000..e6bd3441db --- /dev/null +++ b/docs/reference/cli/pixi/add_extender.md @@ -0,0 +1,75 @@ + +--8<-- [start:example] + +## Examples + +```shell +pixi add numpy # (1)! +pixi add numpy pandas "pytorch>=1.8" # (2)! +pixi add "numpy>=1.22,<1.24" # (3)! +pixi add --manifest-path ~/myproject/pixi.toml numpy # (4)! +pixi add --host "python>=3.9.0" # (5)! +pixi add --build cmake # (6)! +pixi add --platform osx-64 clang # (7)! +pixi add --no-install numpy # (8)! +pixi add --no-lockfile-update numpy # (9)! +pixi add --feature featurex numpy # (10)! +pixi add --git https://github.com/wolfv/pixi-build-examples boost-check # (11)! +pixi add --git https://github.com/wolfv/pixi-build-examples --branch main --subdir boost-check boost-check # (12)! +pixi add --git https://github.com/wolfv/pixi-build-examples --tag v0.1.0 boost-check # (13)! +pixi add --git https://github.com/wolfv/pixi-build-examples --rev e50d4a1 boost-check # (14)! + +# Add a pypi dependency +pixi add --pypi requests[security] # (15)! +pixi add --pypi Django==5.1rc1 # (16)! +pixi add --pypi "boltons>=24.0.0" --feature lint # (17)! +pixi add --pypi "boltons @ https://files.pythonhosted.org/packages/46/35/e50d4a115f93e2a3fbf52438435bb2efcf14c11d4fcd6bdcd77a6fc399c9/boltons-24.0.0-py3-none-any.whl" # (18)! +pixi add --pypi "exchangelib @ git+https://github.com/ecederstrand/exchangelib" # (19)! +pixi add --pypi "project @ file:///absolute/path/to/project" # (20)! +pixi add --pypi "project@file:///absolute/path/to/project" --editable # (21)! +pixi add --git https://github.com/mahmoud/boltons.git boltons --pypi # (22)! +pixi add --git https://github.com/mahmoud/boltons.git boltons --branch main --pypi # (23)! +pixi add --git https://github.com/mahmoud/boltons.git boltons --rev e50d4a1 --pypi # (24)! +pixi add --git https://github.com/mahmoud/boltons.git boltons --tag v0.1.0 --pypi # (25)! +pixi add --git https://github.com/mahmoud/boltons.git boltons --tag v0.1.0 --pypi --subdir boltons # (26)! +``` + +1. This will add the `numpy` package to the project with the latest available for the solved environment. +2. This will add multiple packages to the project solving them all together. +3. This will add the `numpy` package with the version constraint. +4. This will add the `numpy` package to the project of the manifest file at the given path. +5. This will add the `python` package as a host dependency. There is currently no different behavior for host dependencies. +6. This will add the `cmake` package as a build dependency. There is currently no different behavior for build dependencies. +7. This will add the `clang` package only for the `osx-64` platform. +8. This will add the `numpy` package to the manifest and lockfile, without installing it in an environment. +9. This will add the `numpy` package to the manifest without updating the lockfile or installing it in the environment. +10. This will add the `numpy` package in the feature `featurex`. +11. This will add the `boost-check` source package to the dependencies from the git repository. +12. This will add the `boost-check` source package to the dependencies from the git repository using `main` branch and the `boost-check` folder in the repository. +13. This will add the `boost-check` source package to the dependencies from the git repository using `v0.1.0` tag. +14. This will add the `boost-check` source package to the dependencies from the git repository using `e50d4a1` revision. +15. This will add the `requests` package as `pypi` dependency with the `security` extra. +16. This will add the `pre-release` version of `Django` to the project as a `pypi` dependency. +17. This will add the `boltons` package in the feature `lint` as `pypi` dependency. +18. This will add the `boltons` package with the given `url` as `pypi` dependency. +19. This will add the `exchangelib` package with the given `git` url as `pypi` dependency. +20. This will add the `project` package with the given `file` url as `pypi` dependency. +21. This will add the `project` package with the given `file` url as an `editable` package as `pypi` dependency. +22. This will add the `boltons` package with the given `git` url as `pypi` dependency. +23. This will add the `boltons` package with the given `git` url and `main` branch as `pypi` dependency. +24. This will add the `boltons` package with the given `git` url and `e50d4a1` revision as `pypi` dependency. +25. This will add the `boltons` package with the given `git` url and `v0.1.0` tag as `pypi` dependency. +26. This will add the `boltons` package with the given `git` url, `v0.1.0` tag and the `boltons` folder in the repository as `pypi` dependency. + +!!! tip + If you want to use a non default pinning strategy, you can set it using [pixi's configuration](../../pixi_configuration.md#pinning-strategy). + ``` + pixi config set pinning-strategy no-pin --global + ``` + The default is `semver` which will pin the dependencies to the latest major version or minor for `v0` versions. +!!! note + There is an exception to this rule when you add a package we defined as non `semver`, then we'll use the `minor` strategy. + These are the packages we defined as non `semver`: + Python, Rust, Julia, GCC, GXX, GFortran, NodeJS, Deno, R, R-Base, Perl + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/auth.md b/docs/reference/cli/pixi/auth.md new file mode 100644 index 0000000000..25ce97c504 --- /dev/null +++ b/docs/reference/cli/pixi/auth.md @@ -0,0 +1,21 @@ + +# [pixi](../pixi.md) auth + +## About +Login to prefix.dev or anaconda.org servers to access private channels + +--8<-- "docs/reference/cli/pixi/auth_extender.md:description" + +## Usage +``` +pixi auth +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`login`](auth/login.md) | Store authentication information for a given host | +| [`logout`](auth/logout.md) | Remove authentication information for a given host | + + +--8<-- "docs/reference/cli/pixi/auth_extender.md:example" diff --git a/docs/reference/cli/pixi/auth/login.md b/docs/reference/cli/pixi/auth/login.md new file mode 100644 index 0000000000..b898791edf --- /dev/null +++ b/docs/reference/cli/pixi/auth/login.md @@ -0,0 +1,35 @@ + +# [pixi](../../pixi.md) [auth](../auth.md) login + +## About +Store authentication information for a given host + +--8<-- "docs/reference/cli/pixi/auth/login_extender.md:description" + +## Usage +``` +pixi auth login [OPTIONS] +``` + +## Arguments +- `` +: The host to authenticate with (e.g. repo.prefix.dev) +
**required**: `true` + +## Options +- `--conda-token ` +: The token to use on anaconda.org / quetz authentication +- `--password ` +: The password to use (for basic HTTP authentication) +- `--s3-access-key-id ` +: The S3 access key ID +- `--s3-secret-access-key ` +: The S3 secret access key +- `--s3-session-token ` +: The S3 session token +- `--token ` +: The token to use (for authentication with prefix.dev) +- `--username ` +: The username to use (for basic HTTP authentication) + +--8<-- "docs/reference/cli/pixi/auth/login_extender.md:example" diff --git a/docs/reference/cli/pixi/auth/login_extender.md b/docs/reference/cli/pixi/auth/login_extender.md new file mode 100644 index 0000000000..6e83555dd2 --- /dev/null +++ b/docs/reference/cli/pixi/auth/login_extender.md @@ -0,0 +1,12 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi auth login repo.prefix.dev --token pfx_JQEV-m_2bdz-D8NSyRSaAndHANx0qHjq7f2iD +pixi auth login anaconda.org --conda-token ABCDEFGHIJKLMNOP +pixi auth login https://myquetz.server --username john --password xxxxxx +pixi auth login s3://my-bucket --s3-access-key-id $AWS_ACCESS_KEY_ID --s3-access-key-id $AWS_SECRET_KEY_ID +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/auth/logout.md b/docs/reference/cli/pixi/auth/logout.md new file mode 100644 index 0000000000..566ddb3928 --- /dev/null +++ b/docs/reference/cli/pixi/auth/logout.md @@ -0,0 +1,19 @@ + +# [pixi](../../pixi.md) [auth](../auth.md) logout + +## About +Remove authentication information for a given host + +--8<-- "docs/reference/cli/pixi/auth/logout_extender.md:description" + +## Usage +``` +pixi auth logout +``` + +## Arguments +- `` +: The host to remove authentication for +
**required**: `true` + +--8<-- "docs/reference/cli/pixi/auth/logout_extender.md:example" diff --git a/docs/reference/cli/pixi/auth/logout_extender.md b/docs/reference/cli/pixi/auth/logout_extender.md new file mode 100644 index 0000000000..198c0792e3 --- /dev/null +++ b/docs/reference/cli/pixi/auth/logout_extender.md @@ -0,0 +1,12 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi auth logout +pixi auth logout repo.prefix.dev +pixi auth logout anaconda.org +pixi auth logout s3://my-bucket +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/build.md b/docs/reference/cli/pixi/build.md new file mode 100644 index 0000000000..7db7de3dd9 --- /dev/null +++ b/docs/reference/cli/pixi/build.md @@ -0,0 +1,39 @@ + +# [pixi](../pixi.md) build + +## About +Workspace configuration + +--8<-- "docs/reference/cli/pixi/build_extender.md:description" + +## Usage +``` +pixi build [OPTIONS] +``` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--no-incremental (-n)` +: Whether to build incrementally if possible +- `--output-dir (-o) ` +: The output directory to place the build artifacts +
**default**: `.` +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--target-platform (-t) ` +: The target platform to build for (defaults to the current platform) +
**default**: `current_platform` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/build_extender.md:example" diff --git a/docs/reference/cli/pixi/clean.md b/docs/reference/cli/pixi/clean.md new file mode 100644 index 0000000000..eadc711798 --- /dev/null +++ b/docs/reference/cli/pixi/clean.md @@ -0,0 +1,38 @@ + +# [pixi](../pixi.md) clean + +## About +Cleanup the environments + +--8<-- "docs/reference/cli/pixi/clean_extender.md:description" + +## Usage +``` +pixi clean [OPTIONS] [COMMAND] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`cache`](clean/cache.md) | Clean the cache of your system which are touched by pixi | + + +## Options +- `--activation-cache` +: Only remove the activation cache +- `--environment (-e) ` +: The environment directory to remove + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Cleanup the environments. + +This command removes the information in the .pixi folder. You can specify the environment to remove with the `--environment` flag. + +Use the `cache` subcommand to clean the cache. + + +--8<-- "docs/reference/cli/pixi/clean_extender.md:example" diff --git a/docs/reference/cli/pixi/clean/cache.md b/docs/reference/cli/pixi/clean/cache.md new file mode 100644 index 0000000000..4a7ff1ccbb --- /dev/null +++ b/docs/reference/cli/pixi/clean/cache.md @@ -0,0 +1,36 @@ + +# [pixi](../../pixi.md) [clean](../clean.md) cache + +## About +Clean the cache of your system which are touched by pixi + +--8<-- "docs/reference/cli/pixi/clean/cache_extender.md:description" + +## Usage +``` +pixi clean cache [OPTIONS] +``` + +## Options +- `--conda` +: Clean only the conda related cache +- `--exec` +: Clean only `exec` cache +- `--mapping` +: Clean only the mapping cache +- `--pypi` +: Clean only the pypi related cache +- `--repodata` +: Clean only the repodata cache +- `--tool` +: Clean only the build backend tools cache +- `--yes (-y)` +: Answer yes to all questions + +## Description +Clean the cache of your system which are touched by pixi. + +Specify the cache type to clean with the flags. + + +--8<-- "docs/reference/cli/pixi/clean/cache_extender.md:example" diff --git a/docs/reference/cli/pixi/clean/cache_extender.md b/docs/reference/cli/pixi/clean/cache_extender.md new file mode 100644 index 0000000000..9b6f9d962f --- /dev/null +++ b/docs/reference/cli/pixi/clean/cache_extender.md @@ -0,0 +1,13 @@ +--8<-- [start:example] +## Examples + +```shell +pixi clean cache # clean all pixi caches +pixi clean cache --pypi # clean only the pypi cache +pixi clean cache --conda # clean only the conda cache +pixi clean cache --mapping # clean only the mapping cache +pixi clean cache --exec # clean only the `exec` cache +pixi clean cache --repodata # clean only the `repodata` cache +pixi clean cache --yes # skip the confirmation prompt +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/completion.md b/docs/reference/cli/pixi/completion.md new file mode 100644 index 0000000000..c5fa839ad0 --- /dev/null +++ b/docs/reference/cli/pixi/completion.md @@ -0,0 +1,20 @@ + +# [pixi](../pixi.md) completion + +## About +Generates a completion script for a shell + +--8<-- "docs/reference/cli/pixi/completion_extender.md:description" + +## Usage +``` +pixi completion --shell +``` + +## Options +- `--shell (-s) ` +: The shell to generate a completion script for +
**required**: `true` +
**options**: `bash`, `elvish`, `fish`, `nushell`, `powershell`, `zsh` + +--8<-- "docs/reference/cli/pixi/completion_extender.md:example" diff --git a/docs/reference/cli/pixi/config.md b/docs/reference/cli/pixi/config.md new file mode 100644 index 0000000000..47d5e39cb0 --- /dev/null +++ b/docs/reference/cli/pixi/config.md @@ -0,0 +1,25 @@ + +# [pixi](../pixi.md) config + +## About +Configuration management + +--8<-- "docs/reference/cli/pixi/config_extender.md:description" + +## Usage +``` +pixi config +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`edit`](config/edit.md) | Edit the configuration file | +| [`list`](config/list.md) | List configuration values | +| [`prepend`](config/prepend.md) | Prepend a value to a list configuration key | +| [`append`](config/append.md) | Append a value to a list configuration key | +| [`set`](config/set.md) | Set a configuration value | +| [`unset`](config/unset.md) | Unset a configuration value | + + +--8<-- "docs/reference/cli/pixi/config_extender.md:example" diff --git a/docs/reference/cli/pixi/config/append.md b/docs/reference/cli/pixi/config/append.md new file mode 100644 index 0000000000..6e6ccf1a90 --- /dev/null +++ b/docs/reference/cli/pixi/config/append.md @@ -0,0 +1,40 @@ + +# [pixi](../../pixi.md) [config](../config.md) append + +## About +Append a value to a list configuration key + +--8<-- "docs/reference/cli/pixi/config/append_extender.md:description" + +## Usage +``` +pixi config append [OPTIONS] +``` + +## Arguments +- `` +: Configuration key to set +
**required**: `true` +- `` +: Configuration value to (pre|ap)pend +
**required**: `true` + +## Options +- `--global (-g)` +: Operation on global configuration +- `--local (-l)` +: Operation on project-local configuration +- `--system (-s)` +: Operation on system configuration + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Append a value to a list configuration key + +Example: `pixi config append default-channels bioconda` + + +--8<-- "docs/reference/cli/pixi/config/append_extender.md:example" diff --git a/docs/reference/cli/pixi/config/append_extender.md b/docs/reference/cli/pixi/config/append_extender.md new file mode 100644 index 0000000000..64e6cd58d2 --- /dev/null +++ b/docs/reference/cli/pixi/config/append_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + + +```shell +pixi config append default-channels robostack +pixi config append default-channels bioconda --global +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/config/edit.md b/docs/reference/cli/pixi/config/edit.md new file mode 100644 index 0000000000..a6c79cdb69 --- /dev/null +++ b/docs/reference/cli/pixi/config/edit.md @@ -0,0 +1,31 @@ + +# [pixi](../../pixi.md) [config](../config.md) edit + +## About +Edit the configuration file + +--8<-- "docs/reference/cli/pixi/config/edit_extender.md:description" + +## Usage +``` +pixi config edit [OPTIONS] [EDITOR] +``` + +## Arguments +- `` +: The editor to use, defaults to `EDITOR` environment variable or `nano` on Unix and `notepad` on Windows +
**env**: `EDITOR` + +## Options +- `--global (-g)` +: Operation on global configuration +- `--local (-l)` +: Operation on project-local configuration +- `--system (-s)` +: Operation on system configuration + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/config/edit_extender.md:example" diff --git a/docs/reference/cli/pixi/config/edit_extender.md b/docs/reference/cli/pixi/config/edit_extender.md new file mode 100644 index 0000000000..07ac66898c --- /dev/null +++ b/docs/reference/cli/pixi/config/edit_extender.md @@ -0,0 +1,12 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi config edit --system +pixi config edit --local +pixi config edit -g +pixi config edit --global code +pixi config edit --system vim +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/config/list.md b/docs/reference/cli/pixi/config/list.md new file mode 100644 index 0000000000..b7b95acd46 --- /dev/null +++ b/docs/reference/cli/pixi/config/list.md @@ -0,0 +1,38 @@ + +# [pixi](../../pixi.md) [config](../config.md) list + +## About +List configuration values + +--8<-- "docs/reference/cli/pixi/config/list_extender.md:description" + +## Usage +``` +pixi config list [OPTIONS] [KEY] +``` + +## Arguments +- `` +: Configuration key to show (all if not provided) + +## Options +- `--global (-g)` +: Operation on global configuration +- `--json` +: Output in JSON format +- `--local (-l)` +: Operation on project-local configuration +- `--system (-s)` +: Operation on system configuration + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +List configuration values + +Example: `pixi config list default-channels` + + +--8<-- "docs/reference/cli/pixi/config/list_extender.md:example" diff --git a/docs/reference/cli/pixi/config/list_extender.md b/docs/reference/cli/pixi/config/list_extender.md new file mode 100644 index 0000000000..3739222d85 --- /dev/null +++ b/docs/reference/cli/pixi/config/list_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi config list default-channels +pixi config list --json +pixi config list --system +pixi config list -g +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/config/prepend.md b/docs/reference/cli/pixi/config/prepend.md new file mode 100644 index 0000000000..65bdeb1dc1 --- /dev/null +++ b/docs/reference/cli/pixi/config/prepend.md @@ -0,0 +1,40 @@ + +# [pixi](../../pixi.md) [config](../config.md) prepend + +## About +Prepend a value to a list configuration key + +--8<-- "docs/reference/cli/pixi/config/prepend_extender.md:description" + +## Usage +``` +pixi config prepend [OPTIONS] +``` + +## Arguments +- `` +: Configuration key to set +
**required**: `true` +- `` +: Configuration value to (pre|ap)pend +
**required**: `true` + +## Options +- `--global (-g)` +: Operation on global configuration +- `--local (-l)` +: Operation on project-local configuration +- `--system (-s)` +: Operation on system configuration + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Prepend a value to a list configuration key + +Example: `pixi config prepend default-channels bioconda` + + +--8<-- "docs/reference/cli/pixi/config/prepend_extender.md:example" diff --git a/docs/reference/cli/pixi/config/prepend_extender.md b/docs/reference/cli/pixi/config/prepend_extender.md new file mode 100644 index 0000000000..7e0e350d8f --- /dev/null +++ b/docs/reference/cli/pixi/config/prepend_extender.md @@ -0,0 +1,8 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi config prepend default-channels conda-forge +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/config/set.md b/docs/reference/cli/pixi/config/set.md new file mode 100644 index 0000000000..580b9c1bee --- /dev/null +++ b/docs/reference/cli/pixi/config/set.md @@ -0,0 +1,39 @@ + +# [pixi](../../pixi.md) [config](../config.md) set + +## About +Set a configuration value + +--8<-- "docs/reference/cli/pixi/config/set_extender.md:description" + +## Usage +``` +pixi config set [OPTIONS] [VALUE] +``` + +## Arguments +- `` +: Configuration key to set +
**required**: `true` +- `` +: Configuration value to set (key will be unset if value not provided) + +## Options +- `--global (-g)` +: Operation on global configuration +- `--local (-l)` +: Operation on project-local configuration +- `--system (-s)` +: Operation on system configuration + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Set a configuration value + +Example: `pixi config set default-channels '["conda-forge", "bioconda"]'` + + +--8<-- "docs/reference/cli/pixi/config/set_extender.md:example" diff --git a/docs/reference/cli/pixi/config/set_extender.md b/docs/reference/cli/pixi/config/set_extender.md new file mode 100644 index 0000000000..0a266ee0a8 --- /dev/null +++ b/docs/reference/cli/pixi/config/set_extender.md @@ -0,0 +1,14 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi config set default-channels '["conda-forge", "bioconda"]' +pixi config set --global mirrors '{"https://conda.anaconda.org/": ["https://prefix.dev/conda-forge"]}' +pixi config set repodata-config.disable-zstd true --system +pixi config set --global detached-environments "/opt/pixi/envs" +pixi config set detached-environments false +pixi config set s3-options.my-bucket '{"endpoint-url": "http://localhost:9000", "force-path-style": true, "region": "auto"}' +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/config/unset.md b/docs/reference/cli/pixi/config/unset.md new file mode 100644 index 0000000000..d240753650 --- /dev/null +++ b/docs/reference/cli/pixi/config/unset.md @@ -0,0 +1,37 @@ + +# [pixi](../../pixi.md) [config](../config.md) unset + +## About +Unset a configuration value + +--8<-- "docs/reference/cli/pixi/config/unset_extender.md:description" + +## Usage +``` +pixi config unset [OPTIONS] +``` + +## Arguments +- `` +: Configuration key to unset +
**required**: `true` + +## Options +- `--global (-g)` +: Operation on global configuration +- `--local (-l)` +: Operation on project-local configuration +- `--system (-s)` +: Operation on system configuration + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Unset a configuration value + +Example: `pixi config unset default-channels` + + +--8<-- "docs/reference/cli/pixi/config/unset_extender.md:example" diff --git a/docs/reference/cli/pixi/config/unset_extender.md b/docs/reference/cli/pixi/config/unset_extender.md new file mode 100644 index 0000000000..7f7116753b --- /dev/null +++ b/docs/reference/cli/pixi/config/unset_extender.md @@ -0,0 +1,10 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi config unset default-channels +pixi config unset --global mirrors +pixi config unset repodata-config.disable-zstd --system +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/exec.md b/docs/reference/cli/pixi/exec.md new file mode 100644 index 0000000000..b903ca055e --- /dev/null +++ b/docs/reference/cli/pixi/exec.md @@ -0,0 +1,46 @@ + +# [pixi](../pixi.md) exec + +## About +Run a command and install it in a temporary environment + +--8<-- "docs/reference/cli/pixi/exec_extender.md:description" + +## Usage +``` +pixi exec [OPTIONS] [COMMAND]... +``` + +## Arguments +- `` +: The executable to run, followed by any arguments + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--channel (-c) ` +: The channels to consider as a name or a url. Multiple channels can be specified by using this field multiple times +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--force-reinstall` +: If specified a new environment is always created even if one already exists +- `--platform (-p) ` +: The platform to create the environment for +
**default**: `current_platform` +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--spec (-s) ` +: Matchspecs of packages to install. If this is not provided, the package is guessed from the command +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Description +Run a command and install it in a temporary environment. + +Remove the temporary environments with `pixi clean cache --exec`. + + +--8<-- "docs/reference/cli/pixi/exec_extender.md:example" diff --git a/docs/reference/cli/pixi/exec_extender.md b/docs/reference/cli/pixi/exec_extender.md new file mode 100644 index 0000000000..43af63f86f --- /dev/null +++ b/docs/reference/cli/pixi/exec_extender.md @@ -0,0 +1,18 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi exec python + +# Add a constraint to the python version +pixi exec -s python=3.9 python + +# Run ipython and include the py-rattler package in the environment +pixi exec -s ipython -s py-rattler ipython + +# Force reinstall to recreate the environment and get the latest package versions +pixi exec --force-reinstall -s ipython -s py-rattler ipython +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/global.md b/docs/reference/cli/pixi/global.md new file mode 100644 index 0000000000..79a7b9125e --- /dev/null +++ b/docs/reference/cli/pixi/global.md @@ -0,0 +1,34 @@ + +# [pixi](../pixi.md) global + +## About +Subcommand for global package management actions + +--8<-- "docs/reference/cli/pixi/global_extender.md:description" + +## Usage +``` +pixi global +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`add`](global/add.md) | Adds dependencies to an environment | +| [`edit`](global/edit.md) | Edit the global manifest file | +| [`install`](global/install.md) | Installs the defined packages in a globally accessible location and exposes their command line applications. | +| [`uninstall`](global/uninstall.md) | Uninstalls environments from the global environment. | +| [`remove`](global/remove.md) | Removes dependencies from an environment | +| [`list`](global/list.md) | Lists all packages previously installed into a globally accessible location via `pixi global install`. | +| [`sync`](global/sync.md) | Sync global manifest with installed environments | +| [`expose`](global/expose.md) | Interact with the exposure of binaries in the global environment | +| [`update`](global/update.md) | Updates environments in the global environment | + + +## Description +Subcommand for global package management actions. + +Install packages on the user level. Into to the [`$PIXI_HOME`] directory, which defaults to `~/.pixi`. + + +--8<-- "docs/reference/cli/pixi/global_extender.md:example" diff --git a/docs/reference/cli/pixi/global/add.md b/docs/reference/cli/pixi/global/add.md new file mode 100644 index 0000000000..4fffc6056e --- /dev/null +++ b/docs/reference/cli/pixi/global/add.md @@ -0,0 +1,46 @@ + +# [pixi](../../pixi.md) [global](../global.md) add + +## About +Adds dependencies to an environment + +--8<-- "docs/reference/cli/pixi/global/add_extender.md:description" + +## Usage +``` +pixi global add [OPTIONS] --environment ... +``` + +## Arguments +- `` +: Specifies the packages that are to be added to the environment +
**required**: `true` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: Specifies the environment that the dependencies need to be added to +
**required**: `true` +- `--expose ` +: Add one or more mapping which describe which executables are exposed. The syntax is `exposed_name=executable_name`, so for example `python3.10=python`. Alternatively, you can input only an executable_name and `executable_name=executable_name` is assumed +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Description +Adds dependencies to an environment + +Example: + +- `pixi global add --environment python numpy` +- `pixi global add --environment my_env pytest pytest-cov --expose pytest=pytest` + + +--8<-- "docs/reference/cli/pixi/global/add_extender.md:example" diff --git a/docs/reference/cli/pixi/global/add_extender.md b/docs/reference/cli/pixi/global/add_extender.md new file mode 100644 index 0000000000..21150153f3 --- /dev/null +++ b/docs/reference/cli/pixi/global/add_extender.md @@ -0,0 +1,12 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi global add python=3.9.* --environment my-env +pixi global add python=3.9.* --expose py39=python3.9 --environment my-env +pixi global add numpy matplotlib --environment my-env +pixi global add numpy matplotlib --expose np=python3.9 --environment my-env +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/global/edit.md b/docs/reference/cli/pixi/global/edit.md new file mode 100644 index 0000000000..6e07a5ad64 --- /dev/null +++ b/docs/reference/cli/pixi/global/edit.md @@ -0,0 +1,25 @@ + +# [pixi](../../pixi.md) [global](../global.md) edit + +## About +Edit the global manifest file + +--8<-- "docs/reference/cli/pixi/global/edit_extender.md:description" + +## Usage +``` +pixi global edit [EDITOR] +``` + +## Arguments +- `` +: The editor to use, defaults to `EDITOR` environment variable or `nano` on Unix and `notepad` on Windows +
**env**: `EDITOR` + +## Description +Edit the global manifest file + +Opens your editor to edit the global manifest file. + + +--8<-- "docs/reference/cli/pixi/global/edit_extender.md:example" diff --git a/docs/reference/cli/pixi/global/edit_extender.md b/docs/reference/cli/pixi/global/edit_extender.md new file mode 100644 index 0000000000..12d57fe31c --- /dev/null +++ b/docs/reference/cli/pixi/global/edit_extender.md @@ -0,0 +1,12 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi global edit +pixi global edit code +pixi global edit vim +``` + + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/global/expose.md b/docs/reference/cli/pixi/global/expose.md new file mode 100644 index 0000000000..03856f8a5b --- /dev/null +++ b/docs/reference/cli/pixi/global/expose.md @@ -0,0 +1,29 @@ + +# [pixi](../../pixi.md) [global](../global.md) expose + +## About +Interact with the exposure of binaries in the global environment + +--8<-- "docs/reference/cli/pixi/global/expose_extender.md:description" + +## Usage +``` +pixi global expose +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`add`](expose/add.md) | Add exposed binaries from an environment to your global environment | +| [`remove`](expose/remove.md) | Remove exposed binaries from the global environment | + + +## Description +Interact with the exposure of binaries in the global environment + +`pixi global expose add python310=python3.10 --environment myenv` will expose the `python3.10` executable as `python310` from the environment `myenv` + +`pixi global expose remove python310 --environment myenv` will remove the exposed name `python310` from the environment `myenv` + + +--8<-- "docs/reference/cli/pixi/global/expose_extender.md:example" diff --git a/docs/reference/cli/pixi/global/expose/add.md b/docs/reference/cli/pixi/global/expose/add.md new file mode 100644 index 0000000000..dea217371a --- /dev/null +++ b/docs/reference/cli/pixi/global/expose/add.md @@ -0,0 +1,43 @@ + +# [pixi](../../../pixi.md) [global](../../global.md) [expose](../expose.md) add + +## About +Add exposed binaries from an environment to your global environment + +--8<-- "docs/reference/cli/pixi/global/expose/add_extender.md:description" + +## Usage +``` +pixi global expose add [OPTIONS] --environment [MAPPINGS]... +``` + +## Arguments +- `` +: Add one or more mapping which describe which executables are exposed. The syntax is `exposed_name=executable_name`, so for example `python3.10=python`. Alternatively, you can input only an executable_name and `executable_name=executable_name` is assumed + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: The environment to which the binaries should be exposed +
**required**: `true` +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Description +Add exposed binaries from an environment to your global environment + +Example: + +- `pixi global expose add python310=python3.10 python3=python3 --environment myenv` +- `pixi global add --environment my_env pytest pytest-cov --expose pytest=pytest` + + +--8<-- "docs/reference/cli/pixi/global/expose/add_extender.md:example" diff --git a/docs/reference/cli/pixi/global/expose/add_extender.md b/docs/reference/cli/pixi/global/expose/add_extender.md new file mode 100644 index 0000000000..c47ab9a6cd --- /dev/null +++ b/docs/reference/cli/pixi/global/expose/add_extender.md @@ -0,0 +1,9 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi global expose add python --environment my-env +pixi global expose add py310=python3.10 --environment python +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/global/expose/remove.md b/docs/reference/cli/pixi/global/expose/remove.md new file mode 100644 index 0000000000..8e5c876954 --- /dev/null +++ b/docs/reference/cli/pixi/global/expose/remove.md @@ -0,0 +1,37 @@ + +# [pixi](../../../pixi.md) [global](../../global.md) [expose](../expose.md) remove + +## About +Remove exposed binaries from the global environment + +--8<-- "docs/reference/cli/pixi/global/expose/remove_extender.md:description" + +## Usage +``` +pixi global expose remove [OPTIONS] [EXPOSED_NAMES]... +``` + +## Arguments +- `` +: The exposed names that should be removed + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Description +Remove exposed binaries from the global environment + +`pixi global expose remove python310 python3 --environment myenv` will remove the exposed names `python310` and `python3` from the environment `myenv` + + +--8<-- "docs/reference/cli/pixi/global/expose/remove_extender.md:example" diff --git a/docs/reference/cli/pixi/global/expose/remove_extender.md b/docs/reference/cli/pixi/global/expose/remove_extender.md new file mode 100644 index 0000000000..9e24144326 --- /dev/null +++ b/docs/reference/cli/pixi/global/expose/remove_extender.md @@ -0,0 +1,9 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi global expose remove python +pixi global expose remove py310 python3 +``` +--8<-- [end:exampl diff --git a/docs/reference/cli/pixi/global/install.md b/docs/reference/cli/pixi/global/install.md new file mode 100644 index 0000000000..e411c0cbbd --- /dev/null +++ b/docs/reference/cli/pixi/global/install.md @@ -0,0 +1,57 @@ + +# [pixi](../../pixi.md) [global](../global.md) install + +## About +Installs the defined packages in a globally accessible location and exposes their command line applications. + +--8<-- "docs/reference/cli/pixi/global/install_extender.md:description" + +## Usage +``` +pixi global install [OPTIONS] ... +``` + +## Arguments +- `` +: Specifies the packages that are to be installed +
**required**: `true` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--channel (-c) ` +: The channels to consider as a name or a url. Multiple channels can be specified by using this field multiple times +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: Ensures that all packages will be installed in the same environment +- `--expose ` +: Add one or more mapping which describe which executables are exposed. The syntax is `exposed_name=executable_name`, so for example `python3.10=python`. Alternatively, you can input only an executable_name and `executable_name=executable_name` is assumed +- `--force-reinstall` +: Specifies that the packages should be reinstalled even if they are already installed +- `--no-shortcut` +: Specifies that no shortcuts should be created for the installed packages +- `--platform (-p) ` +: +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server +- `--with ` +: Add additional dependencies to the environment. Their executables will not be exposed + +## Description +Installs the defined packages in a globally accessible location and exposes their command line applications. + +Example: + +- `pixi global install starship nushell ripgrep bat` +- `pixi global install jupyter --with polars` +- `pixi global install --expose python3.8=python python=3.8` +- `pixi global install --environment science --expose jupyter --expose ipython jupyter ipython polars` + + +--8<-- "docs/reference/cli/pixi/global/install_extender.md:example" diff --git a/docs/reference/cli/pixi/global/install_extender.md b/docs/reference/cli/pixi/global/install_extender.md new file mode 100644 index 0000000000..80091396fd --- /dev/null +++ b/docs/reference/cli/pixi/global/install_extender.md @@ -0,0 +1,43 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi global install ruff +# Multiple packages can be installed at once +pixi global install starship rattler-build +# Specify the channel(s) +pixi global install --channel conda-forge --channel bioconda trackplot +# Or in a more concise form +pixi global install -c conda-forge -c bioconda trackplot + +# Support full conda matchspec +pixi global install python=3.9.* +pixi global install "python [version='3.11.0', build_number=1]" +pixi global install "python [version='3.11.0', build=he550d4f_1_cpython]" +pixi global install python=3.11.0=h10a6764_1_cpython + +# Install for a specific platform, only useful on osx-arm64 +pixi global install --platform osx-64 ruff + +# Install a package with all its executables exposed, together with additional packages that don't expose anything +pixi global install ipython --with numpy --with scipy + +# Install into a specific environment name and expose all executables +pixi global install --environment data-science ipython jupyterlab numpy matplotlib + +# Expose the binary under a different name +pixi global install --expose "py39=python3.9" "python=3.9.*" +``` +--8<-- [end:example] + +--8<-- [start:description] + +!!! tip +Running `osx-64` on Apple Silicon will install the Intel binary but run it using [Rosetta](https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment) +``` +pixi global install --platform osx-64 ruff +``` + +After using global install, you can use the package you installed anywhere on your system. +--8<-- [end:description] diff --git a/docs/reference/cli/pixi/global/list.md b/docs/reference/cli/pixi/global/list.md new file mode 100644 index 0000000000..d8b4ab0753 --- /dev/null +++ b/docs/reference/cli/pixi/global/list.md @@ -0,0 +1,52 @@ + +# [pixi](../../pixi.md) [global](../global.md) list + +## About +Lists all packages previously installed into a globally accessible location via `pixi global install`. + +--8<-- "docs/reference/cli/pixi/global/list_extender.md:description" + +## Usage +``` +pixi global list [OPTIONS] [REGEX] +``` + +## Arguments +- `` +: List only packages matching a regular expression. Without regex syntax it acts like a `contains` filter + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: The name of the environment to list +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--sort-by ` +: Sorting strategy for the package table of an environment +
**default**: `name` +
**options**: `size`, `name` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Description +Lists all packages previously installed into a globally accessible location via `pixi global install`. + +All environments: + +- Yellow: the binaries that are exposed. +- Green: the packages that are explicit dependencies of the environment. +- Blue: the version of the installed package. +- Cyan: the name of the environment. + +Per environment: + +- Green: packages that are explicitly installed. + + +--8<-- "docs/reference/cli/pixi/global/list_extender.md:example" diff --git a/docs/reference/cli/pixi/global/list_extender.md b/docs/reference/cli/pixi/global/list_extender.md new file mode 100644 index 0000000000..9dcf3425bb --- /dev/null +++ b/docs/reference/cli/pixi/global/list_extender.md @@ -0,0 +1,52 @@ +--8<-- [start:example] + +## Examples + +We'll only show the dependencies and exposed binaries of the environment if they differ from the environment name. +Here is an example of a few installed packages: + +``` +pixi global list +``` +Results in: +``` +Global environments at /home/user/.pixi: +├── gh: 2.57.0 +├── pixi-pack: 0.1.8 +├── python: 3.11.0 +│ └─ exposes: 2to3, 2to3-3.11, idle3, idle3.11, pydoc, pydoc3, pydoc3.11, python, python3, python3-config, python3.1, python3.11, python3.11-config +├── rattler-build: 0.22.0 +├── ripgrep: 14.1.0 +│ └─ exposes: rg +├── vim: 9.1.0611 +│ └─ exposes: ex, rview, rvim, view, vim, vimdiff, vimtutor, xxd +└── zoxide: 0.9.6 +``` + +Here is an example of list of a single environment: +``` +pixi g list -e pixi-pack +``` +Results in: +``` +The 'pixi-pack' environment has 8 packages: +Package Version Build Size +_libgcc_mutex 0.1 conda_forge 2.5 KiB +_openmp_mutex 4.5 2_gnu 23.1 KiB +ca-certificates 2024.8.30 hbcca054_0 155.3 KiB +libgcc 14.1.0 h77fa898_1 826.5 KiB +libgcc-ng 14.1.0 h69a702a_1 50.9 KiB +libgomp 14.1.0 h77fa898_1 449.4 KiB +openssl 3.3.2 hb9d3cd8_0 2.8 MiB +pixi-pack 0.1.8 hc762bcd_0 4.3 MiB +Package Version Build Size + +Exposes: +pixi-pack +Channels: +conda-forge +Platform: linux-64 +``` + + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/global/remove.md b/docs/reference/cli/pixi/global/remove.md new file mode 100644 index 0000000000..886aa7660c --- /dev/null +++ b/docs/reference/cli/pixi/global/remove.md @@ -0,0 +1,42 @@ + +# [pixi](../../pixi.md) [global](../global.md) remove + +## About +Removes dependencies from an environment + +--8<-- "docs/reference/cli/pixi/global/remove_extender.md:description" + +## Usage +``` +pixi global remove [OPTIONS] ... +``` + +## Arguments +- `` +: Specifies the packages that are to be removed +
**required**: `true` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: Specifies the environment that the dependencies need to be removed from +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Description +Removes dependencies from an environment + +Use `pixi global uninstall` to remove the whole environment + +Example: `pixi global remove --environment python numpy` + + +--8<-- "docs/reference/cli/pixi/global/remove_extender.md:example" diff --git a/docs/reference/cli/pixi/global/remove_extender.md b/docs/reference/cli/pixi/global/remove_extender.md new file mode 100644 index 0000000000..e09ff80463 --- /dev/null +++ b/docs/reference/cli/pixi/global/remove_extender.md @@ -0,0 +1,9 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi global remove -e my-env package1 package2 +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/global/sync.md b/docs/reference/cli/pixi/global/sync.md new file mode 100644 index 0000000000..c622b82352 --- /dev/null +++ b/docs/reference/cli/pixi/global/sync.md @@ -0,0 +1,27 @@ + +# [pixi](../../pixi.md) [global](../global.md) sync + +## About +Sync global manifest with installed environments + +--8<-- "docs/reference/cli/pixi/global/sync_extender.md:description" + +## Usage +``` +pixi global sync [OPTIONS] +``` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +--8<-- "docs/reference/cli/pixi/global/sync_extender.md:example" diff --git a/docs/reference/cli/pixi/global/uninstall.md b/docs/reference/cli/pixi/global/uninstall.md new file mode 100644 index 0000000000..c2a5821ddb --- /dev/null +++ b/docs/reference/cli/pixi/global/uninstall.md @@ -0,0 +1,38 @@ + +# [pixi](../../pixi.md) [global](../global.md) uninstall + +## About +Uninstalls environments from the global environment. + +--8<-- "docs/reference/cli/pixi/global/uninstall_extender.md:description" + +## Usage +``` +pixi global uninstall [OPTIONS] ... +``` + +## Arguments +- `` +: Specifies the environments that are to be removed +
**required**: `true` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Description +Uninstalls environments from the global environment. + +Example: `pixi global uninstall pixi-pack rattler-build` + + +--8<-- "docs/reference/cli/pixi/global/uninstall_extender.md:example" diff --git a/docs/reference/cli/pixi/global/uninstall_extender.md b/docs/reference/cli/pixi/global/uninstall_extender.md new file mode 100644 index 0000000000..7a47935a17 --- /dev/null +++ b/docs/reference/cli/pixi/global/uninstall_extender.md @@ -0,0 +1,10 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi global uninstall my-env +pixi global uninstall pixi-pack rattler-build +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/global/update.md b/docs/reference/cli/pixi/global/update.md new file mode 100644 index 0000000000..dd04154050 --- /dev/null +++ b/docs/reference/cli/pixi/global/update.md @@ -0,0 +1,31 @@ + +# [pixi](../../pixi.md) [global](../global.md) update + +## About +Updates environments in the global environment + +--8<-- "docs/reference/cli/pixi/global/update_extender.md:description" + +## Usage +``` +pixi global update [OPTIONS] [ENVIRONMENTS]... +``` + +## Arguments +- `` +: Specifies the environments that are to be updated + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +--8<-- "docs/reference/cli/pixi/global/update_extender.md:example" diff --git a/docs/reference/cli/pixi/global/update_extender.md b/docs/reference/cli/pixi/global/update_extender.md new file mode 100644 index 0000000000..5a6514a76d --- /dev/null +++ b/docs/reference/cli/pixi/global/update_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi global update +pixi global update pixi-pack +pixi global update bat rattler-build +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/global/upgrade-all.md b/docs/reference/cli/pixi/global/upgrade-all.md new file mode 100644 index 0000000000..63a287a28e --- /dev/null +++ b/docs/reference/cli/pixi/global/upgrade-all.md @@ -0,0 +1,32 @@ + +# [pixi](../../pixi.md) [global](../global.md) upgrade-all + +## About +Upgrade all globally installed packages This command has been removed, please use `pixi global update` instead + +--8<-- "docs/reference/cli/pixi/global/upgrade-all_extender.md:description" + +## Usage +``` +pixi global upgrade-all [OPTIONS] +``` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--channel (-c) ` +: The channels to consider as a name or a url. Multiple channels can be specified by using this field multiple times +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--platform ` +: The platform to install the package for +
**default**: `current_platform` +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +--8<-- "docs/reference/cli/pixi/global/upgrade-all_extender.md:example" diff --git a/docs/reference/cli/pixi/global/upgrade.md b/docs/reference/cli/pixi/global/upgrade.md new file mode 100644 index 0000000000..be4486b0a6 --- /dev/null +++ b/docs/reference/cli/pixi/global/upgrade.md @@ -0,0 +1,25 @@ + +# [pixi](../../pixi.md) [global](../global.md) upgrade + +## About +Upgrade specific package which is installed globally. This command has been removed, please use `pixi global update` instead + +--8<-- "docs/reference/cli/pixi/global/upgrade_extender.md:description" + +## Usage +``` +pixi global upgrade [OPTIONS] [SPECS]... +``` + +## Arguments +- `` +: Specifies the packages to upgrade + +## Options +- `--channel (-c) ` +: The channels to consider as a name or a url. Multiple channels can be specified by using this field multiple times +- `--platform ` +: The platform to install the package for +
**default**: `current_platform` + +--8<-- "docs/reference/cli/pixi/global/upgrade_extender.md:example" diff --git a/docs/reference/cli/pixi/global_extender.md b/docs/reference/cli/pixi/global_extender.md new file mode 100644 index 0000000000..2cb7765352 --- /dev/null +++ b/docs/reference/cli/pixi/global_extender.md @@ -0,0 +1,10 @@ +--8<-- [start:description] + +All commands in this section are used to manage global installations of packages and environments through the global manifest. +More info on the global manifest can be found [here](../../../global_tools/introduction.md). + +!!! tip + Binaries and environments installed globally are stored in `~/.pixi` + by default, this can be changed by setting the `PIXI_HOME` environment + variable. +--8<-- [end:description] diff --git a/docs/reference/cli/pixi/info.md b/docs/reference/cli/pixi/info.md new file mode 100644 index 0000000000..39ac29fac7 --- /dev/null +++ b/docs/reference/cli/pixi/info.md @@ -0,0 +1,24 @@ + +# [pixi](../pixi.md) info + +## About +Information about the system, project and environments for the current machine + +--8<-- "docs/reference/cli/pixi/info_extender.md:description" + +## Usage +``` +pixi info [OPTIONS] +``` + +## Options +- `--extended` +: Show cache and environment size +- `--json` +: Whether to show the output as JSON or not + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/info_extender.md:example" diff --git a/docs/reference/cli/pixi/info_extender.md b/docs/reference/cli/pixi/info_extender.md new file mode 100644 index 0000000000..05cdc78284 --- /dev/null +++ b/docs/reference/cli/pixi/info_extender.md @@ -0,0 +1,15 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi info +pixi info --json +pixi info --extended +``` + +--8<-- [end:example] + +--8<-- [start:description] +More information [here](../../../advanced/explain_info_command.md). +--8<-- [end:description] diff --git a/docs/reference/cli/pixi/init.md b/docs/reference/cli/pixi/init.md new file mode 100644 index 0000000000..68c0c73772 --- /dev/null +++ b/docs/reference/cli/pixi/init.md @@ -0,0 +1,43 @@ + +# [pixi](../pixi.md) init + +## About +Creates a new workspace + +--8<-- "docs/reference/cli/pixi/init_extender.md:description" + +## Usage +``` +pixi init [OPTIONS] [PATH] +``` + +## Arguments +- `` +: Where to place the workspace (defaults to current path) +
**default**: `.` + +## Options +- `--channel (-c) ` +: Channels to use in the workspace +- `--format ` +: The manifest format to create +
**options**: `pixi`, `pyproject` +- `--import (-i) ` +: Environment.yml file to bootstrap the workspace +- `--platform (-p) ` +: Platforms that the workspace supports +- `--scm (-s) ` +: Source Control Management used for this workspace +
**options**: `github`, `gitlab`, `codeberg` + +## Description +Creates a new workspace + +This command is used to create a new workspace. It prepares a manifest and some helpers for the user to start working. + +As pixi can both work with `pixi.toml` and `pyproject.toml` files, the user can choose which one to use with `--format`. + +You can import an existing conda environment file with the `--import` flag. + + +--8<-- "docs/reference/cli/pixi/init_extender.md:example" diff --git a/docs/reference/cli/pixi/init_extender.md b/docs/reference/cli/pixi/init_extender.md new file mode 100644 index 0000000000..211fc1c623 --- /dev/null +++ b/docs/reference/cli/pixi/init_extender.md @@ -0,0 +1,36 @@ +--8<-- [start:description] + +!!! info "Importing an environment.yml" + When importing an environment, the `pixi.toml` will be created with the dependencies from the environment file. + The `pixi.lock` will be created when you install the environment. + We don't support `git+` urls as dependencies for pip packages and for the `defaults` channel we use `main`, `r` and `msys2` as the default channels. + + +--8<-- [end:description] + + +--8<-- [start:example] + +## Examples + +```shell +pixi init myproject # (1)! +pixi init ~/myproject # (2)! +pixi init # (3)! +pixi init --channel conda-forge --channel bioconda myproject # (4)! +pixi init --platform osx-64 --platform linux-64 myproject # (5)! +pixi init --import environment.yml # (6)! +pixi init --format pyproject # (7)! +pixi init --format pixi --scm gitlab # (8)! +``` + +1. Initializes a new project in the `myproject` directory, relative to the current directory. +2. Initializes a new project in the `~/myproject` directory, absolute path. +3. Initializes a new project in the current directory. +4. Initializes a new project with the specified channels. +5. Initializes a new project with the specified platforms. +6. Initializes a new project with the `dependencies` and `channels` from the `environment.yml` file. +7. Initializes a new project with the `pyproject.toml` format. +8. Initializes a new project with the `pixi.toml` format and the `gitlab` SCM. + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/install.md b/docs/reference/cli/pixi/install.md new file mode 100644 index 0000000000..5ace4b792e --- /dev/null +++ b/docs/reference/cli/pixi/install.md @@ -0,0 +1,55 @@ + +# [pixi](../pixi.md) install + +## About +Install an environment, both updating the lockfile and installing the environment + +--8<-- "docs/reference/cli/pixi/install_extender.md:description" + +## Usage +``` +pixi install [OPTIONS] +``` + +## Options +- `--all (-a)` +: Install all environments +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: The environment to install +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Install an environment, both updating the lockfile and installing the environment. + +This command installs an environment, if the lockfile is not up-to-date it will be updated. + +`pixi install` only installs one environment at a time, if you have multiple environments you can select the right one with the `--environment` flag. If you don't provide an environment, the `default` environment will be installed. + +If you want to install all environments, you can use the `--all` flag. + +Running `pixi install` is not required before running other commands like `pixi run` or `pixi shell`. These commands will automatically install the environment if it is not already installed. + +You can use `pixi clean` to remove the installed environments and start fresh. + + +--8<-- "docs/reference/cli/pixi/install_extender.md:example" diff --git a/docs/reference/cli/pixi/install_extender.md b/docs/reference/cli/pixi/install_extender.md new file mode 100644 index 0000000000..33b2730574 --- /dev/null +++ b/docs/reference/cli/pixi/install_extender.md @@ -0,0 +1,20 @@ +---8<--- [start:example] + +## Examples + +```shell +pixi install # (1)! +pixi install --manifest-path ~/myproject/pixi.toml # (2)! +pixi install --frozen # (3)! +pixi install --locked # (4)! +pixi install --environment lint # (5)! +pixi install -e lint # (5)! +``` + +1. This will install the default environment. +2. This will install the default environment from the manifest file at the given path. +3. This will install the environment from the lockfile without updating the lockfile. +4. This will install the environment from the lockfile without updating the lockfile and ensuring the environment is locked correctly. +5. This will install the `lint` environment. + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/list.md b/docs/reference/cli/pixi/list.md new file mode 100644 index 0000000000..6aff3a4581 --- /dev/null +++ b/docs/reference/cli/pixi/list.md @@ -0,0 +1,67 @@ + +# [pixi](../pixi.md) list + +## About +List project's packages + +--8<-- "docs/reference/cli/pixi/list_extender.md:description" + +## Usage +``` +pixi list [OPTIONS] [REGEX] +``` + +## Arguments +- `` +: List only packages matching a regular expression + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: The environment to list packages for. Defaults to the default environment +- `--explicit (-x)` +: Only list packages that are explicitly defined in the project +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--json` +: Whether to output in json format +- `--json-pretty` +: Whether to output in pretty json format +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--platform ` +: The platform to list packages for. Defaults to the current platform +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--sort-by ` +: Sorting strategy +
**default**: `name` +
**options**: `size`, `name`, `kind` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +List project's packages. + +Highlighted packages are explicit dependencies. + + +--8<-- "docs/reference/cli/pixi/list_extender.md:example" diff --git a/docs/reference/cli/pixi/list_extender.md b/docs/reference/cli/pixi/list_extender.md new file mode 100644 index 0000000000..07698ba2b2 --- /dev/null +++ b/docs/reference/cli/pixi/list_extender.md @@ -0,0 +1,47 @@ +--8<-- [start:example] + +## Examples + + +```shell +pixi list +pixi list py +pixi list --json-pretty +pixi list --explicit +pixi list --sort-by size +pixi list --platform win-64 +pixi list --environment cuda +pixi list --frozen +pixi list --locked +pixi list --no-install +``` + +Output will look like this, where `python` will be green as it is the package that was explicitly added to the [manifest file](../../pixi_manifest.md): + +```shell +➜ pixi list + Package Version Build Size Kind Source + _libgcc_mutex 0.1 conda_forge 2.5 KiB conda _libgcc_mutex-0.1-conda_forge.tar.bz2 + _openmp_mutex 4.5 2_gnu 23.1 KiB conda _openmp_mutex-4.5-2_gnu.tar.bz2 + bzip2 1.0.8 hd590300_5 248.3 KiB conda bzip2-1.0.8-hd590300_5.conda + ca-certificates 2023.11.17 hbcca054_0 150.5 KiB conda ca-certificates-2023.11.17-hbcca054_0.conda + ld_impl_linux-64 2.40 h41732ed_0 688.2 KiB conda ld_impl_linux-64-2.40-h41732ed_0.conda + libexpat 2.5.0 hcb278e6_1 76.2 KiB conda libexpat-2.5.0-hcb278e6_1.conda + libffi 3.4.2 h7f98852_5 56.9 KiB conda libffi-3.4.2-h7f98852_5.tar.bz2 + libgcc-ng 13.2.0 h807b86a_4 755.7 KiB conda libgcc-ng-13.2.0-h807b86a_4.conda + libgomp 13.2.0 h807b86a_4 412.2 KiB conda libgomp-13.2.0-h807b86a_4.conda + libnsl 2.0.1 hd590300_0 32.6 KiB conda libnsl-2.0.1-hd590300_0.conda + libsqlite 3.44.2 h2797004_0 826 KiB conda libsqlite-3.44.2-h2797004_0.conda + libuuid 2.38.1 h0b41bf4_0 32.8 KiB conda libuuid-2.38.1-h0b41bf4_0.conda + libxcrypt 4.4.36 hd590300_1 98 KiB conda libxcrypt-4.4.36-hd590300_1.conda + libzlib 1.2.13 hd590300_5 60.1 KiB conda libzlib-1.2.13-hd590300_5.conda + ncurses 6.4 h59595ed_2 863.7 KiB conda ncurses-6.4-h59595ed_2.conda + openssl 3.2.0 hd590300_1 2.7 MiB conda openssl-3.2.0-hd590300_1.conda + python 3.12.1 hab00c5b_1_cpython 30.8 MiB conda python-3.12.1-hab00c5b_1_cpython.conda + readline 8.2 h8228510_1 274.9 KiB conda readline-8.2-h8228510_1.conda + tk 8.6.13 noxft_h4845f30_101 3.2 MiB conda tk-8.6.13-noxft_h4845f30_101.conda + tzdata 2023d h0c530f3_0 116.8 KiB conda tzdata-2023d-h0c530f3_0.conda + xz 5.2.6 h166bdaf_0 408.6 KiB conda xz-5.2.6-h166bdaf_0.tar.bz2 +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/lock.md b/docs/reference/cli/pixi/lock.md new file mode 100644 index 0000000000..aafeea033e --- /dev/null +++ b/docs/reference/cli/pixi/lock.md @@ -0,0 +1,22 @@ + +# [pixi](../pixi.md) lock + +## About +Solve environment and update the lock file without installing the environments + +--8<-- "docs/reference/cli/pixi/lock_extender.md:description" + +## Usage +``` +pixi lock [OPTIONS] +``` + +## Options +- `--json` +: Output the changes in JSON format + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/lock_extender.md:example" diff --git a/docs/reference/cli/pixi/lock_extender.md b/docs/reference/cli/pixi/lock_extender.md new file mode 100644 index 0000000000..9e955c6ab2 --- /dev/null +++ b/docs/reference/cli/pixi/lock_extender.md @@ -0,0 +1,11 @@ +---8<--- [start:example] + +## Examples + +```shell +pixi lock +pixi lock --manifest-path ~/myproject/pixi.toml +pixi lock --json +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project.md b/docs/reference/cli/pixi/project.md new file mode 100644 index 0000000000..84e5934d9b --- /dev/null +++ b/docs/reference/cli/pixi/project.md @@ -0,0 +1,31 @@ + +# [pixi](../pixi.md) project + +## About +Modify the project configuration file through the command line + +--8<-- "docs/reference/cli/pixi/project_extender.md:description" + +## Usage +``` +pixi project [OPTIONS] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`channel`](project/channel.md) | Commands to manage project channels | +| [`description`](project/description.md) | Commands to manage project description | +| [`platform`](project/platform.md) | Commands to manage project platforms | +| [`version`](project/version.md) | Commands to manage project version | +| [`environment`](project/environment.md) | Commands to manage project environments | +| [`export`](project/export.md) | Commands to export projects to other formats | +| [`name`](project/name.md) | Commands to manage project name | +| [`system-requirements`](project/system-requirements.md) | Commands to manage project environments | + + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project_extender.md:example" diff --git a/docs/reference/cli/pixi/project/channel.md b/docs/reference/cli/pixi/project/channel.md new file mode 100644 index 0000000000..d7d0cb5d97 --- /dev/null +++ b/docs/reference/cli/pixi/project/channel.md @@ -0,0 +1,22 @@ + +# [pixi](../../pixi.md) [project](../project.md) channel + +## About +Commands to manage project channels + +--8<-- "docs/reference/cli/pixi/project/channel_extender.md:description" + +## Usage +``` +pixi project channel +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`add`](channel/add.md) | Adds a channel to the project file and updates the lockfile | +| [`list`](channel/list.md) | List the channels in the project file | +| [`remove`](channel/remove.md) | Remove channel(s) from the project file and updates the lockfile | + + +--8<-- "docs/reference/cli/pixi/project/channel_extender.md:example" diff --git a/docs/reference/cli/pixi/project/channel/add.md b/docs/reference/cli/pixi/project/channel/add.md new file mode 100644 index 0000000000..9cfa48c6e8 --- /dev/null +++ b/docs/reference/cli/pixi/project/channel/add.md @@ -0,0 +1,54 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [channel](../channel.md) add + +## About +Adds a channel to the project file and updates the lockfile + +--8<-- "docs/reference/cli/pixi/project/channel/add_extender.md:description" + +## Usage +``` +pixi project channel add [OPTIONS] ... +``` + +## Arguments +- `` +: The channel name or URL +
**required**: `true` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--feature (-f) ` +: The name of the feature to modify +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--prepend` +: Add the channel(s) to the beginning of the channels list, making them the highest priority +- `--priority ` +: Specify the channel priority +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/channel/add_extender.md:example" diff --git a/docs/reference/cli/pixi/project/channel/add_extender.md b/docs/reference/cli/pixi/project/channel/add_extender.md new file mode 100644 index 0000000000..722f6ac978 --- /dev/null +++ b/docs/reference/cli/pixi/project/channel/add_extender.md @@ -0,0 +1,15 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi project channel add robostack +pixi project channel add bioconda conda-forge robostack +pixi project channel add file:///home/user/local_channel +pixi project channel add https://repo.prefix.dev/conda-forge +pixi project channel add --no-install robostack +pixi project channel add --feature cuda nvidia +pixi project channel add --prepend pytorch +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/channel/list.md b/docs/reference/cli/pixi/project/channel/list.md new file mode 100644 index 0000000000..ba7dc7eb68 --- /dev/null +++ b/docs/reference/cli/pixi/project/channel/list.md @@ -0,0 +1,22 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [channel](../channel.md) list + +## About +List the channels in the project file + +--8<-- "docs/reference/cli/pixi/project/channel/list_extender.md:description" + +## Usage +``` +pixi project channel list [OPTIONS] +``` + +## Options +- `--urls` +: Whether to display the channel's names or urls + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/channel/list_extender.md:example" diff --git a/docs/reference/cli/pixi/project/channel/list_extender.md b/docs/reference/cli/pixi/project/channel/list_extender.md new file mode 100644 index 0000000000..a5d23bf5d4 --- /dev/null +++ b/docs/reference/cli/pixi/project/channel/list_extender.md @@ -0,0 +1,21 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi project channel list +``` +``` +Environment: default +- conda-forge +``` + +```shell +pixi project channel list --urls +``` +```shell +Environment: default +- https://conda.anaconda.org/conda-forge/ +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/channel/remove.md b/docs/reference/cli/pixi/project/channel/remove.md new file mode 100644 index 0000000000..94188f3ccc --- /dev/null +++ b/docs/reference/cli/pixi/project/channel/remove.md @@ -0,0 +1,54 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [channel](../channel.md) remove + +## About +Remove channel(s) from the project file and updates the lockfile + +--8<-- "docs/reference/cli/pixi/project/channel/remove_extender.md:description" + +## Usage +``` +pixi project channel remove [OPTIONS] ... +``` + +## Arguments +- `` +: The channel name or URL +
**required**: `true` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--feature (-f) ` +: The name of the feature to modify +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--prepend` +: Add the channel(s) to the beginning of the channels list, making them the highest priority +- `--priority ` +: Specify the channel priority +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/channel/remove_extender.md:example" diff --git a/docs/reference/cli/pixi/project/channel/remove_extender.md b/docs/reference/cli/pixi/project/channel/remove_extender.md new file mode 100644 index 0000000000..c5439c935f --- /dev/null +++ b/docs/reference/cli/pixi/project/channel/remove_extender.md @@ -0,0 +1,12 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi project channel remove conda-forge +pixi project channel remove https://conda.anaconda.org/conda-forge/ +pixi project channel remove --no-install conda-forge +pixi project channel remove --feature cuda nvidia +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/description.md b/docs/reference/cli/pixi/project/description.md new file mode 100644 index 0000000000..8d984aa7ed --- /dev/null +++ b/docs/reference/cli/pixi/project/description.md @@ -0,0 +1,25 @@ + +# [pixi](../../pixi.md) [project](../project.md) description + +## About +Commands to manage project description + +--8<-- "docs/reference/cli/pixi/project/description_extender.md:description" + +## Usage +``` +pixi project description [OPTIONS] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`get`](description/get.md) | Get the project description | +| [`set`](description/set.md) | Set the project description | + + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/description_extender.md:example" diff --git a/docs/reference/cli/pixi/project/description/get.md b/docs/reference/cli/pixi/project/description/get.md new file mode 100644 index 0000000000..58e3e30921 --- /dev/null +++ b/docs/reference/cli/pixi/project/description/get.md @@ -0,0 +1,20 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [description](../description.md) get + +## About +Get the project description + +--8<-- "docs/reference/cli/pixi/project/description/get_extender.md:description" + +## Usage +``` +pixi project description get +``` + +## Description +Get the project description. + +Example: `pixi project description get` + + +--8<-- "docs/reference/cli/pixi/project/description/get_extender.md:example" diff --git a/docs/reference/cli/pixi/project/description/set.md b/docs/reference/cli/pixi/project/description/set.md new file mode 100644 index 0000000000..933cf7be35 --- /dev/null +++ b/docs/reference/cli/pixi/project/description/set.md @@ -0,0 +1,25 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [description](../description.md) set + +## About +Set the project description + +--8<-- "docs/reference/cli/pixi/project/description/set_extender.md:description" + +## Usage +``` +pixi project description set +``` + +## Arguments +- `` +: The project description +
**required**: `true` + +## Description +Set the project description. + +Example: `pixi project description set "My awesome project"` + + +--8<-- "docs/reference/cli/pixi/project/description/set_extender.md:example" diff --git a/docs/reference/cli/pixi/project/environment.md b/docs/reference/cli/pixi/project/environment.md new file mode 100644 index 0000000000..17e7dbf120 --- /dev/null +++ b/docs/reference/cli/pixi/project/environment.md @@ -0,0 +1,26 @@ + +# [pixi](../../pixi.md) [project](../project.md) environment + +## About +Commands to manage project environments + +--8<-- "docs/reference/cli/pixi/project/environment_extender.md:description" + +## Usage +``` +pixi project environment [OPTIONS] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`add`](environment/add.md) | Adds an environment to the manifest file | +| [`list`](environment/list.md) | List the environments in the manifest file | +| [`remove`](environment/remove.md) | Remove an environment from the manifest file | + + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/environment_extender.md:example" diff --git a/docs/reference/cli/pixi/project/environment/add.md b/docs/reference/cli/pixi/project/environment/add.md new file mode 100644 index 0000000000..58d8a7ff2e --- /dev/null +++ b/docs/reference/cli/pixi/project/environment/add.md @@ -0,0 +1,31 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [environment](../environment.md) add + +## About +Adds an environment to the manifest file + +--8<-- "docs/reference/cli/pixi/project/environment/add_extender.md:description" + +## Usage +``` +pixi project environment add [OPTIONS] +``` + +## Arguments +- `` +: The name of the environment to add +
**required**: `true` + +## Options +- `--feature (-f) ` +: Features to add to the environment +- `--force` +: Update the manifest even if the environment already exists +
**default**: `false` +- `--no-default-feature` +: Don't include the default feature in the environment +
**default**: `false` +- `--solve-group ` +: The solve-group to add the environment to + +--8<-- "docs/reference/cli/pixi/project/environment/add_extender.md:example" diff --git a/docs/reference/cli/pixi/project/environment/add_extender.md b/docs/reference/cli/pixi/project/environment/add_extender.md new file mode 100644 index 0000000000..27f10d5ef0 --- /dev/null +++ b/docs/reference/cli/pixi/project/environment/add_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi project environment add env1 --feature feature1 --feature feature2 +pixi project environment add env2 -f feature1 --solve-group test +pixi project environment add env3 -f feature1 --no-default-feature +pixi project environment add env3 -f feature1 --force +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/environment/list.md b/docs/reference/cli/pixi/project/environment/list.md new file mode 100644 index 0000000000..2b04cf56f8 --- /dev/null +++ b/docs/reference/cli/pixi/project/environment/list.md @@ -0,0 +1,14 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [environment](../environment.md) list + +## About +List the environments in the manifest file + +--8<-- "docs/reference/cli/pixi/project/environment/list_extender.md:description" + +## Usage +``` +pixi project environment list +``` + +--8<-- "docs/reference/cli/pixi/project/environment/list_extender.md:example" diff --git a/docs/reference/cli/pixi/project/environment/remove.md b/docs/reference/cli/pixi/project/environment/remove.md new file mode 100644 index 0000000000..d5374c334b --- /dev/null +++ b/docs/reference/cli/pixi/project/environment/remove.md @@ -0,0 +1,19 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [environment](../environment.md) remove + +## About +Remove an environment from the manifest file + +--8<-- "docs/reference/cli/pixi/project/environment/remove_extender.md:description" + +## Usage +``` +pixi project environment remove +``` + +## Arguments +- `` +: The name of the environment to remove +
**required**: `true` + +--8<-- "docs/reference/cli/pixi/project/environment/remove_extender.md:example" diff --git a/docs/reference/cli/pixi/project/export.md b/docs/reference/cli/pixi/project/export.md new file mode 100644 index 0000000000..16c27dfe44 --- /dev/null +++ b/docs/reference/cli/pixi/project/export.md @@ -0,0 +1,21 @@ + +# [pixi](../../pixi.md) [project](../project.md) export + +## About +Commands to export projects to other formats + +--8<-- "docs/reference/cli/pixi/project/export_extender.md:description" + +## Usage +``` +pixi project export +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`conda-explicit-spec`](export/conda-explicit-spec.md) | Export project environment to a conda explicit specification file | +| [`conda-environment`](export/conda-environment.md) | Export project environment to a conda environment.yaml file | + + +--8<-- "docs/reference/cli/pixi/project/export_extender.md:example" diff --git a/docs/reference/cli/pixi/project/export/conda-environment.md b/docs/reference/cli/pixi/project/export/conda-environment.md new file mode 100644 index 0000000000..5f04ea040c --- /dev/null +++ b/docs/reference/cli/pixi/project/export/conda-environment.md @@ -0,0 +1,28 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [export](../export.md) conda-environment + +## About +Export project environment to a conda environment.yaml file + +--8<-- "docs/reference/cli/pixi/project/export/conda-environment_extender.md:description" + +## Usage +``` +pixi project export conda-environment [OPTIONS] [OUTPUT_PATH] +``` + +## Arguments +- `` +: Explicit path to export the environment file to + +## Options +- `--environment (-e) ` +: The environment to render the environment file for. Defaults to the default environment +- `--platform (-p) ` +: The platform to render the environment file for. Defaults to the current platform + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/export/conda-environment_extender.md:example" diff --git a/docs/reference/cli/pixi/project/export/conda-environment_extender.md b/docs/reference/cli/pixi/project/export/conda-environment_extender.md new file mode 100644 index 0000000000..a5252fe683 --- /dev/null +++ b/docs/reference/cli/pixi/project/export/conda-environment_extender.md @@ -0,0 +1,14 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi project export conda-environment environment.yml +``` + +The [`environment.yml` file](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-from-an-environment-yml-file) can then be used to create a conda environment using conda/mamba: + +```shell +mamba create --name --file environment.yml +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/export/conda-explicit-spec.md b/docs/reference/cli/pixi/project/export/conda-explicit-spec.md new file mode 100644 index 0000000000..503890b29c --- /dev/null +++ b/docs/reference/cli/pixi/project/export/conda-explicit-spec.md @@ -0,0 +1,58 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [export](../export.md) conda-explicit-spec + +## About +Export project environment to a conda explicit specification file + +--8<-- "docs/reference/cli/pixi/project/export/conda-explicit-spec_extender.md:description" + +## Usage +``` +pixi project export conda-explicit-spec [OPTIONS] +``` + +## Arguments +- `` +: Output directory for rendered explicit environment spec files +
**required**: `true` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: The environments to render. Can be repeated for multiple environments +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--ignore-pypi-errors` +: PyPI dependencies are not supported in the conda explicit spec file +
**default**: `false` +- `--ignore-source-errors` +: Source dependencies are not supported in the conda explicit spec file +
**default**: `false` +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--platform (-p) ` +: The platform to render. Can be repeated for multiple platforms. Defaults to all platforms available for selected environments +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/export/conda-explicit-spec_extender.md:example" diff --git a/docs/reference/cli/pixi/project/export/conda-explicit-spec_extender.md b/docs/reference/cli/pixi/project/export/conda-explicit-spec_extender.md new file mode 100644 index 0000000000..dd33771f17 --- /dev/null +++ b/docs/reference/cli/pixi/project/export/conda-explicit-spec_extender.md @@ -0,0 +1,16 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi project export conda-explicit-spec output +pixi project export conda-explicit-spec -e default -e test -p linux-64 output +``` + +The [explicit specification file](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#building-identical-conda-environments) can be then used to create a conda environment using conda/mamba: + +```shell +mamba create --name --file +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/name.md b/docs/reference/cli/pixi/project/name.md new file mode 100644 index 0000000000..ef2b6afde3 --- /dev/null +++ b/docs/reference/cli/pixi/project/name.md @@ -0,0 +1,25 @@ + +# [pixi](../../pixi.md) [project](../project.md) name + +## About +Commands to manage project name + +--8<-- "docs/reference/cli/pixi/project/name_extender.md:description" + +## Usage +``` +pixi project name [OPTIONS] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`get`](name/get.md) | Get the project name | +| [`set`](name/set.md) | Set the project name | + + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/name_extender.md:example" diff --git a/docs/reference/cli/pixi/project/name/get.md b/docs/reference/cli/pixi/project/name/get.md new file mode 100644 index 0000000000..d04905650e --- /dev/null +++ b/docs/reference/cli/pixi/project/name/get.md @@ -0,0 +1,14 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [name](../name.md) get + +## About +Get the project name + +--8<-- "docs/reference/cli/pixi/project/name/get_extender.md:description" + +## Usage +``` +pixi project name get +``` + +--8<-- "docs/reference/cli/pixi/project/name/get_extender.md:example" diff --git a/docs/reference/cli/pixi/project/name/set.md b/docs/reference/cli/pixi/project/name/set.md new file mode 100644 index 0000000000..ce6c9fe7e4 --- /dev/null +++ b/docs/reference/cli/pixi/project/name/set.md @@ -0,0 +1,25 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [name](../name.md) set + +## About +Set the project name + +--8<-- "docs/reference/cli/pixi/project/name/set_extender.md:description" + +## Usage +``` +pixi project name set +``` + +## Arguments +- `` +: The project name, please only use lowercase letters (a-z), digits (0-9), hyphens (-), and underscores (_) +
**required**: `true` + +## Description +Set the project name. + +Example: `pixi project name set "my-project"` + + +--8<-- "docs/reference/cli/pixi/project/name/set_extender.md:example" diff --git a/docs/reference/cli/pixi/project/platform.md b/docs/reference/cli/pixi/project/platform.md new file mode 100644 index 0000000000..9388f68142 --- /dev/null +++ b/docs/reference/cli/pixi/project/platform.md @@ -0,0 +1,26 @@ + +# [pixi](../../pixi.md) [project](../project.md) platform + +## About +Commands to manage project platforms + +--8<-- "docs/reference/cli/pixi/project/platform_extender.md:description" + +## Usage +``` +pixi project platform [OPTIONS] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`add`](platform/add.md) | Adds a platform(s) to the project file and updates the lockfile | +| [`list`](platform/list.md) | List the platforms in the project file | +| [`remove`](platform/remove.md) | Remove platform(s) from the project file and updates the lockfile | + + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/platform_extender.md:example" diff --git a/docs/reference/cli/pixi/project/platform/add.md b/docs/reference/cli/pixi/project/platform/add.md new file mode 100644 index 0000000000..e97619d7fb --- /dev/null +++ b/docs/reference/cli/pixi/project/platform/add.md @@ -0,0 +1,25 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [platform](../platform.md) add + +## About +Adds a platform(s) to the project file and updates the lockfile + +--8<-- "docs/reference/cli/pixi/project/platform/add_extender.md:description" + +## Usage +``` +pixi project platform add [OPTIONS] ... +``` + +## Arguments +- `` +: The platform name(s) to add +
**required**: `true` + +## Options +- `--feature (-f) ` +: The name of the feature to add the platform to +- `--no-install` +: Don't update the environment, only add changed packages to the lock-file + +--8<-- "docs/reference/cli/pixi/project/platform/add_extender.md:example" diff --git a/docs/reference/cli/pixi/project/platform/add_extender.md b/docs/reference/cli/pixi/project/platform/add_extender.md new file mode 100644 index 0000000000..6692d49f61 --- /dev/null +++ b/docs/reference/cli/pixi/project/platform/add_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi project platform add win-64 +pixi project platform add --feature test win-64 +pixi project platform add --no-install win-64 +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/platform/list.md b/docs/reference/cli/pixi/project/platform/list.md new file mode 100644 index 0000000000..e532a05e9c --- /dev/null +++ b/docs/reference/cli/pixi/project/platform/list.md @@ -0,0 +1,14 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [platform](../platform.md) list + +## About +List the platforms in the project file + +--8<-- "docs/reference/cli/pixi/project/platform/list_extender.md:description" + +## Usage +``` +pixi project platform list +``` + +--8<-- "docs/reference/cli/pixi/project/platform/list_extender.md:example" diff --git a/docs/reference/cli/pixi/project/platform/list_extender.md b/docs/reference/cli/pixi/project/platform/list_extender.md new file mode 100644 index 0000000000..4a73934165 --- /dev/null +++ b/docs/reference/cli/pixi/project/platform/list_extender.md @@ -0,0 +1,14 @@ +--8<-- [start:example] + +## Examples +```shell +pixi project platform list +``` +Outputs: +```shell +osx-64 +linux-64 +win-64 +osx-arm64 +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/platform/remove.md b/docs/reference/cli/pixi/project/platform/remove.md new file mode 100644 index 0000000000..e9f75deeda --- /dev/null +++ b/docs/reference/cli/pixi/project/platform/remove.md @@ -0,0 +1,25 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [platform](../platform.md) remove + +## About +Remove platform(s) from the project file and updates the lockfile + +--8<-- "docs/reference/cli/pixi/project/platform/remove_extender.md:description" + +## Usage +``` +pixi project platform remove [OPTIONS] ... +``` + +## Arguments +- `` +: The platform name(s) to remove +
**required**: `true` + +## Options +- `--feature (-f) ` +: The name of the feature to remove the platform from +- `--no-install` +: Don't update the environment, only remove the platform(s) from the lock-file + +--8<-- "docs/reference/cli/pixi/project/platform/remove_extender.md:example" diff --git a/docs/reference/cli/pixi/project/platform/remove_extender.md b/docs/reference/cli/pixi/project/platform/remove_extender.md new file mode 100644 index 0000000000..a457b68b9d --- /dev/null +++ b/docs/reference/cli/pixi/project/platform/remove_extender.md @@ -0,0 +1,9 @@ +--8<-- [start:example] + +## Examples +```shell +pixi project platform remove win-64 +pixi project platform remove --feature test win-64 +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/system-requirements.md b/docs/reference/cli/pixi/project/system-requirements.md new file mode 100644 index 0000000000..d2d14101fa --- /dev/null +++ b/docs/reference/cli/pixi/project/system-requirements.md @@ -0,0 +1,25 @@ + +# [pixi](../../pixi.md) [project](../project.md) system-requirements + +## About +Commands to manage project environments + +--8<-- "docs/reference/cli/pixi/project/system-requirements_extender.md:description" + +## Usage +``` +pixi project system-requirements [OPTIONS] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`add`](system-requirements/add.md) | Adds an environment to the manifest file | +| [`list`](system-requirements/list.md) | List the environments in the manifest file | + + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/system-requirements_extender.md:example" diff --git a/docs/reference/cli/pixi/project/system-requirements/add.md b/docs/reference/cli/pixi/project/system-requirements/add.md new file mode 100644 index 0000000000..5d74dd85a9 --- /dev/null +++ b/docs/reference/cli/pixi/project/system-requirements/add.md @@ -0,0 +1,29 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [system-requirements](../system-requirements.md) add + +## About +Adds an environment to the manifest file + +--8<-- "docs/reference/cli/pixi/project/system-requirements/add_extender.md:description" + +## Usage +``` +pixi project system-requirements add [OPTIONS] +``` + +## Arguments +- `` +: The name of the system requirement to add +
**required**: `true` +
**options**: `linux`, `cuda`, `macos`, `glibc`, `other-libc` +- `` +: The version of the requirement +
**required**: `true` + +## Options +- `--family ` +: The Libc family, this can only be specified for requirement `other-libc` +- `--feature (-f) ` +: The name of the feature to modify + +--8<-- "docs/reference/cli/pixi/project/system-requirements/add_extender.md:example" diff --git a/docs/reference/cli/pixi/project/system-requirements/add_extender.md b/docs/reference/cli/pixi/project/system-requirements/add_extender.md new file mode 100644 index 0000000000..4ce3ff445b --- /dev/null +++ b/docs/reference/cli/pixi/project/system-requirements/add_extender.md @@ -0,0 +1,14 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi project system-requirements add cuda 12.6 +pixi project system-requirements add linux 5.15.2 +pixi project system-requirements add macos 15.2 +pixi project system-requirements add glibc 2.34 +pixi project system-requirements add other-libc 1.2.3 --family musl +pixi project system-requirements add --feature cuda cuda 12.0 +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/system-requirements/list.md b/docs/reference/cli/pixi/project/system-requirements/list.md new file mode 100644 index 0000000000..296b33a2fa --- /dev/null +++ b/docs/reference/cli/pixi/project/system-requirements/list.md @@ -0,0 +1,20 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [system-requirements](../system-requirements.md) list + +## About +List the environments in the manifest file + +--8<-- "docs/reference/cli/pixi/project/system-requirements/list_extender.md:description" + +## Usage +``` +pixi project system-requirements list [OPTIONS] +``` + +## Options +- `--environment (-e) ` +: The environment to list the system requirements for +- `--json` +: List the system requirements in JSON format + +--8<-- "docs/reference/cli/pixi/project/system-requirements/list_extender.md:example" diff --git a/docs/reference/cli/pixi/project/system-requirements/list_extender.md b/docs/reference/cli/pixi/project/system-requirements/list_extender.md new file mode 100644 index 0000000000..6d437f319d --- /dev/null +++ b/docs/reference/cli/pixi/project/system-requirements/list_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi project system-requirements list +pixi project system-requirements list --environment test +pixi project system-requirements list --json +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/project/version.md b/docs/reference/cli/pixi/project/version.md new file mode 100644 index 0000000000..984fb111bc --- /dev/null +++ b/docs/reference/cli/pixi/project/version.md @@ -0,0 +1,28 @@ + +# [pixi](../../pixi.md) [project](../project.md) version + +## About +Commands to manage project version + +--8<-- "docs/reference/cli/pixi/project/version_extender.md:description" + +## Usage +``` +pixi project version [OPTIONS] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`get`](version/get.md) | Get the workspace version | +| [`set`](version/set.md) | Set the workspace version | +| [`major`](version/major.md) | Bump the workspace version to MAJOR | +| [`minor`](version/minor.md) | Bump the workspace version to MINOR | +| [`patch`](version/patch.md) | Bump the workspace version to PATCH | + + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/project/version_extender.md:example" diff --git a/docs/reference/cli/pixi/project/version/get.md b/docs/reference/cli/pixi/project/version/get.md new file mode 100644 index 0000000000..a5d8037bd3 --- /dev/null +++ b/docs/reference/cli/pixi/project/version/get.md @@ -0,0 +1,14 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [version](../version.md) get + +## About +Get the workspace version + +--8<-- "docs/reference/cli/pixi/project/version/get_extender.md:description" + +## Usage +``` +pixi project version get +``` + +--8<-- "docs/reference/cli/pixi/project/version/get_extender.md:example" diff --git a/docs/reference/cli/pixi/project/version/major.md b/docs/reference/cli/pixi/project/version/major.md new file mode 100644 index 0000000000..50e92816bf --- /dev/null +++ b/docs/reference/cli/pixi/project/version/major.md @@ -0,0 +1,14 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [version](../version.md) major + +## About +Bump the workspace version to MAJOR + +--8<-- "docs/reference/cli/pixi/project/version/major_extender.md:description" + +## Usage +``` +pixi project version major +``` + +--8<-- "docs/reference/cli/pixi/project/version/major_extender.md:example" diff --git a/docs/reference/cli/pixi/project/version/minor.md b/docs/reference/cli/pixi/project/version/minor.md new file mode 100644 index 0000000000..2ddc1e758c --- /dev/null +++ b/docs/reference/cli/pixi/project/version/minor.md @@ -0,0 +1,14 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [version](../version.md) minor + +## About +Bump the workspace version to MINOR + +--8<-- "docs/reference/cli/pixi/project/version/minor_extender.md:description" + +## Usage +``` +pixi project version minor +``` + +--8<-- "docs/reference/cli/pixi/project/version/minor_extender.md:example" diff --git a/docs/reference/cli/pixi/project/version/patch.md b/docs/reference/cli/pixi/project/version/patch.md new file mode 100644 index 0000000000..31a6dc154d --- /dev/null +++ b/docs/reference/cli/pixi/project/version/patch.md @@ -0,0 +1,14 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [version](../version.md) patch + +## About +Bump the workspace version to PATCH + +--8<-- "docs/reference/cli/pixi/project/version/patch_extender.md:description" + +## Usage +``` +pixi project version patch +``` + +--8<-- "docs/reference/cli/pixi/project/version/patch_extender.md:example" diff --git a/docs/reference/cli/pixi/project/version/set.md b/docs/reference/cli/pixi/project/version/set.md new file mode 100644 index 0000000000..14356ab84c --- /dev/null +++ b/docs/reference/cli/pixi/project/version/set.md @@ -0,0 +1,19 @@ + +# [pixi](../../../pixi.md) [project](../../project.md) [version](../version.md) set + +## About +Set the workspace version + +--8<-- "docs/reference/cli/pixi/project/version/set_extender.md:description" + +## Usage +``` +pixi project version set +``` + +## Arguments +- `` +: The new project version +
**required**: `true` + +--8<-- "docs/reference/cli/pixi/project/version/set_extender.md:example" diff --git a/docs/reference/cli/pixi/remove.md b/docs/reference/cli/pixi/remove.md new file mode 100644 index 0000000000..dc7e8bc06e --- /dev/null +++ b/docs/reference/cli/pixi/remove.md @@ -0,0 +1,79 @@ + +# [pixi](../pixi.md) remove + +## About +Removes dependencies from the workspace + +--8<-- "docs/reference/cli/pixi/remove_extender.md:description" + +## Usage +``` +pixi remove [OPTIONS] ... +``` + +## Arguments +- `` +: The dependencies as names, conda MatchSpecs or PyPi requirements +
**required**: `true` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--branch ` +: The git branch +- `--build` +: The specified dependencies are build dependencies. Conflicts with `host` and `pypi` +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--feature (-f) ` +: The feature for which the dependency should be modified +
**default**: `default` +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--git (-g) ` +: The git url to use when adding a git dependency +- `--host` +: The specified dependencies are host dependencies. Conflicts with `build` and `pypi` +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--platform (-p) ` +: The platform(s) for which the dependency should be modified +- `--pypi` +: The specified dependencies are pypi dependencies. Conflicts with `host` and `build` +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--rev ` +: The git revision +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--subdir (-s) ` +: The subdirectory of the git repository to use +- `--tag ` +: The git tag +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Removes dependencies from the workspace. + +If the project manifest is a `pyproject.toml`, removing a pypi dependency with the `--pypi` flag will remove it from either + +- the native pyproject `project.dependencies` array or, if a feature is specified, the native `project.optional-dependencies` table + +- pixi `pypi-dependencies` tables of the default feature or, if a feature is specified, a named feature + + +--8<-- "docs/reference/cli/pixi/remove_extender.md:example" diff --git a/docs/reference/cli/pixi/remove_extender.md b/docs/reference/cli/pixi/remove_extender.md new file mode 100644 index 0000000000..8107918207 --- /dev/null +++ b/docs/reference/cli/pixi/remove_extender.md @@ -0,0 +1,25 @@ +--8<-- [start:example] +## Examples + +```shell +pixi remove numpy +pixi remove numpy pandas pytorch +pixi remove --manifest-path ~/myproject/pixi.toml numpy +pixi remove --host python +pixi remove --build cmake +pixi remove --pypi requests +pixi remove --platform osx-64 --build clang +pixi remove --feature featurex clang +pixi remove --feature featurex --platform osx-64 clang +pixi remove --feature featurex --platform osx-64 --build clang +pixi remove --no-install numpy +``` + +--8<-- [end:example] + +--8<-- [start:description] +If the project manifest is a `pyproject.toml`, removing a pypi dependency with the `--pypi` flag will remove it from either + +- the native pyproject `project.dependencies` array or the native `project.optional-dependencies` table (if a feature is specified) +- pixi `pypi-dependencies` tables of the default or a named feature (if a feature is specified) +--8<-- [end:description] diff --git a/docs/reference/cli/pixi/run.md b/docs/reference/cli/pixi/run.md new file mode 100644 index 0000000000..784e7843b6 --- /dev/null +++ b/docs/reference/cli/pixi/run.md @@ -0,0 +1,70 @@ + +# [pixi](../pixi.md) run + +## About +Runs task in the pixi environment + +--8<-- "docs/reference/cli/pixi/run_extender.md:description" + +## Usage +``` +pixi run [OPTIONS] [TASK]... +``` + +## Arguments +- `` +: The pixi task or a task shell command you want to run in the project's environment, which can be an executable in the environment's PATH + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--clean-env` +: Use a clean environment to run the task +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--dry-run (-n)` +: Run the task in dry-run mode (only print the command that would run) +- `--environment (-e) ` +: The environment to run the task in +- `--force-activate` +: Do not use the environment activation cache. (default: true except in experimental mode) +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--help` +: +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-completion ` +: Do not source the autocompletion scripts from the environment +
**options**: `true`, `false` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--skip-deps` +: Don't run the dependencies of the task ('depends-on' field in the task definition) +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Runs task in the pixi environment. + +This command is used to run tasks in the pixi environment. It will activate the environment and run the task in the environment. It is using the deno_task_shell to run the task. + +`pixi run` will also update the lockfile and install the environment if it is required. + + +--8<-- "docs/reference/cli/pixi/run_extender.md:example" diff --git a/docs/reference/cli/pixi/run_extender.md b/docs/reference/cli/pixi/run_extender.md new file mode 100644 index 0000000000..bf6dee8561 --- /dev/null +++ b/docs/reference/cli/pixi/run_extender.md @@ -0,0 +1,57 @@ +--8<-- [start:example] +## Examples + +```shell +pixi run python +pixi run cowpy "Hey pixi user" +pixi run --manifest-path ~/myproject/pixi.toml python +pixi run --frozen python +pixi run --locked python +# If you have specified a custom task in the pixi.toml you can run it with run as well +pixi run build +# Extra arguments will be passed to the tasks command. +pixi run task argument1 argument2 +# Skip dependencies of the task +pixi run --skip-deps task +# Run in dry-run mode to see the commands that would be run +pixi run --dry-run task + +# If you have multiple environments you can select the right one with the --environment flag. +pixi run --environment cuda python + +# THIS DOESN'T WORK ON WINDOWS +# If you want to run a command in a clean environment you can use the --clean-env flag. +# The PATH should only contain the pixi environment here. +pixi run --clean-env "echo \$PATH" + +``` + +## Notes +!!! info + In `pixi` the [`deno_task_shell`](https://deno.land/manual@v1.35.0/tools/task_runner#task-runner) is the underlying runner of the run command. + Checkout their [documentation](https://deno.land/manual@v1.35.0/tools/task_runner#task-runner) for the syntax and available commands. + This is done so that the run commands can be run across all platforms. + +!!! tip "Cross environment tasks" + If you're using the `depends-on` feature of the `tasks`, the tasks will be run in the order you specified them. + The `depends-on` can be used cross environment, e.g. you have this `pixi.toml`: + ??? "pixi.toml" + ```toml + [tasks] + start = { cmd = "python start.py", depends-on = ["build"] } + + [feature.build.tasks] + build = "cargo build" + [feature.build.dependencies] + rust = ">=1.74" + + [environments] + build = ["build"] + ``` + + Then you're able to run the `build` from the `build` environment and `start` from the default environment. + By only calling: + ```shell + pixi run start + ``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/search.md b/docs/reference/cli/pixi/search.md new file mode 100644 index 0000000000..4084cbf8d6 --- /dev/null +++ b/docs/reference/cli/pixi/search.md @@ -0,0 +1,38 @@ + +# [pixi](../pixi.md) search + +## About +Search a conda package + +--8<-- "docs/reference/cli/pixi/search_extender.md:description" + +## Usage +``` +pixi search [OPTIONS] +``` + +## Arguments +- `` +: Name of package to search +
**required**: `true` + +## Options +- `--channel (-c) ` +: The channels to consider as a name or a url. Multiple channels can be specified by using this field multiple times +- `--limit (-l) ` +: Limit the number of search results +- `--platform (-p) ` +: The platform to search for, defaults to current platform +
**default**: `current_platform` + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Search a conda package + +Its output will list the latest version of package. + + +--8<-- "docs/reference/cli/pixi/search_extender.md:example" diff --git a/docs/reference/cli/pixi/search_extender.md b/docs/reference/cli/pixi/search_extender.md new file mode 100644 index 0000000000..b88e56398f --- /dev/null +++ b/docs/reference/cli/pixi/search_extender.md @@ -0,0 +1,12 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi search pixi +pixi search --limit 30 "py*" +# search in a different channel and for a specific platform +pixi search -c robostack --platform linux-64 "plotjuggler*" +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/self-update.md b/docs/reference/cli/pixi/self-update.md new file mode 100644 index 0000000000..c5399ed03e --- /dev/null +++ b/docs/reference/cli/pixi/self-update.md @@ -0,0 +1,18 @@ + +# [pixi](../pixi.md) self-update + +## About +Update pixi to the latest version or a specific version + +--8<-- "docs/reference/cli/pixi/self-update_extender.md:description" + +## Usage +``` +pixi self-update +``` + +## Options +- `--version ` +: The desired version (to downgrade or upgrade to) + +--8<-- "docs/reference/cli/pixi/self-update_extender.md:example" diff --git a/docs/reference/cli/pixi/self-update_extender.md b/docs/reference/cli/pixi/self-update_extender.md new file mode 100644 index 0000000000..55eb6b7cc1 --- /dev/null +++ b/docs/reference/cli/pixi/self-update_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi global uninstall my-env +pixi global uninstall pixi-pack rattler-build +``` + + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/shell-hook.md b/docs/reference/cli/pixi/shell-hook.md new file mode 100644 index 0000000000..e3086c41e2 --- /dev/null +++ b/docs/reference/cli/pixi/shell-hook.md @@ -0,0 +1,64 @@ + +# [pixi](../pixi.md) shell-hook + +## About +Print the pixi environment activation script + +--8<-- "docs/reference/cli/pixi/shell-hook_extender.md:description" + +## Usage +``` +pixi shell-hook [OPTIONS] +``` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--change-ps1 ` +: Do not change the PS1 variable when starting a prompt +
**options**: `true`, `false` +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: The environment to activate in the script +- `--force-activate` +: Do not use the environment activation cache. (default: true except in experimental mode) +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--json` +: Emit the environment variables set by running the activation as JSON +
**default**: `false` +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-completion ` +: Do not source the autocompletion scripts from the environment +
**options**: `true`, `false` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--shell (-s) ` +: Sets the shell, options: [`bash`, `zsh`, `xonsh`, `cmd`, `powershell`, `fish`, `nushell`] +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Print the pixi environment activation script. + +You can source the script to activate the environment without needing pixi itself. + + +--8<-- "docs/reference/cli/pixi/shell-hook_extender.md:example" diff --git a/docs/reference/cli/pixi/shell-hook_extender.md b/docs/reference/cli/pixi/shell-hook_extender.md new file mode 100644 index 0000000000..6eb5b2c27f --- /dev/null +++ b/docs/reference/cli/pixi/shell-hook_extender.md @@ -0,0 +1,24 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi shell-hook +pixi shell-hook --shell bash +pixi shell-hook --shell zsh +pixi shell-hook -s powershell +pixi shell-hook --manifest-path ~/myproject/pixi.toml +pixi shell-hook --frozen +pixi shell-hook --locked +pixi shell-hook --environment cuda +pixi shell-hook --json +``` + +Example use-case, when you want to get rid of the `pixi` executable in a Docker container. + +```shell +pixi shell-hook --shell bash > /etc/profile.d/pixi.sh +rm ~/.pixi/bin/pixi # Now the environment will be activated without the need for the pixi executable. +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/shell.md b/docs/reference/cli/pixi/shell.md new file mode 100644 index 0000000000..f91925d6f7 --- /dev/null +++ b/docs/reference/cli/pixi/shell.md @@ -0,0 +1,53 @@ + +# [pixi](../pixi.md) shell + +## About +Start a shell in a pixi environment, run `exit` to leave the shell + +--8<-- "docs/reference/cli/pixi/shell_extender.md:description" + +## Usage +``` +pixi shell [OPTIONS] +``` + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--change-ps1 ` +: Do not change the PS1 variable when starting a prompt +
**options**: `true`, `false` +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: The environment to activate in the shell +- `--force-activate` +: Do not use the environment activation cache. (default: true except in experimental mode) +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-completion ` +: Do not source the autocompletion scripts from the environment +
**options**: `true`, `false` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/shell_extender.md:example" diff --git a/docs/reference/cli/pixi/shell_extender.md b/docs/reference/cli/pixi/shell_extender.md new file mode 100644 index 0000000000..93e38c79e8 --- /dev/null +++ b/docs/reference/cli/pixi/shell_extender.md @@ -0,0 +1,14 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi shell +pixi shell --manifest-path ~/myproject/pixi.toml +pixi shell --frozen +pixi shell --locked +pixi shell --environment cuda +exit +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/task.md b/docs/reference/cli/pixi/task.md new file mode 100644 index 0000000000..2af40d9322 --- /dev/null +++ b/docs/reference/cli/pixi/task.md @@ -0,0 +1,27 @@ + +# [pixi](../pixi.md) task + +## About +Interact with tasks in the workspace + +--8<-- "docs/reference/cli/pixi/task_extender.md:description" + +## Usage +``` +pixi task [OPTIONS] +``` + +## Subcommands +| Command | Description | +|---------|-------------| +| [`add`](task/add.md) | Add a command to the project | +| [`remove`](task/remove.md) | Remove a command from the project | +| [`alias`](task/alias.md) | Alias another specific command | +| [`list`](task/list.md) | List all tasks in the project | + + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +--8<-- "docs/reference/cli/pixi/task_extender.md:example" diff --git a/docs/reference/cli/pixi/task/add.md b/docs/reference/cli/pixi/task/add.md new file mode 100644 index 0000000000..30affe2855 --- /dev/null +++ b/docs/reference/cli/pixi/task/add.md @@ -0,0 +1,38 @@ + +# [pixi](../../pixi.md) [task](../task.md) add + +## About +Add a command to the project + +--8<-- "docs/reference/cli/pixi/task/add_extender.md:description" + +## Usage +``` +pixi task add [OPTIONS] ... +``` + +## Arguments +- `` +: Task name +
**required**: `true` +- `` +: One or more commands to actually execute +
**required**: `true` + +## Options +- `--clean-env` +: Isolate the task from the shell environment, and only use the pixi environment to run the task +- `--cwd ` +: The working directory relative to the root of the project +- `--depends-on ` +: Depends on these other commands +- `--description ` +: A description of the task to be added +- `--env ` +: The environment variable to set, use --env key=value multiple times for more than one variable +- `--feature (-f) ` +: The feature for which the task should be added +- `--platform (-p) ` +: The platform for which the task should be added + +--8<-- "docs/reference/cli/pixi/task/add_extender.md:example" diff --git a/docs/reference/cli/pixi/task/add_extender.md b/docs/reference/cli/pixi/task/add_extender.md new file mode 100644 index 0000000000..878178d19b --- /dev/null +++ b/docs/reference/cli/pixi/task/add_extender.md @@ -0,0 +1,39 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi task add cow cowpy "Hello User" +pixi task add tls ls --cwd tests +pixi task add test cargo t --depends-on build +pixi task add build-osx "METAL=1 cargo build" --platform osx-64 +pixi task add train python train.py --feature cuda +pixi task add publish-pypi "hatch publish --yes --repo main" --feature build --env HATCH_CONFIG=config/hatch.toml --description "Publish the package to pypi" +``` + +This adds the following to the [manifest file](../../../pixi_manifest.md): + +```toml +[tasks] +cow = "cowpy \"Hello User\"" +tls = { cmd = "ls", cwd = "tests" } +test = { cmd = "cargo t", depends-on = ["build"] } + +[target.osx-64.tasks] +build-osx = "METAL=1 cargo build" + +[feature.cuda.tasks] +train = "python train.py" + +[feature.build.tasks] +publish-pypi = { cmd = "hatch publish --yes --repo main", env = { HATCH_CONFIG = "config/hatch.toml" }, description = "Publish the package to pypi" } +``` + +Which you can then run with the `run` command: + +```shell +pixi run cow +# Extra arguments will be passed to the tasks command. +pixi run test --test test1 +``` +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/task/alias.md b/docs/reference/cli/pixi/task/alias.md new file mode 100644 index 0000000000..a64ea11f95 --- /dev/null +++ b/docs/reference/cli/pixi/task/alias.md @@ -0,0 +1,28 @@ + +# [pixi](../../pixi.md) [task](../task.md) alias + +## About +Alias another specific command + +--8<-- "docs/reference/cli/pixi/task/alias_extender.md:description" + +## Usage +``` +pixi task alias [OPTIONS] ... +``` + +## Arguments +- `` +: Alias name +
**required**: `true` +- `` +: Depends on these tasks to execute +
**required**: `true` + +## Options +- `--description ` +: The description of the alias task +- `--platform (-p) ` +: The platform for which the alias should be added + +--8<-- "docs/reference/cli/pixi/task/alias_extender.md:example" diff --git a/docs/reference/cli/pixi/task/alias_extender.md b/docs/reference/cli/pixi/task/alias_extender.md new file mode 100644 index 0000000000..7c6e9d0e02 --- /dev/null +++ b/docs/reference/cli/pixi/task/alias_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi task alias test-all test-py test-cpp test-rust +pixi task alias --platform linux-64 test test-linux +pixi task alias moo cow +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/task/list.md b/docs/reference/cli/pixi/task/list.md new file mode 100644 index 0000000000..7eba16e8b0 --- /dev/null +++ b/docs/reference/cli/pixi/task/list.md @@ -0,0 +1,22 @@ + +# [pixi](../../pixi.md) [task](../task.md) list + +## About +List all tasks in the project + +--8<-- "docs/reference/cli/pixi/task/list_extender.md:description" + +## Usage +``` +pixi task list [OPTIONS] +``` + +## Options +- `--environment (-e) ` +: The environment the list should be generated for. If not specified, the default environment is used +- `--json` +: List as json instead of a tree If not specified, the default environment is used +- `--summary (-s)` +: Tasks available for this machine per environment + +--8<-- "docs/reference/cli/pixi/task/list_extender.md:example" diff --git a/docs/reference/cli/pixi/task/list_extender.md b/docs/reference/cli/pixi/task/list_extender.md new file mode 100644 index 0000000000..441935bc4b --- /dev/null +++ b/docs/reference/cli/pixi/task/list_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi task list +pixi task list --environment cuda +pixi task list --summary +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/task/remove.md b/docs/reference/cli/pixi/task/remove.md new file mode 100644 index 0000000000..57cad47ac8 --- /dev/null +++ b/docs/reference/cli/pixi/task/remove.md @@ -0,0 +1,24 @@ + +# [pixi](../../pixi.md) [task](../task.md) remove + +## About +Remove a command from the project + +--8<-- "docs/reference/cli/pixi/task/remove_extender.md:description" + +## Usage +``` +pixi task remove [OPTIONS] [NAMES]... +``` + +## Arguments +- `` +: Task names to remove + +## Options +- `--feature (-f) ` +: The feature for which the task should be removed +- `--platform (-p) ` +: The platform for which the task should be removed + +--8<-- "docs/reference/cli/pixi/task/remove_extender.md:example" diff --git a/docs/reference/cli/pixi/task/remove_extender.md b/docs/reference/cli/pixi/task/remove_extender.md new file mode 100644 index 0000000000..247096674c --- /dev/null +++ b/docs/reference/cli/pixi/task/remove_extender.md @@ -0,0 +1,11 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi task remove cow +pixi task remove --platform linux-64 test +pixi task remove --feature cuda task +``` + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/tree.md b/docs/reference/cli/pixi/tree.md new file mode 100644 index 0000000000..0c499f9f3f --- /dev/null +++ b/docs/reference/cli/pixi/tree.md @@ -0,0 +1,59 @@ + +# [pixi](../pixi.md) tree + +## About +Show a tree of project dependencies + +--8<-- "docs/reference/cli/pixi/tree_extender.md:description" + +## Usage +``` +pixi tree [OPTIONS] [REGEX] +``` + +## Arguments +- `` +: List only packages matching a regular expression + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--environment (-e) ` +: The environment to list packages for. Defaults to the default environment +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--invert (-i)` +: Invert tree and show what depends on given package in the regex argument +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--platform (-p) ` +: The platform to list packages for. Defaults to the current platform +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Show a tree of project dependencies + +Dependency names highlighted in green are directly specified in the manifest. Yellow version numbers are conda packages, PyPI version numbers are blue. + + +--8<-- "docs/reference/cli/pixi/tree_extender.md:example" diff --git a/docs/reference/cli/pixi/tree_extender.md b/docs/reference/cli/pixi/tree_extender.md new file mode 100644 index 0000000000..2339ba8acf --- /dev/null +++ b/docs/reference/cli/pixi/tree_extender.md @@ -0,0 +1,105 @@ +--8<-- [start:example] + +## Examples + +```shell +pixi tree +pixi tree pre-commit +pixi tree -i yaml +pixi tree --environment docs +pixi tree --platform win-64 +``` + +Output will look like this, where direct packages in the [manifest file](../../pixi_manifest.md) will be green. +Once a package has been displayed once, the tree won't continue to recurse through its dependencies (compare the first time `python` appears, vs the rest), and it will instead be marked with a star `(*)`. + +Version numbers are colored by the package type, yellow for Conda packages and blue for PyPI. + +```shell +➜ pixi tree +├── pre-commit v3.3.3 +│ ├── cfgv v3.3.1 +│ │ └── python v3.12.2 +│ │ ├── bzip2 v1.0.8 +│ │ ├── libexpat v2.6.2 +│ │ ├── libffi v3.4.2 +│ │ ├── libsqlite v3.45.2 +│ │ │ └── libzlib v1.2.13 +│ │ ├── libzlib v1.2.13 (*) +│ │ ├── ncurses v6.4.20240210 +│ │ ├── openssl v3.2.1 +│ │ ├── readline v8.2 +│ │ │ └── ncurses v6.4.20240210 (*) +│ │ ├── tk v8.6.13 +│ │ │ └── libzlib v1.2.13 (*) +│ │ └── xz v5.2.6 +│ ├── identify v2.5.35 +│ │ └── python v3.12.2 (*) +... +└── tbump v6.9.0 +... + └── tomlkit v0.12.4 + └── python v3.12.2 (*) +``` + +A regex pattern can be specified to filter the tree to just those that show a specific direct, or transitive dependency: + +```shell +➜ pixi tree pre-commit +└── pre-commit v3.3.3 + ├── virtualenv v20.25.1 + │ ├── filelock v3.13.1 + │ │ └── python v3.12.2 + │ │ ├── libexpat v2.6.2 + │ │ ├── readline v8.2 + │ │ │ └── ncurses v6.4.20240210 + │ │ ├── libsqlite v3.45.2 + │ │ │ └── libzlib v1.2.13 + │ │ ├── bzip2 v1.0.8 + │ │ ├── libzlib v1.2.13 (*) + │ │ ├── libffi v3.4.2 + │ │ ├── tk v8.6.13 + │ │ │ └── libzlib v1.2.13 (*) + │ │ ├── xz v5.2.6 + │ │ ├── ncurses v6.4.20240210 (*) + │ │ └── openssl v3.2.1 + │ ├── platformdirs v4.2.0 + │ │ └── python v3.12.2 (*) + │ ├── distlib v0.3.8 + │ │ └── python v3.12.2 (*) + │ └── python v3.12.2 (*) + ├── pyyaml v6.0.1 +... +``` + +Additionally, the tree can be inverted, and it can show which packages depend on a regex pattern. +The packages specified in the manifest will also be highlighted (in this case `cffconvert` and `pre-commit` would be). + +```shell +➜ pixi tree -i yaml + +ruamel.yaml v0.18.6 +├── pykwalify v1.8.0 +│ └── cffconvert v2.0.0 +└── cffconvert v2.0.0 + +pyyaml v6.0.1 +└── pre-commit v3.3.3 + +ruamel.yaml.clib v0.2.8 +└── ruamel.yaml v0.18.6 + ├── pykwalify v1.8.0 + │ └── cffconvert v2.0.0 + └── cffconvert v2.0.0 + +yaml v0.2.5 +└── pyyaml v6.0.1 + └── pre-commit v3.3.3 +``` + + +!!! warning + Use `-v` to show which `pypi` packages are not yet parsed correctly. The `extras` and `markers` parsing is still under development. + + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/update.md b/docs/reference/cli/pixi/update.md new file mode 100644 index 0000000000..b833814245 --- /dev/null +++ b/docs/reference/cli/pixi/update.md @@ -0,0 +1,51 @@ + +# [pixi](../pixi.md) update + +## About +The `update` command checks if there are newer versions of the dependencies and updates the `pixi.lock` file and environments accordingly + +--8<-- "docs/reference/cli/pixi/update_extender.md:description" + +## Usage +``` +pixi update [OPTIONS] [PACKAGES]... +``` + +## Arguments +- `` +: The packages to update, space separated. If no packages are provided, all packages will be updated + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--dry-run (-n)` +: Don't actually write the lockfile or update any environment +- `--environment (-e) ` +: The environments to update. If none is specified, all environments are updated +- `--json` +: Output the changes in JSON format +- `--no-install` +: Don't install the (solve) environments needed for pypi-dependencies solving +- `--platform (-p) ` +: The platforms to update. If none is specified, all platforms are updated +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +The `update` command checks if there are newer versions of the dependencies and updates the `pixi.lock` file and environments accordingly. + +It will only update the lock file if the dependencies in the manifest file are still compatible with the new versions. + + +--8<-- "docs/reference/cli/pixi/update_extender.md:example" diff --git a/docs/reference/cli/pixi/update_extender.md b/docs/reference/cli/pixi/update_extender.md new file mode 100644 index 0000000000..671e3e2a0f --- /dev/null +++ b/docs/reference/cli/pixi/update_extender.md @@ -0,0 +1,27 @@ +---8<--- [start:example] + +## Examples + +```shell +pixi update numpy # (1)! +pixi update numpy pandas # (2)! +pixi update --manifest-path ~/myproject/pixi.toml numpy # (3)! +pixi update --environment lint python # (4)! +pixi update -e lint -e schema -e docs pre-commit # (5)! +pixi update --platform osx-arm64 mlx # (6)! +pixi update -p linux-64 -p osx-64 numpy # (7)! +pixi update --dry-run numpy # (8)! +pixi update --no-install boto3 # (9)! +``` + +1. This will update the `numpy` package to the latest version that fits the requirement. +2. This will update the `numpy` and `pandas` packages to the latest version that fits the requirement. +3. This will update the `numpy` package to the latest version in the manifest file at the given path. +4. This will update the `python` package in the `lint` environment. +5. This will update the `pre-commit` package in the `lint`, `schema`, and `docs` environments. +6. This will update the `mlx` package in the `osx-arm64` platform. +7. This will update the `numpy` package in the `linux-64` and `osx-64` platforms. +8. This will show the packages that would be updated without actually updating them in the lockfile +9. This will update the `boto3` package in the manifest and lockfile, without installing it in an environment. + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/upgrade.md b/docs/reference/cli/pixi/upgrade.md new file mode 100644 index 0000000000..9030c12852 --- /dev/null +++ b/docs/reference/cli/pixi/upgrade.md @@ -0,0 +1,62 @@ + +# [pixi](../pixi.md) upgrade + +## About +Checks if there are newer versions of the dependencies and upgrades them in the lockfile and manifest file + +--8<-- "docs/reference/cli/pixi/upgrade_extender.md:description" + +## Usage +``` +pixi upgrade [OPTIONS] [PACKAGES]... +``` + +## Arguments +- `` +: The packages to upgrade + +## Options +- `--auth-file ` +: Path to the file containing the authentication token +- `--concurrent-downloads ` +: Max concurrent network requests, default is `50` +- `--concurrent-solves ` +: Max concurrent solves, default is the number of CPUs +- `--dry-run (-n)` +: Only show the changes that would be made, without actually updating the manifest, lock file, or environment +- `--exclude ` +: The packages which should be excluded +- `--feature (-f) ` +: The feature to update +
**default**: `default` +- `--frozen` +: Install the environment as defined in the lockfile, doesn't update lockfile if it isn't up-to-date with the manifest file +
**env**: `PIXI_FROZEN` +- `--json` +: Output the changes in JSON format +- `--locked` +: Check if lockfile is up-to-date before installing the environment, aborts when lockfile isn't up-to-date with the manifest file +
**env**: `PIXI_LOCKED` +- `--no-install` +: Don't modify the environment, only modify the lock-file +- `--no-lockfile-update` +: Don't update lockfile, implies the no-install as well +- `--pypi-keyring-provider ` +: Specifies whether to use the keyring to look up credentials for PyPI +
**options**: `disabled`, `subprocess` +- `--revalidate` +: Run the complete environment validation. This will reinstall a broken environment +- `--tls-no-verify` +: Do not verify the TLS certificate of the server + +## Global Options +- `--manifest-path ` +: The path to `pixi.toml`, `pyproject.toml`, or the project directory + +## Description +Checks if there are newer versions of the dependencies and upgrades them in the lockfile and manifest file. + +`pixi upgrade` loosens the requirements for the given packages, updates the lock file and the adapts the manifest accordingly. + + +--8<-- "docs/reference/cli/pixi/upgrade_extender.md:example" diff --git a/docs/reference/cli/pixi/upgrade_extender.md b/docs/reference/cli/pixi/upgrade_extender.md new file mode 100644 index 0000000000..cd2bc511a7 --- /dev/null +++ b/docs/reference/cli/pixi/upgrade_extender.md @@ -0,0 +1,36 @@ +--8<-- [start:description] +!!! note + The `pixi upgrade` command will update only `version`s, except when you specify the exact package name (`pixi upgrade numpy`). + + Then it will remove all fields, apart from: + + - `build` field containing a wildcard `*` + - `channel` + - `file_name` + - `url` + - `subdir`. +--8<-- [end:description] + +--8<-- [start:example] + +## Examples + +```shell +pixi upgrade # (1)! +pixi upgrade numpy # (2)! +pixi upgrade numpy pandas # (3)! +pixi upgrade --manifest-path ~/myproject/pixi.toml numpy # (4)! +pixi upgrade --feature lint python # (5)! +pixi upgrade --json # (6)! +pixi upgrade --dry-run # (7)! +``` + +1. This will upgrade all packages to the latest version. +2. This will upgrade the `numpy` package to the latest version. +3. This will upgrade the `numpy` and `pandas` packages to the latest version. +4. This will upgrade the `numpy` package to the latest version in the manifest file at the given path. +5. This will upgrade the `python` package in the `lint` feature. +6. This will upgrade all packages and output the result in JSON format. +7. This will show the packages that would be upgraded without actually upgrading them in the lockfile or manifest. + +--8<-- [end:example] diff --git a/docs/reference/cli/pixi/upload.md b/docs/reference/cli/pixi/upload.md new file mode 100644 index 0000000000..39743ac417 --- /dev/null +++ b/docs/reference/cli/pixi/upload.md @@ -0,0 +1,30 @@ + +# [pixi](../pixi.md) upload + +## About +Upload a conda package + +--8<-- "docs/reference/cli/pixi/upload_extender.md:description" + +## Usage +``` +pixi upload +``` + +## Arguments +- `` +: The host + channel to upload to +
**required**: `true` +- `` +: The file to upload +
**required**: `true` + +## Description +Upload a conda package + +With this command, you can upload a conda package to a channel. Example: `pixi upload https://prefix.dev/api/v1/upload/my_channel my_package.conda` + +Use `pixi auth login` to authenticate with the server. + + +--8<-- "docs/reference/cli/pixi/upload_extender.md:example" diff --git a/docs/reference/cli/pixi_extender.md b/docs/reference/cli/pixi_extender.md new file mode 100644 index 0000000000..337fc45b7e --- /dev/null +++ b/docs/reference/cli/pixi_extender.md @@ -0,0 +1,6 @@ +--8<-- [start:description] +## Description + +The `pixi` command is the main entry point for the Pixi CLI. + +--8<-- [end:description] diff --git a/docs/reference/old_cli.md b/docs/reference/old_cli.md new file mode 100644 index 0000000000..12a402fd33 --- /dev/null +++ b/docs/reference/old_cli.md @@ -0,0 +1,120 @@ + +### `project platform add` + +Adds a platform(s) to the manifest file and updates the lock file. + +##### Arguments + +1. `...`: The platforms to add. + +##### Options + +- `--no-install`: do not update the environment, only add changed packages to the lock-file. +- `--feature (-f)`: The feature for which the platform will be added. + +```sh +pixi project platform add win-64 +pixi project platform add --feature test win-64 +``` + +### `project platform list` + +List the platforms in the manifest file. + +```sh +$ pixi project platform list +osx-64 +linux-64 +win-64 +osx-arm64 +``` + +### `project platform remove` + +Remove platform(s) from the manifest file and updates the lock file. + +##### Arguments + +1. `...`: The platforms to remove. + +##### Options + +- `--no-install`: do not update the environment, only add changed packages to the lock-file. +- `--feature (-f)`: The feature for which the platform will be removed. + +```sh + +``` + +### `project version get` + +Get the project version. + +```sh +$ pixi project version get +0.11.0 +``` + +### `project version set` + +Set the project version. + +##### Arguments + +1. ``: The version to set. + +```sh +pixi project version set "0.13.0" +``` + +### `project version {major|minor|patch}` + +Bump the project version to {MAJOR|MINOR|PATCH}. + +```sh +pixi project version major +pixi project version minor +pixi project version patch +``` + +### `project system-requirement add` + +Add a system requirement to the project configuration. + +##### Arguments +1. ``: The name of the system requirement. +2. ``: The version of the system requirement. + +##### Options +- `--family `: The family of the system requirement. Only used for `other-libc`. +- `--feature (-f)`: The feature for which the system requirement is added. + +```shell +pixi project system-requirements add cuda 12.6 +pixi project system-requirements add linux 5.15.2 +pixi project system-requirements add macos 15.2 +pixi project system-requirements add glibc 2.34 +pixi project system-requirements add other-libc 1.2.3 --family musl +pixi project system-requirements add --feature cuda cuda 12.0 +``` + +### `project system-requirement list` + +List the system requirements in the project configuration. + +##### Options +- `--environment (-e)`: The environment to list the system requirements for. + +```shell +pixi project system-requirements list +pixi project system-requirements list --environment test +``` + +[^1]: + An **up-to-date** lock file means that the dependencies in the lock file are allowed by the dependencies in the manifest file. + For example + + - a manifest with `python = ">= 3.11"` is up-to-date with a `name: python, version: 3.11.0` in the `pixi.lock`. + - a manifest with `python = ">= 3.12"` is **not** up-to-date with a `name: python, version: 3.11.0` in the `pixi.lock`. + + Being up-to-date does **not** mean that the lock file holds the latest version available on the channel for the given dependency. diff --git a/docs/reference/pixi_manifest.md b/docs/reference/pixi_manifest.md index ef1caaab64..32b57aef07 100644 --- a/docs/reference/pixi_manifest.md +++ b/docs/reference/pixi_manifest.md @@ -232,7 +232,7 @@ format = { cmd="black $INIT_CWD" } # runs black where you run pixi run format clean-env = { cmd = "python isolated.py", clean-env = true} # Only on Unix! ``` -You can modify this table using [`pixi task`](cli.md#task). +You can modify this table using [`pixi task`](cli/pixi/task.md). !!! note Specify different tasks for different platforms using the [target](#the-target-table) table diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index b678cf5804..b65852a271 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -94,6 +94,11 @@ height: 100%; } +.md-typeset table td, +.md-typeset table th { + font-size: 0.8rem; +} + table code { white-space: nowrap; word-break: keep-all; diff --git a/docs/switching_from/conda.md b/docs/switching_from/conda.md index d59aab22c9..fd141eb351 100644 --- a/docs/switching_from/conda.md +++ b/docs/switching_from/conda.md @@ -10,15 +10,16 @@ This shift towards projects offers a more organized and efficient way to manage ## Key Differences at a Glance -| Task | Conda/Mamba | Pixi | -|-----------------------------|---------------------------------------------------|----------------------------------------------------------------------| -| Installation | Requires an installer | Download and add to path (See [installation](../index.md)) | -| Creating an Environment | `conda create -n myenv -c conda-forge python=3.8` | `pixi init myenv` followed by `pixi add python=3.8` | -| Activating an Environment | `conda activate myenv` | `pixi shell` within the workspace directory | -| Deactivating an Environment | `conda deactivate` | `exit` from the `pixi shell` | -| Running a Task | `conda run -n myenv python my_program.py` | `pixi run python my_program.py` (See [run](../reference/cli.md#run)) | -| Installing a Package | `conda install numpy` | `pixi add numpy` | -| Uninstalling a Package | `conda remove numpy` | `pixi remove numpy` | +| Task | Conda/Mamba | Pixi | +|-----------------------------|---------------------------------------------------|---------------------------------------------------------------------------| +| Installation | Requires an installer | Download and add to path (See [installation](../index.md)) | +| Creating an Environment | `conda create -n myenv -c conda-forge python=3.8` | `pixi init myenv` followed by `pixi add python=3.8` | +| Activating an Environment | `conda activate myenv` | `pixi shell` within the project directory | +| Deactivating an Environment | `conda deactivate` | `exit` from the `pixi shell` | +| Running a Task | `conda run -n myenv python my_program.py` | `pixi run python my_program.py` (See [run](../reference/cli/pixi/run.md)) | +| Installing a Package | `conda install numpy` | `pixi add numpy` | +| Uninstalling a Package | `conda remove numpy` | `pixi remove numpy` | + !!! warn "No `base` environment" Conda has a base environment, which is the default environment when you start a new shell. @@ -49,7 +50,7 @@ pixi config set detached-environments /path/to/envs ``` This doesn't allow you to activate the environments using `pixi shell -n` but it will make the installation of the environments go to the same folder. -`pixi` does have the `pixi global` command to install tools on your machine. (See [global](../reference/cli.md#global)) +`pixi` does have the `pixi global` command to install tools on your machine. (See [global](../reference/cli/pixi/global.md)) This is not a replacement for `conda` but works the same as [`pipx`](https://pipx.pypa.io/stable/) and [`condax`](https://mariusvniekerk.github.io/condax/). It creates a single isolated environment for the given requirement and installs the binaries into the global path. ```shell @@ -64,18 +65,18 @@ bat pixi.toml ## Automated switching -With `pixi` you can import `environment.yml` files into a Pixi workspace. (See [import](../reference/cli.md#init)) +With `pixi` you can import `environment.yml` files into a Pixi workspace. (See [import](../reference/cli/pixi/init.md)) ```shell pixi init --import environment.yml ``` This will create a new workspace with the dependencies from the `environment.yml` file. ??? tip "Exporting your environment" - If you are working with Conda users or systems, you can [export your environment to a `environment.yml`](../reference/cli.md#project-export-conda-environment) file to share them. + If you are working with Conda users or systems, you can [export your environment to a `environment.yml`](../reference/cli/pixi/project/export.md) file to share them. ```shell pixi project export conda-environment ``` - Additionally you can export a [conda explicit specification](../reference/cli.md#project-export-conda-explicit-spec). + Additionally you can export a [conda explicit specification](../reference/cli/pixi/project/export.md). ## Troubleshooting Encountering issues? Here are solutions to some common problems when being used to the `conda` workflow: diff --git a/mkdocs.yml b/mkdocs.yml index c42c47a757..09c578200a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -154,7 +154,7 @@ nav: - Reference: - Pixi Manifest: reference/pixi_manifest.md - Pixi Configuration: reference/pixi_configuration.md - - CLI: reference/cli.md + - CLI: reference/cli/pixi.md - Misc: - Changelog: CHANGELOG.md - Pixi Vision: vision.md @@ -174,7 +174,6 @@ plugins: "environment.md": "environments/environment.md" "design_proposals/multi_environment_proposal.md": "environments/multi_environment.md" "advanced/multi_platform_configuration.md": "environments/multi_platform_configuration.md" - "cli.md": "reference/cli.md" "configuration.md": "reference/pixi_manifest.md" "reference/project_configuration.md": "reference/pixi_manifest.md" "advanced/global_configuration.md": "reference/pixi_configuration.md" diff --git a/pixi.toml b/pixi.toml index 9b8842ed57..3bb3441c1a 100644 --- a/pixi.toml +++ b/pixi.toml @@ -19,6 +19,7 @@ python = "3.12.*" build-debug = "cargo build" build-release = "cargo build --release" bump = "tbump --only-patch $RELEASE_VERSION" +generate-cli-docs = "cargo run --manifest-path pixi_docs/Cargo.toml" install = "cargo install --path . --locked" install-as = { cmd = "python scripts/install.py", depends-on = [ "build-release", @@ -37,6 +38,7 @@ test-slow = """cargo nextest run --workspace --all-targets --retries 2 --feature # TODO: add cargo-edit to conda-forge update-rattler = "cargo upgrade -p rattler -p file_url -p rattler_cache -p rattler_conda_types -p rattler_digest -p rattler_lock -p rattler_networking -p rattler_repodata_gateway -p rattler_shell -p rattler_solve -p rattler_virtual_packages" + [feature.pytest.dependencies] filelock = ">=3.16.0,<4" mypy = ">=1.11,<1.12" diff --git a/pixi_docs/Cargo.lock b/pixi_docs/Cargo.lock new file mode 100644 index 0000000000..91ebff5f9d --- /dev/null +++ b/pixi_docs/Cargo.lock @@ -0,0 +1,9404 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom 0.2.15", + "once_cell", + "version_check", + "zerocopy 0.7.35", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" + +[[package]] +name = "anstyle-parse" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +dependencies = [ + "anstyle", + "once_cell", + "windows-sys 0.59.0", +] + +[[package]] +name = "anyhow" +version = "1.0.97" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" + +[[package]] +name = "arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "archspec" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9db67cd9cf4f56a10d2cbae6a3b552e5bd36701fd37b74a18c14a231bdf446c7" +dependencies = [ + "cfg-if", + "itertools 0.12.1", + "libc", + "serde", + "serde_json", + "sysctl", +] + +[[package]] +name = "arcstr" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03918c3dbd7701a85c6b9887732e2921175f26c350b4563841d0958c21d57e6d" + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + +[[package]] +name = "astral-tokio-tar" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65152cbda42e8ab5ecff69e8811e8333d69188c7d5c41e3eedb8d127e3f23b27" +dependencies = [ + "filetime", + "futures-core", + "libc", + "portable-atomic", + "rustc-hash", + "tokio", + "tokio-stream", + "xattr", +] + +[[package]] +name = "async-broadcast" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" +dependencies = [ + "event-listener", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-compression" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06575e6a9673580f52661c92107baabffbf41e2141373441cbcdc47cb733003c" +dependencies = [ + "bzip2", + "flate2", + "futures-core", + "futures-io", + "memchr", + "pin-project-lite", + "tokio", + "xz2", + "zstd", + "zstd-safe", +] + +[[package]] +name = "async-executor" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "slab", +] + +[[package]] +name = "async-fd-lock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7569377d7062165f6f7834d9cb3051974a2d141433cc201c2f94c149e993cccf" +dependencies = [ + "async-trait", + "cfg-if", + "pin-project", + "rustix", + "thiserror 1.0.69", + "tokio", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-fs" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" +dependencies = [ + "async-lock", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-io" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-once-cell" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288f83726785267c6f2ef073a3d83dc3f9b81464e9f99898240cced85fce35a" + +[[package]] +name = "async-process" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +dependencies = [ + "async-channel", + "async-io", + "async-lock", + "async-signal", + "async-task", + "blocking", + "cfg-if", + "event-listener", + "futures-lite", + "rustix", + "tracing", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async-signal" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" +dependencies = [ + "async-io", + "async-lock", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix", + "signal-hook-registry", + "slab", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "async_http_range_reader" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b537c00269e3f943e06f5d7cabf8ccd281b800fd0c7f111dd82f77154334197" +dependencies = [ + "bisection", + "futures", + "http-content-range", + "itertools 0.13.0", + "memmap2 0.9.5", + "reqwest", + "reqwest-middleware", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", +] + +[[package]] +name = "async_zip" +version = "0.0.17" +source = "git+https://github.com/charliermarsh/rs-async-zip?rev=c909fda63fcafe4af496a07bfda28a5aae97e58d#c909fda63fcafe4af496a07bfda28a5aae97e58d" +dependencies = [ + "async-compression", + "crc32fast", + "futures-lite", + "pin-project", + "thiserror 1.0.69", + "tokio", + "tokio-util", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "aws-config" +version = "1.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490aa7465ee685b2ced076bb87ef654a47724a7844e2c7d3af4e749ce5b875dd" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-sdk-sso", + "aws-sdk-ssooidc", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand", + "hex", + "http 0.2.12", + "ring", + "time", + "tokio", + "tracing", + "url", + "zeroize", +] + +[[package]] +name = "aws-credential-types" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60e8f6b615cb5fc60a98132268508ad104310f0cfb25a1c22eee76efdf9154da" +dependencies = [ + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "zeroize", +] + +[[package]] +name = "aws-runtime" +version = "1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76dd04d39cc12844c0994f2c9c5a6f5184c22e9188ec1ff723de41910a21dcad" +dependencies = [ + "aws-credential-types", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-eventstream", + "aws-smithy-http", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "fastrand", + "http 0.2.12", + "http-body 0.4.6", + "once_cell", + "percent-encoding", + "pin-project-lite", + "tracing", + "uuid", +] + +[[package]] +name = "aws-sdk-s3" +version = "1.77.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34e87342432a3de0e94e82c99a7cbd9042f99de029ae1f4e368160f9e9929264" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-checksums", + "aws-smithy-eventstream", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "bytes", + "fastrand", + "hex", + "hmac", + "http 0.2.12", + "http-body 0.4.6", + "lru", + "once_cell", + "percent-encoding", + "regex-lite", + "sha2", + "tracing", + "url", +] + +[[package]] +name = "aws-sdk-sso" +version = "1.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60186fab60b24376d3e33b9ff0a43485f99efd470e3b75a9160c849741d63d56" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-ssooidc" +version = "1.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7033130ce1ee13e6018905b7b976c915963755aef299c1521897679d6cd4f8ef" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-types", + "bytes", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-sts" +version = "1.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5c1cac7677179d622b4448b0d31bcb359185295dc6fca891920cfb17e2b5156" +dependencies = [ + "aws-credential-types", + "aws-runtime", + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "http 0.2.12", + "once_cell", + "regex-lite", + "tracing", +] + +[[package]] +name = "aws-sigv4" +version = "1.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bfe75fad52793ce6dec0dc3d4b1f388f038b5eb866c8d4d7f3a8e21b5ea5051" +dependencies = [ + "aws-credential-types", + "aws-smithy-eventstream", + "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "crypto-bigint 0.5.5", + "form_urlencoded", + "hex", + "hmac", + "http 0.2.12", + "http 1.2.0", + "once_cell", + "p256", + "percent-encoding", + "ring", + "sha2", + "subtle", + "time", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-smithy-async" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa59d1327d8b5053c54bf2eaae63bf629ba9e904434d0835a28ed3c0ed0a614e" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "aws-smithy-checksums" +version = "0.63.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2dc8d842d872529355c72632de49ef8c5a2949a4472f10e802f28cf925770c" +dependencies = [ + "aws-smithy-http", + "aws-smithy-types", + "bytes", + "crc32c", + "crc32fast", + "crc64fast-nvme", + "hex", + "http 0.2.12", + "http-body 0.4.6", + "md-5", + "pin-project-lite", + "sha1", + "sha2", + "tracing", +] + +[[package]] +name = "aws-smithy-eventstream" +version = "0.60.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b18559a41e0c909b77625adf2b8c50de480a8041e5e4a3f5f7d177db70abc5a" +dependencies = [ + "aws-smithy-types", + "bytes", + "crc32fast", +] + +[[package]] +name = "aws-smithy-http" +version = "0.60.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7809c27ad8da6a6a68c454e651d4962479e81472aa19ae99e59f9aba1f9713cc" +dependencies = [ + "aws-smithy-eventstream", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http-body 0.4.6", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + +[[package]] +name = "aws-smithy-json" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "623a51127f24c30776c8b374295f2df78d92517386f77ba30773f15a30ce1422" +dependencies = [ + "aws-smithy-types", +] + +[[package]] +name = "aws-smithy-query" +version = "0.60.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb" +dependencies = [ + "aws-smithy-types", + "urlencoding", +] + +[[package]] +name = "aws-smithy-runtime" +version = "1.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d526a12d9ed61fadefda24abe2e682892ba288c2018bcb38b1b4c111d13f6d92" +dependencies = [ + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-runtime-api", + "aws-smithy-types", + "bytes", + "fastrand", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "http-body 1.0.1", + "httparse", + "hyper 0.14.32", + "hyper-rustls 0.24.2", + "once_cell", + "pin-project-lite", + "pin-utils", + "rustls 0.21.12", + "tokio", + "tracing", +] + +[[package]] +name = "aws-smithy-runtime-api" +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92165296a47a812b267b4f41032ff8069ab7ff783696d217f0994a0d7ab585cd" +dependencies = [ + "aws-smithy-async", + "aws-smithy-types", + "bytes", + "http 0.2.12", + "http 1.2.0", + "pin-project-lite", + "tokio", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-smithy-types" +version = "1.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7b8a53819e42f10d0821f56da995e1470b199686a1809168db6ca485665f042" +dependencies = [ + "base64-simd", + "bytes", + "bytes-utils", + "futures-core", + "http 0.2.12", + "http 1.2.0", + "http-body 0.4.6", + "http-body 1.0.1", + "http-body-util", + "itoa", + "num-integer", + "pin-project-lite", + "pin-utils", + "ryu", + "serde", + "time", + "tokio", + "tokio-util", +] + +[[package]] +name = "aws-smithy-xml" +version = "0.60.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab0b0166827aa700d3dc519f72f8b3a91c35d0b8d042dc5d643a91e6f80648fc" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "aws-types" +version = "1.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbd0a668309ec1f66c0f6bda4840dd6d4796ae26d699ebc266d7cc95c6d040f" +dependencies = [ + "aws-credential-types", + "aws-smithy-async", + "aws-smithy-runtime-api", + "aws-smithy-types", + "rustc_version", + "tracing", +] + +[[package]] +name = "backon" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fef586913a57ff189f25c9b3d034356a5bf6b3fa9a7f067588fe1698ba1f5d" +dependencies = [ + "fastrand", + "gloo-timers 0.3.0", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "barrier_cell" +version = "0.1.0" +dependencies = [ + "parking_lot 0.12.3", + "thiserror 2.0.12", + "tokio", +] + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +dependencies = [ + "outref", + "vsimd", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bisection" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021e079a1bab0ecce6cf4b4b74c0c37afa4a697136eb3b127875c84a8f04a8c3" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel", + "async-task", + "futures-io", + "futures-lite", + "piper", +] + +[[package]] +name = "boxcar" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225450ee9328e1e828319b48a89726cffc1b0ad26fd9211ad435de9fa376acae" +dependencies = [ + "loom", +] + +[[package]] +name = "bstr" +version = "1.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +dependencies = [ + "memchr", + "regex-automata 0.4.9", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "bytecheck" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50690fb3370fb9fe3550372746084c46f2ac8c9685c583d2be10eefd89d3d1a3" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "rancor", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb7846e0cb180355c2dec69e721edafa36919850f1a9f52ffba4ebc0393cb71" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" + +[[package]] +name = "bytes-utils" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" +dependencies = [ + "bytes", + "either", +] + +[[package]] +name = "bzip2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49ecfb22d906f800d4fe833b6282cf4dc1c298f5057ca0b5445e5c209735ca47" +dependencies = [ + "bzip2-sys", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.13+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "cacache" +version = "13.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5063741c7b2e260bbede781cf4679632dd90e2718e99f7715e46824b65670b" +dependencies = [ + "digest", + "either", + "futures", + "hex", + "libc", + "memmap2 0.5.10", + "miette 5.10.0", + "reflink-copy", + "serde", + "serde_derive", + "serde_json", + "sha1", + "sha2", + "ssri", + "tempfile", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "walkdir", +] + +[[package]] +name = "cache_control" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee" + +[[package]] +name = "cargo-util" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "932c5376dc904ef005f0d229a5edc1116f40a78a18d30cdc992ec5acbeffd4d9" +dependencies = [ + "anyhow", + "core-foundation 0.10.0", + "filetime", + "hex", + "ignore", + "jobserver", + "libc", + "miow", + "same-file", + "sha2", + "shell-escape", + "tempfile", + "tracing", + "walkdir", + "windows-sys 0.59.0", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +dependencies = [ + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "charset" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f927b07c74ba84c7e5fe4db2baeb3e996ab2688992e39ac68ce3220a677c7e" +dependencies = [ + "base64 0.22.1", + "encoding_rs", +] + +[[package]] +name = "chrono" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "4.5.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap-verbosity-flag" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2678fade3b77aa3a8ff3aae87e9c008d3fb00473a41c71fbf74e91c8c7b37e84" +dependencies = [ + "clap", + "log", +] + +[[package]] +name = "clap_builder" +version = "4.5.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", + "terminal_size", +] + +[[package]] +name = "clap_complete" +version = "4.5.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5c5508ea23c5366f77e53f5a0070e5a84e51687ec3ef9e0464c86dc8d13ce98" +dependencies = [ + "clap", +] + +[[package]] +name = "clap_complete_nushell" +version = "4.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6a8b1593457dfc2fe539002b795710d022dc62a65bf15023f039f9760c7b18a" +dependencies = [ + "clap", + "clap_complete", +] + +[[package]] +name = "clap_derive" +version = "4.5.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" + +[[package]] +name = "colorchoice" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "configparser" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57e3272f0190c3f1584272d613719ba5fc7df7f4942fe542e63d949cf3a649b" + +[[package]] +name = "console" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width 0.2.0", + "windows-sys 0.59.0", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc32c" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crc64fast-nvme" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4955638f00a809894c947f85a024020a20815b65a5eea633798ea7924edab2b3" +dependencies = [ + "crc", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "csv" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctrlc" +version = "3.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" +dependencies = [ + "nix", + "windows-sys 0.59.0", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" + +[[package]] +name = "dbus" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" +dependencies = [ + "libc", + "libdbus-sys", + "winapi", +] + +[[package]] +name = "dbus-secret-service" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42a16374481d92aed73ae45b1f120207d8e71d24fb89f357fadbd8f946fd84b" +dependencies = [ + "aes", + "block-padding", + "cbc", + "dbus", + "futures-util", + "hkdf", + "num", + "once_cell", + "rand 0.8.5", + "sha2", +] + +[[package]] +name = "deno_task_shell" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2da21d6f1061632e50ee585afa570bcad080b7a42fe7baedf447007c49f848e" +dependencies = [ + "anyhow", + "futures", + "glob", + "monch", + "nix", + "os_pipe", + "path-dedot", + "thiserror 2.0.12", + "tokio", + "windows-sys 0.59.0", +] + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derive_arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dialoguer" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" +dependencies = [ + "console", + "shell-words", + "tempfile", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys 0.5.0", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.4.6", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.0", + "windows-sys 0.59.0", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der", + "elliptic-curve", + "rfc6979", + "signature", +] + +[[package]] +name = "either" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct", + "crypto-bigint 0.4.9", + "der", + "digest", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "elsa" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2343daaeabe09879d4ea058bb4f1e63da3fc07dadc6634e01bda1b3d6a9d9d2b" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "encoding_rs_io" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83" +dependencies = [ + "encoding_rs", +] + +[[package]] +name = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + +[[package]] +name = "enum-as-inner" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "enumflags2" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" +dependencies = [ + "enumflags2_derive", + "serde", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "env_home" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "erased-serde" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +dependencies = [ + "serde", + "typeid", +] + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + +[[package]] +name = "event-listener" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" +dependencies = [ + "event-listener", + "pin-project-lite", +] + +[[package]] +name = "fancy_display" +version = "0.1.0" +dependencies = [ + "console", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "file_url" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f75ca0511313d95b0ca15b916b4532975b31b92ed882ddeaa23cbfca4955f32a" +dependencies = [ + "itertools 0.14.0", + "percent-encoding", + "thiserror 2.0.12", + "typed-path", + "url", +] + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "flate2" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs-err" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f89bda4c2a21204059a977ed3bfe746677dfd137b83c339e702b0ac91d482aa" +dependencies = [ + "autocfg", + "tokio", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fs4" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c29c30684418547d476f0b48e84f4821639119c483b1eccd566c8cd0cd05f521" +dependencies = [ + "fs-err", + "rustix", + "tokio", + "windows-sys 0.52.0", +] + +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-lite" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers 0.2.6", + "send_wrapper", +] + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.58.0", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "serde", + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "wasm-bindgen", + "windows-targets 0.52.6", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "globset" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "globwalk" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" +dependencies = [ + "bitflags 2.9.0", + "ignore", + "walkdir", +] + +[[package]] +name = "gloo-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils", + "http 1.2.0", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror 1.0.69", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gloo-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "goblin" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa0a64d21a7eb230583b4c5f4e23b7e4e57974f96620f42a7e75e08ae66d745" +dependencies = [ + "log", + "plain", + "scroll", +] + +[[package]] +name = "google-cloud-auth" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57a13fbacc5e9c41ded3ad8d0373175a6b7a6ad430d99e89d314ac121b7ab06" +dependencies = [ + "async-trait", + "base64 0.21.7", + "google-cloud-metadata", + "google-cloud-token", + "home", + "jsonwebtoken", + "reqwest", + "serde", + "serde_json", + "thiserror 1.0.69", + "time", + "tokio", + "tracing", + "urlencoding", +] + +[[package]] +name = "google-cloud-metadata" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d901aeb453fd80e51d64df4ee005014f6cf39f2d736dd64f7239c132d9d39a6a" +dependencies = [ + "reqwest", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "google-cloud-token" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c12ba8b21d128a2ce8585955246977fbce4415f680ebf9199b6f9d6d725f" +dependencies = [ + "async-trait", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.7.1", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.2.0", + "indexmap 2.7.1", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "halfbrown" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" +dependencies = [ + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "html-escape" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" +dependencies = [ + "utf8-width", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.2.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "http-cache" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e883defacf53960c7717d9e928dc8667be9501d9f54e6a8b7703d7a30320e9c" +dependencies = [ + "async-trait", + "bincode", + "cacache", + "http 1.2.0", + "http-cache-semantics", + "httpdate", + "serde", + "url", +] + +[[package]] +name = "http-cache-reqwest" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e076afd9d376f09073b515ce95071b29393687d98ed521948edb899195595ddf" +dependencies = [ + "anyhow", + "async-trait", + "http 1.2.0", + "http-cache", + "http-cache-semantics", + "reqwest", + "reqwest-middleware", + "serde", + "url", +] + +[[package]] +name = "http-cache-semantics" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92baf25cf0b8c9246baecf3a444546360a97b569168fdf92563ee6a47829920c" +dependencies = [ + "http 1.2.0", + "http-serde", + "reqwest", + "serde", + "time", +] + +[[package]] +name = "http-content-range" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4aa8e0a9f1496d70bdd43b1e30ff373857c952609ad64b89f50569cfb8cbfca" + +[[package]] +name = "http-serde" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f056c8559e3757392c8d091e796416e4649d8e49e88b8d76df6c002f05027fd" +dependencies = [ + "http 1.2.0", + "serde", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "human_bytes" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e" + +[[package]] +name = "humansize" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" +dependencies = [ + "libm", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.8", + "http 1.2.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.32", + "log", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +dependencies = [ + "futures-util", + "http 1.2.0", + "hyper 1.6.0", + "hyper-util", + "log", + "rustls 0.23.23", + "rustls-native-certs 0.8.1", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.2", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "hyper 1.6.0", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "ignore" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata 0.4.9", + "same-file", + "walkdir", + "winapi-util", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" +dependencies = [ + "console", + "number_prefix", + "portable-atomic", + "unicode-width 0.2.0", + "web-time", +] + +[[package]] +name = "indoc" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "is_ci" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" + +[[package]] +name = "is_executable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a1b5bad6f9072935961dfbf1cced2f3d129963d091b6f69f007fe04e758ae2" +dependencies = [ + "winapi", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3590fea8e9e22d449600c9bbd481a8163bef223e4ff938e5f55899f8cf1adb93" +dependencies = [ + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", + "windows-sys 0.59.0", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2cec2f5d266af45a071ece48b1fb89f3b00b2421ac3a5fe10285a6caaa60d3" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a63c62e404e7b92979d2792352d885a7f8f83fd1d0d31eea582d77b2ceca697e" +dependencies = [ + "jiff-tzdb", +] + +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863726d7afb6bc2590eeff7135d923545e5e964f004c2ccf8716c25e70a86f08" +dependencies = [ + "jsonptr", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonptr" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dea2b27dd239b2556ed7a25ba842fe47fd602e7fc7433c2a8d6106d4d9edd70" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "jsonrpsee" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1d83ae9ed70d8e3440db663e343a82f93913104744cd543bbcdd1dbc0e35d3" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-types", + "jsonrpsee-wasm-client", + "jsonrpsee-ws-client", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.24.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def0fd41e2f53118bd1620478d12305b2c75feef57ea1f93ef70568c98081b7e" +dependencies = [ + "base64 0.22.1", + "futures-channel", + "futures-util", + "gloo-net", + "http 1.2.0", + "jsonrpsee-core", + "pin-project", + "rustls 0.23.23", + "rustls-pki-types", + "rustls-platform-verifier", + "soketto", + "thiserror 1.0.69", + "tokio", + "tokio-rustls 0.26.2", + "tokio-util", + "tracing", + "url", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.24.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76637f6294b04e747d68e69336ef839a3493ca62b35bf488ead525f7da75c5bb" +dependencies = [ + "async-trait", + "bytes", + "futures-timer", + "futures-util", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "jsonrpsee-types", + "pin-project", + "rustc-hash", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", + "wasm-bindgen-futures", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.24.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87c24e981ad17798bbca852b0738bfb7b94816ed687bd0d5da60bfa35fa0fdc3" +dependencies = [ + "async-trait", + "base64 0.22.1", + "http-body 1.0.1", + "hyper 1.6.0", + "hyper-rustls 0.27.5", + "hyper-util", + "jsonrpsee-core", + "jsonrpsee-types", + "rustls 0.23.23", + "rustls-platform-verifier", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tower 0.4.13", + "tracing", + "url", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.24.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddb81adb1a5ae9182df379e374a79e24e992334e7346af4d065ae5b2acb8d4c6" +dependencies = [ + "http 1.2.0", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "jsonrpsee-wasm-client" +version = "0.24.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e41af42ca39657313748174d02766e5287d3a57356f16756dbd8065b933977" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.24.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f4f3642a292f5b76d8a16af5c88c16a0860f2ccc778104e5c848b28183d9538" +dependencies = [ + "http 1.2.0", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", + "url", +] + +[[package]] +name = "jsonwebtoken" +version = "9.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" +dependencies = [ + "base64 0.22.1", + "js-sys", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + +[[package]] +name = "junction" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72bbdfd737a243da3dfc1f99ee8d6e166480f17ab4ac84d7c34aacd73fc7bd16" +dependencies = [ + "scopeguard", + "windows-sys 0.52.0", +] + +[[package]] +name = "keyring" +version = "3.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1961983669d57bdfe6c0f3ef8e4c229b5ef751afcc7d87e4271d2f71f6ccfa8b" +dependencies = [ + "byteorder", + "dbus-secret-service", + "log", + "secret-service", + "security-framework 2.11.1", + "security-framework 3.2.0", + "windows-sys 0.59.0", + "zbus", +] + +[[package]] +name = "known-folders" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7d9a1740cc8b46e259a0eb787d79d855e79ff10b9855a5eba58868d5da7927c" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "lazy-regex" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60c7310b93682b36b98fa7ea4de998d3463ccbebd94d935d6b48ba5b6ffa7126" +dependencies = [ + "lazy-regex-proc_macros", + "once_cell", + "regex", +] + +[[package]] +name = "lazy-regex-proc_macros" +version = "3.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ba01db5ef81e17eb10a5e0f2109d1b3a3e29bac3070fdbd7d156bf7dbd206a1" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "syn", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.170" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" + +[[package]] +name = "libdbus-sys" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" +dependencies = [ + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.9.0", + "libc", + "redox_syscall 0.5.10", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "litemap" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "lockfree-object-pool" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" + +[[package]] +name = "log" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.2", +] + +[[package]] +name = "lzma-sys" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "mailparse" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60819a97ddcb831a5614eb3b0174f3620e793e97e09195a395bfa948fd68ed2f" +dependencies = [ + "charset", + "data-encoding", + "quoted_printable", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miette" +version = "5.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e" +dependencies = [ + "miette-derive 5.10.0", + "once_cell", + "thiserror 1.0.69", + "unicode-width 0.1.14", +] + +[[package]] +name = "miette" +version = "7.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a955165f87b37fd1862df2a59547ac542c77ef6d17c666f619d1ad22dd89484" +dependencies = [ + "cfg-if", + "miette-derive 7.5.0", + "owo-colors", + "serde", + "supports-color", + "supports-hyperlinks", + "supports-unicode", + "terminal_size", + "textwrap", + "thiserror 1.0.69", + "unicode-width 0.1.14", +] + +[[package]] +name = "miette-derive" +version = "5.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "miette-derive" +version = "7.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf45bf44ab49be92fd1227a3be6fc6f617f1a337c06af54981048574d8783147" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minijinja" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e36f1329330bb1614c94b78632b9ce45dd7d761f3304a1bed07b2990a7c5097" +dependencies = [ + "serde", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "miow" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "monch" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b52c1b33ff98142aecea13138bd399b68aa7ab5d9546c300988c345004001eea" + +[[package]] +name = "munge" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0091202c98cf06da46c279fdf50cccb6b1c43b4521abdf6a27b4c7e71d5d9d7" +dependencies = [ + "munge_macro", +] + +[[package]] +name = "munge_macro" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734799cf91479720b2f970c61a22850940dd91e27d4f02b1c6fc792778df2459" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "nanoid" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "netrc-rs" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2970fbbc8c785e8246234a7bd004ed66cd1ed1a35ec73669a92545e419b836" + +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags 2.9.0", + "cfg-if", + "cfg_aliases", + "libc", + "memoffset", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ordered-stream" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" +dependencies = [ + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "os_pipe" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "os_str_bytes" +version = "6.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +dependencies = [ + "memchr", +] + +[[package]] +name = "outref" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owo-colors" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" + +[[package]] +name = "p256" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" +dependencies = [ + "ecdsa", + "elliptic-curve", + "sha2", +] + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.10", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-dedot" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397" +dependencies = [ + "once_cell", +] + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "pem" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +dependencies = [ + "base64 0.22.1", + "serde", +] + +[[package]] +name = "pep440_rs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31095ca1f396e3de32745f42b20deef7bc09077f918b085307e8eab6ddd8fb9c" +dependencies = [ + "once_cell", + "serde", + "unicode-width 0.2.0", + "unscanny", + "version-ranges 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pep508_rs" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faee7227064121fcadcd2ff788ea26f0d8f2bd23a0574da11eca23bc935bcc05" +dependencies = [ + "boxcar", + "indexmap 2.7.1", + "itertools 0.13.0", + "once_cell", + "pep440_rs", + "regex", + "rustc-hash", + "serde", + "smallvec", + "thiserror 1.0.69", + "unicode-width 0.2.0", + "url", + "urlencoding", + "version-ranges 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset", + "indexmap 2.7.1", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn", + "unicase", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", + "unicase", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand", + "futures-io", +] + +[[package]] +name = "pixi" +version = "0.42.1" +dependencies = [ + "ahash", + "assert_matches", + "async-fd-lock", + "async-once-cell", + "barrier_cell", + "base64 0.22.1", + "chrono", + "clap", + "clap-verbosity-flag", + "clap_complete", + "clap_complete_nushell", + "console", + "crossbeam-channel", + "csv", + "ctrlc", + "deno_task_shell", + "dialoguer", + "dirs 6.0.0", + "dunce", + "fancy_display", + "flate2", + "fs-err", + "fs_extra", + "futures", + "human_bytes", + "humantime", + "ignore", + "indexmap 2.7.1", + "indicatif", + "is_executable", + "itertools 0.14.0", + "libc", + "miette 7.5.0", + "minijinja", + "nix", + "once_cell", + "parking_lot 0.12.3", + "pep440_rs", + "pep508_rs", + "percent-encoding", + "pixi_build_frontend", + "pixi_build_types", + "pixi_config", + "pixi_consts", + "pixi_default_versions", + "pixi_git", + "pixi_glob", + "pixi_manifest", + "pixi_progress", + "pixi_pty", + "pixi_record", + "pixi_spec", + "pixi_toml", + "pixi_utils", + "pixi_uv_conversions", + "pypi_mapping", + "pypi_modifiers", + "rattler", + "rattler_conda_types", + "rattler_digest", + "rattler_lock", + "rattler_menuinst", + "rattler_networking", + "rattler_repodata_gateway", + "rattler_shell", + "rattler_solve", + "rattler_virtual_packages", + "regex", + "reqwest", + "reqwest-middleware", + "rlimit", + "rstest", + "self-replace", + "serde", + "serde_json", + "serde_with", + "sha2", + "shlex", + "signal-hook", + "strsim", + "tabwriter", + "tar", + "temp-env", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "toml-span", + "toml_edit", + "tracing", + "tracing-subscriber", + "typed-path", + "url", + "uv-auth", + "uv-build-frontend", + "uv-cache", + "uv-client", + "uv-configuration", + "uv-dispatch", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-git", + "uv-git-types", + "uv-install-wheel", + "uv-installer", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-pypi-types", + "uv-python", + "uv-requirements", + "uv-requirements-txt", + "uv-resolver", + "uv-types", + "xxhash-rust", + "zip 2.2.3", + "zstd", +] + +[[package]] +name = "pixi_build_frontend" +version = "0.1.0" +dependencies = [ + "dashmap", + "fs-err", + "futures", + "itertools 0.14.0", + "jsonrpsee", + "miette 7.5.0", + "pixi_build_type_conversions", + "pixi_build_types", + "pixi_config", + "pixi_consts", + "pixi_manifest", + "pixi_progress", + "pixi_spec", + "pixi_utils", + "rattler", + "rattler_conda_types", + "rattler_repodata_gateway", + "rattler_shell", + "rattler_solve", + "rattler_virtual_packages", + "regex", + "reqwest-middleware", + "serde", + "serde_json", + "serde_with", + "serde_yaml", + "sha1", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "which", +] + +[[package]] +name = "pixi_build_type_conversions" +version = "0.1.0" +dependencies = [ + "indexmap 2.7.1", + "itertools 0.14.0", + "pixi_build_types", + "pixi_manifest", + "pixi_spec", + "rattler_conda_types", +] + +[[package]] +name = "pixi_build_types" +version = "0.1.0" +dependencies = [ + "indexmap 2.7.1", + "rattler_conda_types", + "rattler_digest", + "serde", + "serde_json", + "serde_with", + "url", +] + +[[package]] +name = "pixi_config" +version = "0.1.0" +dependencies = [ + "clap", + "console", + "dirs 6.0.0", + "fs-err", + "itertools 0.14.0", + "miette 7.5.0", + "pixi_consts", + "rattler", + "rattler_conda_types", + "rattler_networking", + "rattler_repodata_gateway", + "reqwest-middleware", + "serde", + "serde_ignored", + "serde_json", + "thiserror 2.0.12", + "toml_edit", + "tracing", + "url", +] + +[[package]] +name = "pixi_consts" +version = "0.1.0" +dependencies = [ + "console", + "rattler_cache", + "rattler_conda_types", + "url", +] + +[[package]] +name = "pixi_default_versions" +version = "0.1.0" +dependencies = [ + "rattler_conda_types", +] + +[[package]] +name = "pixi_docs" +version = "0.1.0" +dependencies = [ + "clap", + "itertools 0.14.0", + "pixi", + "rattler_conda_types", +] + +[[package]] +name = "pixi_git" +version = "0.0.1" +dependencies = [ + "dashmap", + "dunce", + "fs-err", + "pixi_utils", + "reqwest", + "reqwest-middleware", + "serde", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "urlencoding", + "which", +] + +[[package]] +name = "pixi_glob" +version = "0.1.0" +dependencies = [ + "dashmap", + "fs-err", + "itertools 0.14.0", + "memchr", + "rattler_digest", + "thiserror 2.0.12", + "tokio", + "wax", +] + +[[package]] +name = "pixi_manifest" +version = "0.1.0" +dependencies = [ + "console", + "dunce", + "fancy_display", + "fs-err", + "indexmap 2.7.1", + "itertools 0.14.0", + "miette 7.5.0", + "pathdiff", + "pep440_rs", + "pep508_rs", + "pixi_consts", + "pixi_git", + "pixi_spec", + "pixi_toml", + "pyproject-toml", + "rattler_conda_types", + "rattler_lock", + "rattler_solve", + "rattler_virtual_packages", + "regex", + "serde", + "serde-value", + "spdx", + "strsim", + "strum", + "thiserror 2.0.12", + "toml-span", + "toml_edit", + "tracing", + "url", +] + +[[package]] +name = "pixi_progress" +version = "0.1.0" +dependencies = [ + "indicatif", + "parking_lot 0.12.3", +] + +[[package]] +name = "pixi_pty" +version = "0.1.0" +dependencies = [ + "libc", + "nix", + "signal-hook", +] + +[[package]] +name = "pixi_record" +version = "0.1.0" +dependencies = [ + "file_url", + "miette 7.5.0", + "pixi_git", + "pixi_spec", + "rattler_conda_types", + "rattler_digest", + "rattler_lock", + "serde", + "thiserror 2.0.12", + "typed-path", + "url", +] + +[[package]] +name = "pixi_spec" +version = "0.1.0" +dependencies = [ + "dirs 6.0.0", + "file_url", + "itertools 0.14.0", + "pixi_git", + "pixi_toml", + "rattler_conda_types", + "rattler_digest", + "serde", + "serde-untagged", + "serde_with", + "thiserror 2.0.12", + "toml-span", + "toml_edit", + "tracing", + "typed-path", + "url", +] + +[[package]] +name = "pixi_toml" +version = "0.1.0" +dependencies = [ + "digest", + "hex", + "indexmap 2.7.1", + "itertools 0.14.0", + "strum", + "toml-span", +] + +[[package]] +name = "pixi_utils" +version = "0.1.0" +dependencies = [ + "async-fd-lock", + "fs-err", + "indicatif", + "itertools 0.14.0", + "miette 7.5.0", + "pep508_rs", + "pixi_config", + "pixi_consts", + "rattler_conda_types", + "rattler_networking", + "reqwest", + "reqwest-middleware", + "reqwest-retry", + "serde", + "serde_json", + "serde_yaml", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "pixi_uv_conversions" +version = "0.1.0" +dependencies = [ + "dunce", + "miette 7.5.0", + "pep440_rs", + "pep508_rs", + "pixi_git", + "pixi_manifest", + "pixi_record", + "pixi_spec", + "rattler_lock", + "serde_json", + "thiserror 2.0.12", + "url", + "uv-configuration", + "uv-distribution-filename", + "uv-distribution-types", + "uv-git-types", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-pypi-types", + "uv-python", + "uv-types", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + +[[package]] +name = "platform-info" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7539aeb3fdd8cb4f6a331307cf71a1039cee75e94e8a71725b9484f4a0d9451a" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "plist" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" +dependencies = [ + "base64 0.22.1", + "indexmap 2.7.1", + "quick-xml 0.32.0", + "serde", + "time", +] + +[[package]] +name = "polling" +version = "3.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "pori" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a63d338dec139f56dacc692ca63ad35a6be6a797442479b55acd611d79e906" +dependencies = [ + "nom", +] + +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy 0.7.35", +] + +[[package]] +name = "priority-queue" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090ded312ed32a928fb49cb91ab4db6523ae3767225e61fbf6ceaaec3664ed26" +dependencies = [ + "autocfg", + "equivalent", + "indexmap 2.7.1", +] + +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "procfs" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" +dependencies = [ + "bitflags 2.9.0", + "flate2", + "hex", + "procfs-core", + "rustix", +] + +[[package]] +name = "procfs-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" +dependencies = [ + "bitflags 2.9.0", + "hex", +] + +[[package]] +name = "ptr_meta" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9e76f66d3f9606f44e45598d155cb13ecf09f4a28199e48daf8c8fc937ea90" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pubgrub" +version = "0.3.0-alpha.1" +source = "git+https://github.com/astral-sh/pubgrub?rev=b70cf707aa43f21b32f3a61b8a0889b15032d5c4#b70cf707aa43f21b32f3a61b8a0889b15032d5c4" +dependencies = [ + "indexmap 2.7.1", + "log", + "priority-queue", + "rustc-hash", + "thiserror 2.0.12", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=b70cf707aa43f21b32f3a61b8a0889b15032d5c4)", +] + +[[package]] +name = "purl" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f112b0e2a9bca03924c39166775b74fec9a831f7d4d8fa539dee0e565f403a0e" +dependencies = [ + "hex", + "percent-encoding", + "phf", + "serde", + "smartstring", + "thiserror 1.0.69", + "unicase", +] + +[[package]] +name = "pypi_mapping" +version = "0.1.0" +dependencies = [ + "async-once-cell", + "fs-err", + "futures", + "http-cache-reqwest", + "itertools 0.14.0", + "miette 7.5.0", + "pep440_rs", + "pep508_rs", + "pixi_config", + "pixi_consts", + "rattler_conda_types", + "rattler_digest", + "reqwest", + "reqwest-middleware", + "reqwest-retry", + "serde", + "serde_json", + "tokio", + "url", +] + +[[package]] +name = "pypi_modifiers" +version = "0.1.0" +dependencies = [ + "miette 7.5.0", + "pixi_default_versions", + "pixi_manifest", + "rattler_conda_types", + "rattler_virtual_packages", + "regex", + "thiserror 2.0.12", + "uv-distribution-filename", + "uv-pep508", + "uv-platform-tags", +] + +[[package]] +name = "pyproject-toml" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643af57c3f36ba90a8b53e972727d8092f7408a9ebfbaf4c3d2c17b07c58d835" +dependencies = [ + "indexmap 2.7.1", + "pep440_rs", + "pep508_rs", + "serde", + "thiserror 1.0.69", + "toml", +] + +[[package]] +name = "quick-xml" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.37.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003" +dependencies = [ + "memchr", +] + +[[package]] +name = "quinn" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.23.23", + "socket2", + "thiserror 2.0.12", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +dependencies = [ + "bytes", + "getrandom 0.2.15", + "rand 0.8.5", + "ring", + "rustc-hash", + "rustls 0.23.23", + "rustls-pki-types", + "slab", + "thiserror 2.0.12", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "quote" +version = "1.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "quoted_printable" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "640c9bd8497b02465aeef5375144c26062e0dcd5939dfcbb0f5db76cb8c17c73" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rancor" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caf5f7161924b9d1cea0e4cabc97c372cea92b5f927fc13c6bca67157a0ad947" +dependencies = [ + "ptr_meta", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.21", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.1", +] + +[[package]] +name = "rattler" +version = "0.32.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78f7a0f01c00a744e5b1d14cb30556a59de6092eedb0dc384d28e41a9cadfe37" +dependencies = [ + "anyhow", + "clap", + "console", + "digest", + "dirs 6.0.0", + "fs-err", + "futures", + "humantime", + "indexmap 2.7.1", + "indicatif", + "itertools 0.14.0", + "memchr", + "memmap2 0.9.5", + "once_cell", + "parking_lot 0.12.3", + "rattler_cache", + "rattler_conda_types", + "rattler_digest", + "rattler_menuinst", + "rattler_networking", + "rattler_package_streaming", + "rattler_shell", + "rayon", + "reflink-copy", + "regex", + "reqwest", + "reqwest-middleware", + "serde_json", + "simple_spawn_blocking", + "smallvec", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "uuid", +] + +[[package]] +name = "rattler_cache" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75de91ad84b88ff2a96240ba5a122cc0276f266bd0db9c355780a8b25ca760f3" +dependencies = [ + "anyhow", + "dashmap", + "digest", + "dirs 6.0.0", + "fs-err", + "fs4", + "futures", + "fxhash", + "itertools 0.14.0", + "parking_lot 0.12.3", + "rattler_conda_types", + "rattler_digest", + "rattler_networking", + "rattler_package_streaming", + "rayon", + "reqwest", + "reqwest-middleware", + "serde_json", + "simple_spawn_blocking", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "rattler_conda_types" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a38f19d8845726afad1fd507ef76fae9e95914dfb16d300beaf0bc446e4cdbb3" +dependencies = [ + "chrono", + "dirs 6.0.0", + "file_url", + "fs-err", + "fxhash", + "glob", + "hex", + "indexmap 2.7.1", + "itertools 0.14.0", + "lazy-regex", + "nom", + "purl", + "rattler_digest", + "rattler_macros", + "rattler_redaction", + "rayon", + "regex", + "serde", + "serde-untagged", + "serde_json", + "serde_repr", + "serde_with", + "serde_yaml", + "simd-json", + "smallvec", + "strum", + "tempfile", + "thiserror 2.0.12", + "tracing", + "typed-path", + "url", +] + +[[package]] +name = "rattler_digest" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2167e27739ae38fa8d65266e8aeb86d2c68baa464bca836ebbffbf944e44a389" +dependencies = [ + "blake2", + "digest", + "generic-array", + "hex", + "md-5", + "serde", + "serde_with", + "sha2", + "tokio", +] + +[[package]] +name = "rattler_lock" +version = "0.22.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5fc5b838bf91dbdbd0119a70280bd6c6337c3002998e54f7b44f3ca4c6e5119" +dependencies = [ + "chrono", + "file_url", + "fxhash", + "indexmap 2.7.1", + "itertools 0.14.0", + "pep440_rs", + "pep508_rs", + "rattler_conda_types", + "rattler_digest", + "serde", + "serde-value", + "serde_repr", + "serde_with", + "serde_yaml", + "thiserror 2.0.12", + "typed-path", + "url", +] + +[[package]] +name = "rattler_macros" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382cfcb2acfcdd5a0d7efdbb86705e03435c76c784f404d78b517649b522d244" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "rattler_menuinst" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe7aa3764ef7b38f9b2b07732e820d298f1134fecebe7e1720a86a4b71f5e2" +dependencies = [ + "chrono", + "configparser", + "dirs 6.0.0", + "fs-err", + "known-folders", + "once_cell", + "plist", + "quick-xml 0.37.2", + "rattler_conda_types", + "rattler_shell", + "regex", + "serde", + "serde_json", + "sha2", + "shlex", + "tempfile", + "thiserror 2.0.12", + "tracing", + "unicode-normalization", + "which", + "windows 0.60.0", + "windows-registry 0.5.0", +] + +[[package]] +name = "rattler_networking" +version = "0.22.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142d9e08b909b85caa724323a32e305c571af9b7ea825d481972fc37696384c8" +dependencies = [ + "anyhow", + "async-trait", + "aws-config", + "aws-sdk-s3", + "base64 0.22.1", + "dirs 6.0.0", + "fs-err", + "getrandom 0.3.1", + "google-cloud-auth", + "google-cloud-token", + "http 1.2.0", + "itertools 0.14.0", + "keyring", + "netrc-rs", + "reqwest", + "reqwest-middleware", + "retry-policies", + "serde", + "serde_json", + "tempfile", + "thiserror 2.0.12", + "tracing", + "url", +] + +[[package]] +name = "rattler_package_streaming" +version = "0.22.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501024c475b83ff675c6e27512539855fd1907e365152462aa883296daee386a" +dependencies = [ + "bzip2", + "chrono", + "fs-err", + "futures-util", + "num_cpus", + "rattler_conda_types", + "rattler_digest", + "rattler_networking", + "rattler_redaction", + "reqwest", + "reqwest-middleware", + "serde_json", + "simple_spawn_blocking", + "tar", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "zip 2.2.3", + "zstd", +] + +[[package]] +name = "rattler_redaction" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fb481bc7af5d6564f120307bc4481efb4e55c8502424acec3409a4e5d61ef12" +dependencies = [ + "reqwest", + "reqwest-middleware", + "url", +] + +[[package]] +name = "rattler_repodata_gateway" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537dec187efd7603e463d077d85361fba657b6abd2e86ce6a9275c6176635364" +dependencies = [ + "anyhow", + "async-compression", + "async-fd-lock", + "async-trait", + "blake2", + "bytes", + "cache_control", + "cfg-if", + "chrono", + "dashmap", + "dirs 6.0.0", + "file_url", + "fs-err", + "futures", + "hex", + "http 1.2.0", + "http-cache-semantics", + "humansize", + "humantime", + "itertools 0.14.0", + "json-patch", + "libc", + "memmap2 0.9.5", + "parking_lot 0.12.3", + "pin-project-lite", + "rattler_cache", + "rattler_conda_types", + "rattler_digest", + "rattler_networking", + "rattler_redaction", + "reqwest", + "reqwest-middleware", + "retry-policies", + "rmp-serde", + "self_cell", + "serde", + "serde_json", + "serde_with", + "simple_spawn_blocking", + "superslice", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "wasmtimer", + "windows-sys 0.59.0", + "zstd", +] + +[[package]] +name = "rattler_shell" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28468af9ca2b9ac9d40d50d8cca43e596769ef7aa8050076d5178977347b4ec" +dependencies = [ + "enum_dispatch", + "fs-err", + "indexmap 2.7.1", + "itertools 0.14.0", + "rattler_conda_types", + "serde_json", + "shlex", + "sysinfo", + "tempfile", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "rattler_solve" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32604285d4e970dd4716379013bb18ae9ffc49dc449862e7d54d120079a66ada" +dependencies = [ + "chrono", + "futures", + "indexmap 2.7.1", + "itertools 0.14.0", + "rattler_conda_types", + "rattler_digest", + "resolvo", + "serde", + "tempfile", + "thiserror 2.0.12", + "tracing", + "url", +] + +[[package]] +name = "rattler_virtual_packages" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf18e5372605eb4b4548108af4fd1ca39906d6af1498f8e1db4ffd734b303fb9" +dependencies = [ + "archspec", + "libloading", + "nom", + "once_cell", + "plist", + "rattler_conda_types", + "regex", + "serde", + "thiserror 2.0.12", + "tracing", + "winver", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags 2.9.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "redox_users" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 2.0.12", +] + +[[package]] +name = "ref-cast" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "reflink-copy" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9efd944f26afa2406cbbabff39fac533c9bc24b13d7f1f12e14ae3e7bdc66cdb" +dependencies = [ + "cfg-if", + "libc", + "rustix", + "windows 0.60.0", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "relative-path" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" + +[[package]] +name = "rend" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a35e8a6bf28cd121053a66aa2e6a2e3eaffad4a60012179f0e864aa5ffeff215" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "reqwest" +version = "0.12.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" +dependencies = [ + "async-compression", + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.4.8", + "http 1.2.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-rustls 0.27.5", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "mime_guess", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls 0.23.23", + "rustls-native-certs 0.8.1", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls 0.26.2", + "tokio-socks", + "tokio-util", + "tower 0.5.2", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", + "windows-registry 0.2.0", +] + +[[package]] +name = "reqwest-middleware" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e8975513bd9a7a43aad01030e79b3498e05db14e9d945df6483e8cf9b8c4c4" +dependencies = [ + "anyhow", + "async-trait", + "http 1.2.0", + "reqwest", + "serde", + "thiserror 1.0.69", + "tower-service", +] + +[[package]] +name = "reqwest-retry" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c73e4195a6bfbcb174b790d9b3407ab90646976c55de58a6515da25d851178" +dependencies = [ + "anyhow", + "async-trait", + "futures", + "getrandom 0.2.15", + "http 1.2.0", + "hyper 1.6.0", + "parking_lot 0.11.2", + "reqwest", + "reqwest-middleware", + "retry-policies", + "thiserror 1.0.69", + "tokio", + "tracing", + "wasm-timer", +] + +[[package]] +name = "resolvo" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5314eb4b865d39acd1b3cd05eb91b87031bb49fd1278a1bdf8d6680f1389ec29" +dependencies = [ + "ahash", + "bitvec", + "elsa", + "event-listener", + "futures", + "indexmap 2.7.1", + "itertools 0.14.0", + "petgraph", + "tracing", +] + +[[package]] +name = "retry-policies" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5875471e6cab2871bc150ecb8c727db5113c9338cc3354dc5ee3425b6aa40a1c" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac", + "zeroize", +] + +[[package]] +name = "ring" +version = "0.17.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rkyv" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e147371c75553e1e2fcdb483944a8540b8438c31426279553b9a8182a9b7b65" +dependencies = [ + "bytecheck", + "bytes", + "hashbrown 0.15.2", + "indexmap 2.7.1", + "munge", + "ptr_meta", + "rancor", + "rend", + "rkyv_derive", + "smallvec", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246b40ac189af6c675d124b802e8ef6d5246c53e17367ce9501f8f66a81abb7a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rlimit" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a" +dependencies = [ + "libc", +] + +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rstest" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e905296805ab93e13c1ec3a03f4b6c4f35e9498a3d5fa96dc626d22c03cd89" +dependencies = [ + "futures-timer", + "futures-util", + "rstest_macros", + "rustc_version", +] + +[[package]] +name = "rstest_macros" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef0053bbffce09062bee4bcc499b0fbe7a57b879f1efe088d6d8d4c7adcdef9b" +dependencies = [ + "cfg-if", + "glob", + "proc-macro-crate", + "proc-macro2", + "quote", + "regex", + "relative-path", + "rustc_version", + "syn", + "unicode-ident", +] + +[[package]] +name = "rust-netrc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e98097f62769f92dbf95fb51f71c0a68ec18a4ee2e70e0d3e4f47ac005d63e9" +dependencies = [ + "shellexpand", + "thiserror 1.0.69", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.23.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +dependencies = [ + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework 2.11.1", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "schannel", + "security-framework 2.11.1", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework 3.2.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +dependencies = [ + "web-time", +] + +[[package]] +name = "rustls-platform-verifier" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" +dependencies = [ + "core-foundation 0.9.4", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls 0.23.23", + "rustls-native-certs 0.7.3", + "rustls-platform-verifier-android", + "rustls-webpki 0.102.8", + "security-framework 2.11.1", + "security-framework-sys", + "webpki-roots", + "winapi", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scroll" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" +dependencies = [ + "scroll_derive", +] + +[[package]] +name = "scroll_derive" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "secret-service" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4d35ad99a181be0a60ffcbe85d680d98f87bdc4d7644ade319b87076b9dbfd4" +dependencies = [ + "aes", + "cbc", + "futures-util", + "generic-array", + "hkdf", + "num", + "once_cell", + "rand 0.8.5", + "serde", + "sha2", + "zbus", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "num-bigint", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.10.0", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "self-replace" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ec815b5eab420ab893f63393878d89c90fdd94c0bcc44c07abb8ad95552fb7" +dependencies = [ + "fastrand", + "tempfile", + "windows-sys 0.52.0", +] + +[[package]] +name = "self_cell" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "serde" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_ignored" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "566da67d80e92e009728b3731ff0e5360cb181432b8ca73ea30bb1d170700d76" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "indexmap 2.7.1", + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.7.1", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap 2.7.1", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", + "sha2-asm", +] + +[[package]] +name = "sha2-asm" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b845214d6175804686b2bd482bcffe96651bb2d1200742b712003504a2dac1ab" +dependencies = [ + "cc", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shell-escape" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" + +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + +[[package]] +name = "shellexpand" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" +dependencies = [ + "bstr", + "dirs 5.0.1", + "os_str_bytes", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simd-json" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" +dependencies = [ + "getrandom 0.2.15", + "halfbrown", + "ref-cast", + "serde", + "serde_json", + "simdutf8", + "value-trait", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "simple_asn1" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror 2.0.12", + "time", +] + +[[package]] +name = "simple_spawn_blocking" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55c0b0b683828aa9d4f5c0e59b0c856a12c30a65b5f1ca4292664734d76fa9c2" +dependencies = [ + "tokio", +] + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +dependencies = [ + "serde", +] + +[[package]] +name = "smartstring" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" +dependencies = [ + "autocfg", + "static_assertions", + "version_check", +] + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures", + "httparse", + "log", + "rand 0.8.5", + "sha1", +] + +[[package]] +name = "spdx" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" +dependencies = [ + "smallvec", +] + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "ssri" +version = "9.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da7a2b3c2bc9693bcb40870c4e9b5bf0d79f9cb46273321bf855ec513e919082" +dependencies = [ + "base64 0.21.7", + "digest", + "hex", + "miette 5.10.0", + "serde", + "sha-1", + "sha2", + "thiserror 1.0.69", + "xxhash-rust", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "superslice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" + +[[package]] +name = "supports-color" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" +dependencies = [ + "is_ci", +] + +[[package]] +name = "supports-hyperlinks" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b" + +[[package]] +name = "supports-unicode" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" + +[[package]] +name = "syn" +version = "2.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sys-info" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "sysctl" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea" +dependencies = [ + "bitflags 2.9.0", + "byteorder", + "enum-as-inner", + "libc", + "thiserror 1.0.69", + "walkdir", +] + +[[package]] +name = "sysinfo" +version = "0.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01" +dependencies = [ + "core-foundation-sys", + "libc", + "memchr", + "ntapi", + "rayon", + "windows 0.57.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tabwriter" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce91f2f0ec87dff7e6bcbbeb267439aa1188703003c6055193c821487400432" +dependencies = [ + "unicode-width 0.2.0", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "target-lexicon" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" + +[[package]] +name = "temp-env" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96374855068f47402c3121c6eed88d29cb1de8f3ab27090e273e420bdabcf050" +dependencies = [ + "futures", + "parking_lot 0.12.3", +] + +[[package]] +name = "tempfile" +version = "3.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" +dependencies = [ + "cfg-if", + "fastrand", + "getrandom 0.3.1", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "terminal_size" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +dependencies = [ + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "textwrap" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width 0.2.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tl" +version = "0.7.8" +source = "git+https://github.com/astral-sh/tl.git?rev=6e25b2ee2513d75385101a8ff9f591ef51f314ec#6e25b2ee2513d75385101a8ff9f591ef51f314ec" + +[[package]] +name = "tokio" +version = "1.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls 0.23.23", + "tokio", +] + +[[package]] +name = "tokio-socks" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" +dependencies = [ + "either", + "futures-util", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-util" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml-span" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "757f36f490e7b3a25ed9fb692d7a0beb1424eabec3f7e8f40f576bece9a8cdc5" +dependencies = [ + "serde", + "smallvec", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap 2.7.1", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typed-path" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41713888c5ccfd99979fcd1afd47b71652e331b3d4a0e19d30769e80fec76cce" + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "uds_windows" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" +dependencies = [ + "memoffset", + "tempfile", + "winapi", +] + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "unscanny" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" +dependencies = [ + "getrandom 0.3.1", + "rand 0.9.0", +] + +[[package]] +name = "uv-auth" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.22.1", + "futures", + "http 1.2.0", + "percent-encoding", + "reqwest", + "reqwest-middleware", + "rust-netrc", + "rustc-hash", + "tokio", + "tracing", + "url", + "uv-once-map", + "uv-static", +] + +[[package]] +name = "uv-build-backend" +version = "0.1.0" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "csv", + "flate2", + "fs-err", + "globset", + "itertools 0.14.0", + "serde", + "sha2", + "spdx", + "tar", + "thiserror 2.0.12", + "toml", + "tracing", + "uv-distribution-filename", + "uv-fs", + "uv-globfilter", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-version", + "uv-warnings", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=b70cf707aa43f21b32f3a61b8a0889b15032d5c4)", + "walkdir", + "zip 0.6.6", +] + +[[package]] +name = "uv-build-frontend" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anstream", + "fs-err", + "indoc", + "itertools 0.14.0", + "owo-colors", + "regex", + "rustc-hash", + "serde", + "serde_json", + "tempfile", + "thiserror 2.0.12", + "tokio", + "toml_edit", + "tracing", + "uv-configuration", + "uv-distribution", + "uv-distribution-types", + "uv-fs", + "uv-pep440", + "uv-pep508", + "uv-pypi-types", + "uv-python", + "uv-static", + "uv-types", + "uv-virtualenv", + "uv-warnings", +] + +[[package]] +name = "uv-cache" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "fs-err", + "nanoid", + "rmp-serde", + "rustc-hash", + "serde", + "tempfile", + "tracing", + "url", + "uv-cache-info", + "uv-cache-key", + "uv-dirs", + "uv-distribution-filename", + "uv-distribution-types", + "uv-fs", + "uv-normalize", + "uv-pypi-types", + "uv-static", + "walkdir", +] + +[[package]] +name = "uv-cache-info" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "fs-err", + "globwalk", + "serde", + "thiserror 2.0.12", + "toml", + "tracing", + "walkdir", +] + +[[package]] +name = "uv-cache-key" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "hex", + "memchr", + "percent-encoding", + "seahash", + "url", +] + +[[package]] +name = "uv-client" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "async-trait", + "async_http_range_reader", + "async_zip", + "bytecheck", + "fs-err", + "futures", + "html-escape", + "http 1.2.0", + "itertools 0.14.0", + "jiff", + "percent-encoding", + "reqwest", + "reqwest-middleware", + "reqwest-retry", + "rkyv", + "rmp-serde", + "serde", + "serde_json", + "sys-info", + "thiserror 2.0.12", + "tl", + "tokio", + "tokio-util", + "tracing", + "url", + "uv-auth", + "uv-cache", + "uv-cache-key", + "uv-configuration", + "uv-distribution-filename", + "uv-distribution-types", + "uv-fs", + "uv-metadata", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-static", + "uv-version", + "uv-warnings", +] + +[[package]] +name = "uv-configuration" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "either", + "fs-err", + "rayon", + "rustc-hash", + "serde", + "serde-untagged", + "serde_json", + "thiserror 2.0.12", + "tracing", + "url", + "uv-auth", + "uv-cache", + "uv-cache-info", + "uv-cache-key", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-static", + "which", +] + +[[package]] +name = "uv-console" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "console", + "ctrlc", +] + +[[package]] +name = "uv-dirs" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "etcetera", + "uv-static", +] + +[[package]] +name = "uv-dispatch" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "futures", + "itertools 0.14.0", + "rustc-hash", + "thiserror 2.0.12", + "tokio", + "tracing", + "uv-build-backend", + "uv-build-frontend", + "uv-cache", + "uv-client", + "uv-configuration", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-git", + "uv-install-wheel", + "uv-installer", + "uv-platform-tags", + "uv-pypi-types", + "uv-python", + "uv-resolver", + "uv-types", + "uv-version", +] + +[[package]] +name = "uv-distribution" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "either", + "fs-err", + "futures", + "nanoid", + "owo-colors", + "reqwest", + "reqwest-middleware", + "rmp-serde", + "rustc-hash", + "serde", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "toml", + "tracing", + "url", + "uv-cache", + "uv-cache-info", + "uv-cache-key", + "uv-client", + "uv-configuration", + "uv-distribution-filename", + "uv-distribution-types", + "uv-extract", + "uv-fs", + "uv-git", + "uv-git-types", + "uv-metadata", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-types", + "uv-workspace", + "walkdir", + "zip 0.6.6", +] + +[[package]] +name = "uv-distribution-filename" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "memchr", + "rkyv", + "serde", + "smallvec", + "thiserror 2.0.12", + "url", + "uv-normalize", + "uv-pep440", + "uv-platform-tags", + "uv-small-str", +] + +[[package]] +name = "uv-distribution-types" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "arcstr", + "bitflags 2.9.0", + "fs-err", + "itertools 0.14.0", + "jiff", + "owo-colors", + "percent-encoding", + "petgraph", + "rkyv", + "rustc-hash", + "serde", + "serde_json", + "thiserror 2.0.12", + "tracing", + "url", + "uv-auth", + "uv-cache-info", + "uv-cache-key", + "uv-distribution-filename", + "uv-fs", + "uv-git-types", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=b70cf707aa43f21b32f3a61b8a0889b15032d5c4)", +] + +[[package]] +name = "uv-extract" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "astral-tokio-tar", + "async-compression", + "async_zip", + "fs-err", + "futures", + "md-5", + "rayon", + "reqwest", + "rustc-hash", + "sha2", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "uv-configuration", + "uv-distribution-filename", + "uv-pypi-types", + "xz2", + "zip 0.6.6", +] + +[[package]] +name = "uv-fs" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "backon", + "dunce", + "either", + "encoding_rs_io", + "fs-err", + "fs2", + "junction", + "path-slash", + "percent-encoding", + "rustix", + "same-file", + "schemars", + "serde", + "tempfile", + "tokio", + "tracing", + "winsafe 0.0.22", +] + +[[package]] +name = "uv-git" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "cargo-util", + "dashmap", + "fs-err", + "reqwest", + "reqwest-middleware", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "uv-auth", + "uv-cache-key", + "uv-fs", + "uv-git-types", + "uv-static", + "uv-version", + "which", +] + +[[package]] +name = "uv-git-types" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "serde", + "thiserror 2.0.12", + "tracing", + "url", +] + +[[package]] +name = "uv-globfilter" +version = "0.1.0" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "globset", + "regex", + "regex-automata 0.4.9", + "thiserror 2.0.12", + "tracing", + "walkdir", +] + +[[package]] +name = "uv-install-wheel" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "configparser", + "csv", + "data-encoding", + "fs-err", + "mailparse", + "pathdiff", + "platform-info", + "reflink-copy", + "regex", + "rustc-hash", + "same-file", + "self-replace", + "serde", + "serde_json", + "sha2", + "tempfile", + "thiserror 2.0.12", + "tracing", + "uv-cache-info", + "uv-distribution-filename", + "uv-fs", + "uv-normalize", + "uv-pep440", + "uv-platform-tags", + "uv-pypi-types", + "uv-shell", + "uv-trampoline-builder", + "uv-warnings", + "walkdir", + "zip 0.6.6", +] + +[[package]] +name = "uv-installer" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "async-channel", + "fs-err", + "futures", + "rayon", + "rustc-hash", + "same-file", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "uv-cache", + "uv-cache-info", + "uv-cache-key", + "uv-configuration", + "uv-distribution", + "uv-distribution-types", + "uv-fs", + "uv-git-types", + "uv-install-wheel", + "uv-normalize", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-python", + "uv-static", + "uv-types", + "uv-warnings", + "walkdir", +] + +[[package]] +name = "uv-macros" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "textwrap", +] + +[[package]] +name = "uv-metadata" +version = "0.1.0" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "async_zip", + "fs-err", + "futures", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "uv-distribution-filename", + "uv-normalize", + "uv-pypi-types", + "zip 0.6.6", +] + +[[package]] +name = "uv-normalize" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "rkyv", + "serde", + "uv-small-str", +] + +[[package]] +name = "uv-once-map" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "dashmap", + "futures", + "tokio", +] + +[[package]] +name = "uv-options-metadata" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "serde", +] + +[[package]] +name = "uv-pep440" +version = "0.7.0" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "rkyv", + "serde", + "tracing", + "unicode-width 0.1.14", + "unscanny", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=b70cf707aa43f21b32f3a61b8a0889b15032d5c4)", +] + +[[package]] +name = "uv-pep508" +version = "0.6.0" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "arcstr", + "boxcar", + "indexmap 2.7.1", + "itertools 0.14.0", + "regex", + "rustc-hash", + "schemars", + "serde", + "smallvec", + "thiserror 2.0.12", + "unicode-width 0.1.14", + "url", + "uv-fs", + "uv-normalize", + "uv-pep440", + "version-ranges 0.1.1 (git+https://github.com/astral-sh/pubgrub?rev=b70cf707aa43f21b32f3a61b8a0889b15032d5c4)", +] + +[[package]] +name = "uv-platform-tags" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "memchr", + "rkyv", + "rustc-hash", + "serde", + "thiserror 2.0.12", + "uv-small-str", +] + +[[package]] +name = "uv-pypi-types" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "hashbrown 0.15.2", + "indexmap 2.7.1", + "itertools 0.14.0", + "jiff", + "mailparse", + "regex", + "rkyv", + "serde", + "serde-untagged", + "thiserror 2.0.12", + "toml", + "toml_edit", + "tracing", + "url", + "uv-distribution-filename", + "uv-fs", + "uv-git-types", + "uv-normalize", + "uv-pep440", + "uv-pep508", +] + +[[package]] +name = "uv-python" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "configparser", + "fs-err", + "futures", + "goblin", + "itertools 0.14.0", + "owo-colors", + "procfs", + "regex", + "reqwest", + "reqwest-middleware", + "reqwest-retry", + "rmp-serde", + "same-file", + "serde", + "serde_json", + "target-lexicon", + "tempfile", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tracing", + "url", + "uv-cache", + "uv-cache-info", + "uv-cache-key", + "uv-client", + "uv-dirs", + "uv-distribution-filename", + "uv-extract", + "uv-fs", + "uv-install-wheel", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-state", + "uv-static", + "uv-trampoline-builder", + "uv-warnings", + "which", + "windows-registry 0.4.0", + "windows-result 0.3.1", + "windows-sys 0.59.0", +] + +[[package]] +name = "uv-requirements" +version = "0.1.0" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "configparser", + "console", + "fs-err", + "futures", + "rustc-hash", + "serde", + "thiserror 2.0.12", + "toml", + "tracing", + "url", + "uv-cache-key", + "uv-client", + "uv-configuration", + "uv-console", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-fs", + "uv-git", + "uv-git-types", + "uv-normalize", + "uv-pep508", + "uv-pypi-types", + "uv-requirements-txt", + "uv-resolver", + "uv-types", + "uv-warnings", + "uv-workspace", +] + +[[package]] +name = "uv-requirements-txt" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "fs-err", + "regex", + "reqwest", + "reqwest-middleware", + "thiserror 2.0.12", + "tracing", + "unscanny", + "url", + "uv-client", + "uv-configuration", + "uv-distribution-types", + "uv-fs", + "uv-normalize", + "uv-pep508", + "uv-pypi-types", + "uv-warnings", +] + +[[package]] +name = "uv-resolver" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "arcstr", + "clap", + "dashmap", + "either", + "futures", + "hashbrown 0.15.2", + "indexmap 2.7.1", + "itertools 0.14.0", + "jiff", + "owo-colors", + "petgraph", + "pubgrub", + "rkyv", + "rustc-hash", + "same-file", + "serde", + "smallvec", + "textwrap", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "toml", + "toml_edit", + "tracing", + "url", + "uv-cache-key", + "uv-client", + "uv-configuration", + "uv-distribution", + "uv-distribution-filename", + "uv-distribution-types", + "uv-fs", + "uv-git", + "uv-git-types", + "uv-metadata", + "uv-normalize", + "uv-once-map", + "uv-pep440", + "uv-pep508", + "uv-platform-tags", + "uv-pypi-types", + "uv-python", + "uv-requirements-txt", + "uv-static", + "uv-types", + "uv-warnings", + "uv-workspace", +] + +[[package]] +name = "uv-shell" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "home", + "same-file", + "tracing", + "uv-fs", + "uv-static", + "winreg", +] + +[[package]] +name = "uv-small-str" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "arcstr", + "rkyv", + "serde", +] + +[[package]] +name = "uv-state" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "fs-err", + "tempfile", + "uv-dirs", +] + +[[package]] +name = "uv-static" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "uv-macros", +] + +[[package]] +name = "uv-trampoline-builder" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "fs-err", + "thiserror 2.0.12", + "uv-fs", + "zip 0.6.6", +] + +[[package]] +name = "uv-types" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anyhow", + "rustc-hash", + "thiserror 2.0.12", + "url", + "uv-cache", + "uv-configuration", + "uv-distribution-filename", + "uv-distribution-types", + "uv-git", + "uv-normalize", + "uv-once-map", + "uv-pep440", + "uv-pep508", + "uv-pypi-types", + "uv-python", +] + +[[package]] +name = "uv-version" +version = "0.6.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" + +[[package]] +name = "uv-virtualenv" +version = "0.0.4" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "fs-err", + "itertools 0.14.0", + "pathdiff", + "self-replace", + "thiserror 2.0.12", + "tracing", + "uv-fs", + "uv-platform-tags", + "uv-pypi-types", + "uv-python", + "uv-shell", + "uv-version", +] + +[[package]] +name = "uv-warnings" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "anstream", + "owo-colors", + "rustc-hash", +] + +[[package]] +name = "uv-workspace" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.6.1#c91ee82a82f4bca97e1363752ae026763a2d697a" +dependencies = [ + "fs-err", + "glob", + "itertools 0.14.0", + "owo-colors", + "rustc-hash", + "serde", + "thiserror 2.0.12", + "tokio", + "toml", + "toml_edit", + "tracing", + "url", + "uv-cache-key", + "uv-distribution-types", + "uv-fs", + "uv-git-types", + "uv-macros", + "uv-normalize", + "uv-options-metadata", + "uv-pep440", + "uv-pep508", + "uv-pypi-types", + "uv-static", + "uv-warnings", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "value-trait" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" +dependencies = [ + "float-cmp", + "halfbrown", + "itoa", + "ryu", +] + +[[package]] +name = "version-ranges" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8d079415ceb2be83fc355adbadafe401307d5c309c7e6ade6638e6f9f42f42d" +dependencies = [ + "smallvec", +] + +[[package]] +name = "version-ranges" +version = "0.1.1" +source = "git+https://github.com/astral-sh/pubgrub?rev=b70cf707aa43f21b32f3a61b8a0889b15032d5c4#b70cf707aa43f21b32f3a61b8a0889b15032d5c4" +dependencies = [ + "smallvec", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-streams" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmtimer" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0048ad49a55b9deb3953841fa1fc5858f0efbcb7a18868c899a360269fac1b23" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.12.3", + "pin-utils", + "slab", + "wasm-bindgen", +] + +[[package]] +name = "wax" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d12a78aa0bab22d2f26ed1a96df7ab58e8a93506a3e20adb47c51a93b4e1357" +dependencies = [ + "const_format", + "itertools 0.11.0", + "nom", + "pori", + "regex", + "thiserror 1.0.69", + "walkdir", +] + +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.26.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "which" +version = "7.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2774c861e1f072b3aadc02f8ba886c26ad6321567ecc294c935434cad06f1283" +dependencies = [ + "either", + "env_home", + "regex", + "rustix", + "winsafe 0.0.19", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +dependencies = [ + "windows-core 0.57.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddf874e74c7a99773e62b1c671427abf01a425e77c3d3fb9fb1e4883ea934529" +dependencies = [ + "windows-collections", + "windows-core 0.60.1", + "windows-future", + "windows-link", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5467f79cc1ba3f52ebb2ed41dbb459b8e7db636cc3429458d9a852e15bc24dec" +dependencies = [ + "windows-core 0.60.1", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement 0.57.0", + "windows-interface 0.57.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings 0.1.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.60.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca21a92a9cae9bf4ccae5cf8368dce0837100ddf6e6d57936749e85f152f6247" +dependencies = [ + "windows-implement 0.59.0", + "windows-interface 0.59.0", + "windows-link", + "windows-result 0.3.1", + "windows-strings 0.3.1", +] + +[[package]] +name = "windows-future" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a787db4595e7eb80239b74ce8babfb1363d8e343ab072f2ffe901400c03349f0" +dependencies = [ + "windows-core 0.60.1", + "windows-link", +] + +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-implement" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26fd936d991781ea39e87c3a27285081e3c0da5ca0fcbc02d368cc6f52ff01" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" + +[[package]] +name = "windows-numerics" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "005dea54e2f6499f2cee279b8f703b3cf3b5734a2d8d21867c8f44003182eeed" +dependencies = [ + "windows-core 0.60.1", + "windows-link", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result 0.2.0", + "windows-strings 0.1.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +dependencies = [ + "windows-result 0.3.1", + "windows-strings 0.3.1", + "windows-targets 0.53.0", +] + +[[package]] +name = "windows-registry" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c44a98275e31bfd112bb06ba96c8ab13c03383a3753fdddd715406a1824c7e0" +dependencies = [ + "windows-link", + "windows-result 0.3.1", + "windows-strings 0.3.1", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06374efe858fab7e4f881500e6e86ec8bc28f9462c47e5a9941a0142ad86b189" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winnow" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89a47b489f8fc5b949477e89dca4d1617f162c6c53fbcbefde553ab17b342ff9" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "winsafe" +version = "0.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" + +[[package]] +name = "winsafe" +version = "0.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d6ad6cbd9c6e5144971e326303f0e453b61d82e4f72067fccf23106bccd8437" + +[[package]] +name = "winver" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e0e7162b9e282fd75a0a832cce93994bdb21208d848a418cd05a5fdd9b9ab33" +dependencies = [ + "windows 0.48.0", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.9.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" +dependencies = [ + "libc", + "linux-raw-sys", + "rustix", +] + +[[package]] +name = "xdg-home" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "xmlparser" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" + +[[package]] +name = "xxhash-rust" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" + +[[package]] +name = "xz2" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" +dependencies = [ + "lzma-sys", +] + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zbus" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" +dependencies = [ + "async-broadcast", + "async-executor", + "async-fs", + "async-io", + "async-lock", + "async-process", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix", + "ordered-stream", + "rand 0.8.5", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "windows-sys 0.52.0", + "xdg-home", + "zbus_macros", + "zbus_names", + "zvariant", +] + +[[package]] +name = "zbus_macros" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", + "zvariant_utils", +] + +[[package]] +name = "zbus_names" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" +dependencies = [ + "serde", + "static_assertions", + "zvariant", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf01143b2dd5d134f11f545cf9f1431b13b749695cb33bcce051e7568f99478" +dependencies = [ + "zerocopy-derive 0.8.21", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712c8386f4f4299382c9abee219bee7084f78fb939d88b6840fcc1320d5f6da2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "byteorder", + "crc32fast", + "crossbeam-utils", + "flate2", +] + +[[package]] +name = "zip" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b280484c454e74e5fff658bbf7df8fdbe7a07c6b2de4a53def232c15ef138f3a" +dependencies = [ + "arbitrary", + "crc32fast", + "crossbeam-utils", + "displaydoc", + "flate2", + "indexmap 2.7.1", + "memchr", + "thiserror 2.0.12", + "time", + "zopfli", +] + +[[package]] +name = "zopfli" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" +dependencies = [ + "bumpalo", + "crc32fast", + "lockfree-object-pool", + "log", + "once_cell", + "simd-adler32", +] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.14+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "zvariant" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" +dependencies = [ + "endi", + "enumflags2", + "serde", + "static_assertions", + "zvariant_derive", +] + +[[package]] +name = "zvariant_derive" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", + "zvariant_utils", +] + +[[package]] +name = "zvariant_utils" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/pixi_docs/Cargo.toml b/pixi_docs/Cargo.toml new file mode 100644 index 0000000000..115925f4fe --- /dev/null +++ b/pixi_docs/Cargo.toml @@ -0,0 +1,21 @@ +[workspace] +# We don't use any workspace settings at the moment, +# but without it Cargo thinks this crate belongs to our top-level workspace + +[package] +authors = ["pixi contributors "] +description = "Documentation binary that is used to generate documentation for pixi" +edition = "2021" +homepage = "https://github.com/prefix-dev/pixi" +license = "BSD-3-Clause" +name = "pixi_docs" +readme = "README.md" +repository = "https://github.com/prefix-dev/pixi" +version = "0.1.0" + + +[dependencies] +clap = "4.5.31" +itertools = "0.14.0" +pixi = { path = "../.", features = ["self_update"] } +rattler_conda_types = "0.31.3" diff --git a/pixi_docs/README.md b/pixi_docs/README.md new file mode 100644 index 0000000000..ca27db2217 --- /dev/null +++ b/pixi_docs/README.md @@ -0,0 +1,3 @@ +# Documentation generator for pixi cli + +Run with `pixi run generate-cli-docs` to generate the documentation for the pixi cli. diff --git a/pixi_docs/src/main.rs b/pixi_docs/src/main.rs new file mode 100644 index 0000000000..2f2444becd --- /dev/null +++ b/pixi_docs/src/main.rs @@ -0,0 +1,335 @@ +use clap::{Command, CommandFactory}; +use itertools::Itertools; +use std::error::Error; +use std::fmt::Write; +use std::fs; +use std::path::{Path, PathBuf}; +use std::str::FromStr; + +const MD_EXTENSION: &str = ".md"; + +/// Generates documentation for the Pixi CLI by: +/// - Loading the clap command from the pixi crate +/// - Creating markdown files for each command +/// - Organizing commands into a directory structure +fn main() -> Result<(), Box> { + let command = get_command(); + + let output_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../docs/reference/cli"); + + println!("Generating CLI documentation in {}", output_dir.display()); + + process_subcommands(&command, Vec::new(), &output_dir)?; + + Ok(()) +} + +/// Converts a command to Markdown format +fn subcommand_to_md(parents: &[String], command: &Command) -> String { + let mut buffer = String::with_capacity(1024); + + // Start with autogenerated header + // This is also used in the `ci.yml` to remove all the autogenerated files before running this script. + writeln!(buffer, "").unwrap(); + + // Parent path for relative links + let parent_path = if parents.is_empty() { + "".to_string() + } else { + format!("{}/", parents.join("/")) + }; + + // Name with correct relative links including .md extension + let mut name_parts = Vec::new(); + let depth = parents.len() + 1; // Total depth including current command + + // Handle parents + for (i, parent) in parents.iter().enumerate() { + let ups = depth - i - 1; + let relative_path = if ups > 0 { + format!("{}{}.md", "../".repeat(ups), parent) + } else { + format!("{}.md", parent) + }; + name_parts.push(format!("[{}]({}) ", parent, relative_path)); + } + + // Add current command without link + name_parts.push(format!("{}", command.get_name())); + + // Title + writeln!(buffer, "# {}", name_parts.join("")).unwrap(); + + // About + if command.get_name() != "pixi" { + if let Some(about) = command.get_about() { + writeln!(buffer, "\n## About").unwrap(); + writeln!(buffer, "{}", about).unwrap(); + } + } + + // Additional description + writeln!( + buffer, + "\n--8<-- \"docs/reference/cli/{}{}_extender.md:description\"", + parent_path, + command.get_name() + ) + .unwrap(); + + // Usage + writeln!(buffer, "\n## Usage").unwrap(); + writeln!(buffer, "```").unwrap(); + { + let mut command = command.clone(); + writeln!( + buffer, + "{}{}{}", + parents.join(" "), + if parents.is_empty() { "" } else { " " }, + command + .render_usage() + .to_string() + .trim_start_matches("Usage: ") + ) + .unwrap(); + } + writeln!(buffer, "```").unwrap(); + + // Subcommands + if command.has_subcommands() { + writeln!(buffer, "\n## Subcommands").unwrap(); + let subcommands: Vec<_> = command.get_subcommands().collect(); + if !subcommands.is_empty() { + writeln!( + buffer, + "{}", + subcommands_table(subcommands, command.get_name()) + ) + .unwrap(); + } + } + + // Positionals + let positionals: Vec<_> = command.get_positionals().collect(); + if !positionals.is_empty() { + writeln!(buffer, "\n## Arguments").unwrap(); + write!(buffer, "{}", arguments(&positionals)).unwrap(); + } + + // Options + let opts: Vec<_> = command.get_opts().collect(); + if !opts.is_empty() { + let sorted_opts: Vec<_> = opts + .into_iter() + .filter(|o| !o.is_hide_set()) + .sorted_by(|a, b| { + a.get_long() + .unwrap_or_default() + .cmp(&b.get_long().unwrap_or_default()) + }) + .collect(); + + // Split into global and non-global options + let (global_opts, regular_opts): (Vec<_>, Vec<_>) = + sorted_opts.into_iter().partition(|o| o.is_global_set()); + + // Regular (non-global) options + if !regular_opts.is_empty() || command.get_version().is_some() { + writeln!(buffer, "\n## Options").unwrap(); + if command.get_version().is_some() { + writeln!(buffer, "- `--version (-V)`\n: Display version information").unwrap(); + } + write!(buffer, "{}", arguments(®ular_opts)).unwrap(); + } + + // Global options + if !global_opts.is_empty() { + writeln!(buffer, "\n## Global Options").unwrap(); + write!(buffer, "{}", arguments(&global_opts)).unwrap(); + } + } + + // Long about + if let Some(long) = command.get_long_about() { + writeln!(buffer, "\n## Description").unwrap(); + writeln!(buffer, "{}\n", long.to_string().trim_end()).unwrap(); + } + + // Write snippet link + writeln!( + buffer, + "\n--8<-- \"docs/reference/cli/{}{}_extender.md:example\"", + parent_path, + command.get_name() + ) + .unwrap(); + + buffer +} + +/// Processes a command and its subcommands, generating markdown documentation +fn process_subcommands( + command: &Command, + parent_path: Vec, + output_dir: &Path, +) -> Result<(), Box> { + let mut current_path = parent_path; + current_path.push(command.get_name().to_string()); + + let command_file_name = format!("{}{}", current_path.join("/"), MD_EXTENSION); + let command_file_path = output_dir.join(&command_file_name); + + fs::create_dir_all(command_file_path.parent().ok_or("Invalid path")?) + .map_err(|e| format!("Failed to create directories: {}", e))?; + fs::write( + &command_file_path, + subcommand_to_md(¤t_path[..current_path.len() - 1], command), + ) + .map_err(|e| { + format!( + "Failed to write command file {}: {}", + command_file_path.display(), + e + ) + })?; + + for subcommand in command.get_subcommands() { + process_subcommands(subcommand, current_path.clone(), output_dir)?; + } + + Ok(()) +} + +/// Generates a Markdown table of subcommands with command names as links to their pages +fn subcommands_table(subcommands: Vec<&Command>, parent: &str) -> String { + let mut buffer = String::with_capacity(1024); + writeln!(buffer, "| Command | Description |").unwrap(); + writeln!(buffer, "|---------|-------------|").unwrap(); + for subcommand in subcommands { + // Skip hidden subcommands + if subcommand.is_hide_set() { + continue; + } + // Create a link to the subcommand's Markdown file + let command_name = subcommand.get_name(); + let link = format!("{}/{}{}", parent, command_name, MD_EXTENSION); + let link_md = format!("[`{}`]({})", command_name, link); + writeln!( + buffer, + "| {} | {} |", + link_md, + subcommand.get_about().unwrap_or_default() + ) + .unwrap(); + } + buffer +} + +// Function to write a list of options to the buffer +fn arguments(options: &[&clap::Arg]) -> String { + let mut buffer = String::with_capacity(1024); + for opt in options { + if opt.is_hide_set() || + // Skip short only as that is a bug in clap's disable help function. + (opt.get_long().is_none() && opt.get_short().is_some()) { + continue; + } + + let long_name = if let Some(long) = opt.get_long() { + format!("--{}", long) + } else { + if let Some(value_names) = opt.get_value_names() { + // No long name, but we have value names, assuming positional. + format!("<{}>", value_names[0]) + } else { + "".to_string() + } + }; + let id = format!("arg-{}", long_name); + + // Write the option as a bullet point with a self-referential tag + write!( + buffer, + "- `{}{}{}`\n:", + id, + id, + long_name, + if let Some(short) = opt.get_short() { + format!(" (-{})", short) + } else { + "".to_string() + }, + if opt.get_action().takes_values() && !opt.is_positional() { + if let Some(value_names) = opt.get_value_names() { + format!(" <{}>", value_names.join(" ")) + } else { + "".to_string() + } + } else { + "".to_string() + } + ) + .unwrap(); + + // Write the help text + if let Some(help) = opt.get_help() { + write!(buffer, " {}\n", help).unwrap(); + } else { + write!(buffer, "\n").unwrap(); + } + + // Add required + if opt.is_required_set() { + write!(buffer, "
**required**: `true`\n").unwrap(); + } + + // Handle aliases, env, defaults, and options + if let Some(aliases) = opt.get_visible_aliases() { + if !aliases.is_empty() { + write!(buffer, "
**aliases**: {}\n", aliases.join(", ")).unwrap(); + } + } + if let Some(env) = opt.get_env() { + write!(buffer, "
**env**: `{}`\n", env.to_string_lossy()).unwrap(); + } + if !opt.get_default_values().is_empty() { + write!( + buffer, + "
**default**: `{}`\n", + opt.get_default_values() + .iter() + .map(|value| { + if rattler_conda_types::Platform::from_str( + value.as_os_str().to_str().unwrap(), + ) + .is_ok() + { + "current_platform".to_string() + } else { + value.to_string_lossy().to_string() + } + }) + .join(", ") + ) + .unwrap(); + } + if opt.get_action().takes_values() && !opt.get_possible_values().is_empty() { + write!( + buffer, + "
**options**: `{}`\n", + opt.get_possible_values() + .iter() + .map(|value| value.get_name()) + .join("`, `") + ) + .unwrap(); + } + } + buffer +} + +/// Loads the CLI command structure from pixi +fn get_command() -> Command { + pixi::cli::Args::command() +} diff --git a/src/cli/add.rs b/src/cli/add.rs index b02cc01b84..1226654a3a 100644 --- a/src/cli/add.rs +++ b/src/cli/add.rs @@ -13,7 +13,7 @@ use crate::{ WorkspaceLocator, }; -/// Adds dependencies to the project +/// Adds dependencies to the workspace /// /// The dependencies should be defined as MatchSpec for conda package, or a PyPI /// requirement for the `--pypi` dependencies. If no specific version is @@ -29,11 +29,13 @@ use crate::{ /// 3.11.3.* at the time of writing. /// /// Adding multiple dependencies at once is also supported: +/// /// - `pixi add python pytest`: This will add both `python` and `pytest` to the /// project's dependencies. /// /// The `--platform` and `--build/--host` flags make the dependency target /// specific. +/// /// - `pixi add python --platform linux-64 --platform osx-arm64`: Will add the /// latest version of python for linux-64 and osx-arm64 platforms. /// - `pixi add python --build`: Will add the latest version of python for as a @@ -43,12 +45,14 @@ use crate::{ /// /// The `--pypi` option will add the package as a pypi dependency. This cannot /// be mixed with the conda dependencies +/// /// - `pixi add --pypi boto3` -/// - `pixi add --pypi "boto3==version" +/// - `pixi add --pypi "boto3==version"` /// /// If the project manifest is a `pyproject.toml`, adding a pypi dependency will /// add it to the native pyproject `project.dependencies` array or to the native /// `dependency-groups` table if a feature is specified: +/// /// - `pixi add --pypi boto3` will add `boto3` to the `project.dependencies` /// array /// - `pixi add --pypi boto3 --feature aws` will add `boto3` to the diff --git a/src/cli/clean.rs b/src/cli/clean.rs index e4dda41454..fd0b374e2e 100644 --- a/src/cli/clean.rs +++ b/src/cli/clean.rs @@ -22,8 +22,11 @@ pub enum Command { Cache(CacheArgs), } -/// Clean the parts of your system which are touched by pixi. -/// Defaults to cleaning the environments and task cache. +/// Cleanup the environments. +/// +/// This command removes the information in the .pixi folder. +/// You can specify the environment to remove with the `--environment` flag. +/// /// Use the `cache` subcommand to clean the cache. #[derive(Parser, Debug)] pub struct Args { @@ -43,6 +46,8 @@ pub struct Args { } /// Clean the cache of your system which are touched by pixi. +/// +/// Specify the cache type to clean with the flags. #[derive(Parser, Debug)] pub struct CacheArgs { /// Clean only the pypi related cache. diff --git a/src/cli/cli_config.rs b/src/cli/cli_config.rs index c2c7840732..634ef168fb 100644 --- a/src/cli/cli_config.rs +++ b/src/cli/cli_config.rs @@ -151,15 +151,15 @@ impl PrefixUpdateConfig { #[derive(Parser, Debug, Default, Clone)] pub struct GitRev { /// The git branch - #[clap(long, requires = "git", conflicts_with_all = ["tag", "rev"])] + #[clap(long, requires = "git", conflicts_with_all = ["tag", "rev"], group="git_group")] pub branch: Option, /// The git tag - #[clap(long, requires = "git", conflicts_with_all = ["branch", "rev"])] + #[clap(long, requires = "git", conflicts_with_all = ["branch", "rev"], group="git_group")] pub tag: Option, /// The git revision - #[clap(long, requires = "git", conflicts_with_all = ["branch", "tag"])] + #[clap(long, requires = "git", conflicts_with_all = ["branch", "tag"], group="git_group")] pub rev: Option, } @@ -258,7 +258,7 @@ pub struct DependencyConfig { pub feature: FeatureName, /// The git url to use when adding a git dependency - #[clap(long, short)] + #[clap(long, short, group = "git_group")] pub git: Option, #[clap(flatten)] @@ -266,7 +266,7 @@ pub struct DependencyConfig { pub rev: Option, /// The subdirectory of the git repository to use - #[clap(long, short, requires = "git")] + #[clap(long, short, requires = "git", group = "git_group")] pub subdir: Option, } diff --git a/src/cli/config.rs b/src/cli/config.rs index 3d5ffb8d42..62f05ff8b5 100644 --- a/src/cli/config.rs +++ b/src/cli/config.rs @@ -17,33 +17,28 @@ enum Subcommand { /// List configuration values /// - /// Example: - /// pixi config list default-channels + /// Example: `pixi config list default-channels` #[clap(visible_alias = "ls", alias = "l")] List(ListArgs), /// Prepend a value to a list configuration key /// - /// Example: - /// pixi config prepend default-channels bioconda + /// Example: `pixi config prepend default-channels bioconda` Prepend(PendArgs), /// Append a value to a list configuration key /// - /// Example: - /// pixi config append default-channels bioconda + /// Example: `pixi config append default-channels bioconda` Append(PendArgs), /// Set a configuration value /// - /// Example: - /// pixi config set default-channels '["conda-forge", "bioconda"]' + /// Example: `pixi config set default-channels '["conda-forge", "bioconda"]'` Set(SetArgs), /// Unset a configuration value /// - /// Example: - /// pixi config unset default-channels + /// Example: `pixi config unset default-channels` Unset(UnsetArgs), } diff --git a/src/cli/exec.rs b/src/cli/exec.rs index 89b87f6b99..cbbd0bb8fa 100644 --- a/src/cli/exec.rs +++ b/src/cli/exec.rs @@ -18,11 +18,13 @@ use uv_configuration::RAYON_INITIALIZE; use super::cli_config::ChannelsConfig; use crate::prefix::Prefix; -/// Run a command in a temporary environment. +/// Run a command and install it in a temporary environment. +/// +/// Remove the temporary environments with `pixi clean cache --exec`. #[derive(Parser, Debug)] #[clap(trailing_var_arg = true, arg_required_else_help = true)] pub struct Args { - /// The executable to run. + /// The executable to run, followed by any arguments. #[clap(num_args = 1.., value_hint = ValueHint::CommandWithArguments)] pub command: Vec, diff --git a/src/cli/global/add.rs b/src/cli/global/add.rs index 96825efe52..f02415b77e 100644 --- a/src/cli/global/add.rs +++ b/src/cli/global/add.rs @@ -9,8 +9,9 @@ use rattler_conda_types::MatchSpec; /// Adds dependencies to an environment /// /// Example: -/// - pixi global add --environment python numpy -/// - pixi global add --environment my_env pytest pytest-cov --expose pytest=pytest +/// +/// - `pixi global add --environment python numpy` +/// - `pixi global add --environment my_env pytest pytest-cov --expose pytest=pytest` #[derive(Parser, Debug, Clone)] #[clap(arg_required_else_help = true, verbatim_doc_comment)] pub struct Args { diff --git a/src/cli/global/expose.rs b/src/cli/global/expose.rs index 68ab0dbcf6..71733e33eb 100644 --- a/src/cli/global/expose.rs +++ b/src/cli/global/expose.rs @@ -11,8 +11,9 @@ use crate::{ /// Add exposed binaries from an environment to your global environment /// /// Example: -/// - pixi global expose add python310=python3.10 python3=python3 --environment myenv -/// - pixi global add --environment my_env pytest pytest-cov --expose pytest=pytest +/// +/// - `pixi global expose add python310=python3.10 python3=python3 --environment myenv` +/// - `pixi global add --environment my_env pytest pytest-cov --expose pytest=pytest` #[derive(Parser, Debug)] #[clap(arg_required_else_help = true, verbatim_doc_comment)] pub struct AddArgs { diff --git a/src/cli/global/install.rs b/src/cli/global/install.rs index c2885d42ae..411301f6c9 100644 --- a/src/cli/global/install.rs +++ b/src/cli/global/install.rs @@ -22,10 +22,11 @@ use pixi_config::{self, Config, ConfigCli}; /// Installs the defined packages in a globally accessible location and exposes their command line applications. /// /// Example: -/// - pixi global install starship nushell ripgrep bat -/// - pixi global install jupyter --with polars -/// - pixi global install --expose python3.8=python python=3.8 -/// - pixi global install --environment science --expose jupyter --expose ipython jupyter ipython polars +/// +/// - `pixi global install starship nushell ripgrep bat` +/// - `pixi global install jupyter --with polars` +/// - `pixi global install --expose python3.8=python python=3.8` +/// - `pixi global install --environment science --expose jupyter --expose ipython jupyter ipython polars` #[derive(Parser, Debug, Clone)] #[clap(arg_required_else_help = true, verbatim_doc_comment)] pub struct Args { diff --git a/src/cli/global/list.rs b/src/cli/global/list.rs index 93d5912182..ee7b16792d 100644 --- a/src/cli/global/list.rs +++ b/src/cli/global/list.rs @@ -8,12 +8,14 @@ use std::str::FromStr; /// Lists all packages previously installed into a globally accessible location via `pixi global install`. /// /// All environments: +/// /// - Yellow: the binaries that are exposed. /// - Green: the packages that are explicit dependencies of the environment. /// - Blue: the version of the installed package. /// - Cyan: the name of the environment. /// /// Per environment: +/// /// - Green: packages that are explicitly installed. #[derive(Parser, Debug)] #[clap(verbatim_doc_comment)] diff --git a/src/cli/global/mod.rs b/src/cli/global/mod.rs index 9bf465d81f..fc155b6228 100644 --- a/src/cli/global/mod.rs +++ b/src/cli/global/mod.rs @@ -39,12 +39,10 @@ pub enum Command { UpgradeAll(upgrade_all::Args), } -/// Subcommand for global package management actions +/// Subcommand for global package management actions. /// /// Install packages on the user level. -/// Example: -/// pixi global install my_package -/// pixi global remove my_package +/// Into to the [`$PIXI_HOME`] directory, which defaults to `~/.pixi`. #[derive(Debug, Parser)] pub struct Args { #[command(subcommand)] diff --git a/src/cli/global/remove.rs b/src/cli/global/remove.rs index a3d34cd397..3a0d357bb6 100644 --- a/src/cli/global/remove.rs +++ b/src/cli/global/remove.rs @@ -12,8 +12,7 @@ use std::str::FromStr; /// /// Use `pixi global uninstall` to remove the whole environment /// -/// Example: -/// - pixi global remove --environment python numpy +/// Example: `pixi global remove --environment python numpy` #[derive(Parser, Debug)] #[clap(arg_required_else_help = true, verbatim_doc_comment)] pub struct Args { diff --git a/src/cli/global/uninstall.rs b/src/cli/global/uninstall.rs index 54ff91afb3..4f87f2ecd5 100644 --- a/src/cli/global/uninstall.rs +++ b/src/cli/global/uninstall.rs @@ -8,8 +8,7 @@ use pixi_config::{Config, ConfigCli}; /// Uninstalls environments from the global environment. /// -/// Example: -/// pixi global uninstall pixi-pack rattler-build +/// Example: `pixi global uninstall pixi-pack rattler-build` #[derive(Parser, Debug, Clone)] #[clap(arg_required_else_help = true, verbatim_doc_comment)] pub struct Args { diff --git a/src/cli/init.rs b/src/cli/init.rs index 1d07436b38..33292bcde0 100644 --- a/src/cli/init.rs +++ b/src/cli/init.rs @@ -31,6 +31,13 @@ pub enum ManifestFormat { } /// Creates a new workspace +/// +/// This command is used to create a new workspace. +/// It prepares a manifest and some helpers for the user to start working. +/// +/// As pixi can both work with `pixi.toml` and `pyproject.toml` files, the user can choose which one to use with `--format`. +/// +/// You can import an existing conda environment file with the `--import` flag. #[derive(Parser, Debug)] pub struct Args { /// Where to place the workspace (defaults to current path) @@ -38,24 +45,29 @@ pub struct Args { pub path: PathBuf, /// Channels to use in the workspace. - #[arg(short, long = "channel", id = "channel", conflicts_with = "env_file")] + #[arg( + short, + long = "channel", + id = "CHANNEL", + conflicts_with = "ENVIRONMENT_FILE" + )] pub channels: Option>, /// Platforms that the workspace supports. - #[arg(short, long = "platform", id = "platform")] + #[arg(short, long = "platform", id = "PLATFORM")] pub platforms: Vec, /// Environment.yml file to bootstrap the workspace. - #[arg(short = 'i', long = "import")] + #[arg(short = 'i', long = "import", id = "ENVIRONMENT_FILE")] pub env_file: Option, /// The manifest format to create. - #[arg(long, conflicts_with_all = ["env_file", "pyproject_toml"], ignore_case = true)] + #[arg(long, conflicts_with_all = ["ENVIRONMENT_FILE", "pyproject_toml"], ignore_case = true)] pub format: Option, /// Create a pyproject.toml manifest instead of a pixi.toml manifest // BREAK (0.27.0): Remove this option from the cli in favor of the `format` option. - #[arg(long, conflicts_with_all = ["env_file", "format"], alias = "pyproject", hide = true)] + #[arg(long, conflicts_with_all = ["ENVIRONMENT_FILE", "format"], alias = "pyproject", hide = true)] pub pyproject_toml: bool, /// Source Control Management used for this workspace diff --git a/src/cli/install.rs b/src/cli/install.rs index d71d7b603a..ef8058784c 100644 --- a/src/cli/install.rs +++ b/src/cli/install.rs @@ -7,7 +7,20 @@ use fancy_display::FancyDisplay; use itertools::Itertools; use pixi_config::ConfigCli; -/// Install all dependencies +/// Install an environment, both updating the lockfile and installing the environment. +/// +/// This command installs an environment, if the lockfile is not up-to-date it will be updated. +/// +/// `pixi install` only installs one environment at a time, +/// if you have multiple environments you can select the right one with the `--environment` flag. +/// If you don't provide an environment, the `default` environment will be installed. +/// +/// If you want to install all environments, you can use the `--all` flag. +/// +/// Running `pixi install` is not required before running other commands like `pixi run` or `pixi shell`. +/// These commands will automatically install the environment if it is not already installed. +/// +/// You can use `pixi clean` to remove the installed environments and start fresh. #[derive(Parser, Debug)] pub struct Args { #[clap(flatten)] diff --git a/src/cli/lock.rs b/src/cli/lock.rs index 87d5a1157d..48338d89f6 100644 --- a/src/cli/lock.rs +++ b/src/cli/lock.rs @@ -9,7 +9,7 @@ use crate::{ WorkspaceLocator, }; -/// Solve environment and update the lock file +/// Solve environment and update the lock file without installing the environments. #[derive(Debug, Parser)] #[clap(arg_required_else_help = false)] pub struct Args { diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 9ed75459e0..6a2f744ba6 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -66,13 +66,12 @@ For more information, see the documentation at: https://pixi.sh ", consts::PIXI_VERSION) )] #[clap(arg_required_else_help = true)] -struct Args { +pub struct Args { #[command(subcommand)] command: Command, /// The verbosity level - /// (-v for warning, -vv for info, -vvv for debug, -vvvv for trace, -q for - /// quiet) + /// (-v for warning, -vv for info, -vvv for debug, -vvvv for trace, -q for quiet) #[command(flatten)] verbose: Verbosity, @@ -137,6 +136,7 @@ pub enum Command { Upload(upload::Args), Search(search::Args), #[cfg_attr(not(feature = "self_update"), clap(hide = true))] + #[cfg_attr(feature = "self_update", clap(hide = false))] SelfUpdate(self_update::Args), Clean(clean::Args), Completion(completion::Args), diff --git a/src/cli/project/channel/mod.rs b/src/cli/project/channel/mod.rs index ba430986b1..9b4e79cc92 100644 --- a/src/cli/project/channel/mod.rs +++ b/src/cli/project/channel/mod.rs @@ -20,6 +20,7 @@ pub struct Args { pub struct AddRemoveArgs { #[clap(flatten)] pub workspace_config: WorkspaceConfig, + /// The channel name or URL #[clap(required = true, num_args=1..)] pub channel: Vec, diff --git a/src/cli/project/description/mod.rs b/src/cli/project/description/mod.rs index 1edea303df..bafc803e17 100644 --- a/src/cli/project/description/mod.rs +++ b/src/cli/project/description/mod.rs @@ -18,8 +18,14 @@ pub struct Args { #[derive(Parser, Debug)] pub enum Command { /// Get the project description. + /// + /// Example: + /// `pixi project description get` Get, /// Set the project description. + /// + /// Example: + /// `pixi project description set "My awesome project"` Set(set::Args), } diff --git a/src/cli/project/export/conda_environment.rs b/src/cli/project/export/conda_environment.rs index 981a188810..847f30fc89 100644 --- a/src/cli/project/export/conda_environment.rs +++ b/src/cli/project/export/conda_environment.rs @@ -20,7 +20,7 @@ pub struct Args { #[clap(flatten)] pub workspace_config: WorkspaceConfig, - /// Explicit path to export the environment to + /// Explicit path to export the environment file to. pub output_path: Option, /// The platform to render the environment file for. diff --git a/src/cli/project/export/conda_explicit_spec.rs b/src/cli/project/export/conda_explicit_spec.rs index 4b7b136237..00e1700b7d 100644 --- a/src/cli/project/export/conda_explicit_spec.rs +++ b/src/cli/project/export/conda_explicit_spec.rs @@ -24,6 +24,7 @@ pub struct Args { /// Output directory for rendered explicit environment spec files pub output_dir: PathBuf, + /// The environments to render. Can be repeated for multiple environments. #[arg(short, long)] pub environment: Option>, diff --git a/src/cli/project/name/mod.rs b/src/cli/project/name/mod.rs index 8160cc3675..1d5b683ec5 100644 --- a/src/cli/project/name/mod.rs +++ b/src/cli/project/name/mod.rs @@ -20,7 +20,10 @@ pub struct Args { pub enum Command { /// Get the project name. Get, - /// Set the project name + /// Set the project name. + /// + /// Example: + /// `pixi project name set "my-project"` Set(set::Args), } diff --git a/src/cli/project/name/set.rs b/src/cli/project/name/set.rs index bf14896aab..2b11db9b7c 100644 --- a/src/cli/project/name/set.rs +++ b/src/cli/project/name/set.rs @@ -4,7 +4,7 @@ use miette::IntoDiagnostic; #[derive(Parser, Debug)] pub struct Args { - /// The project name + /// The project name, please only use lowercase letters (a-z), digits (0-9), hyphens (-), and underscores (_) #[clap(required = true, num_args = 1)] pub name: String, } diff --git a/src/cli/project/system_requirements/list.rs b/src/cli/project/system_requirements/list.rs index 90ee6005aa..6e0fe88ecb 100644 --- a/src/cli/project/system_requirements/list.rs +++ b/src/cli/project/system_requirements/list.rs @@ -8,9 +8,11 @@ use serde::Serialize; #[derive(Parser, Debug)] pub struct Args { + /// List the system requirements in JSON format. #[clap(long)] pub json: bool, + /// The environment to list the system requirements for. #[clap(long, short)] pub environment: Option, } diff --git a/src/cli/remove.rs b/src/cli/remove.rs index f861068981..e0757cfa78 100644 --- a/src/cli/remove.rs +++ b/src/cli/remove.rs @@ -9,12 +9,14 @@ use clap::Parser; use miette::{Context, IntoDiagnostic}; use pixi_manifest::FeaturesExt; -/// Removes dependencies from the project +/// Removes dependencies from the workspace. /// /// If the project manifest is a `pyproject.toml`, removing a pypi dependency /// with the `--pypi` flag will remove it from either +/// /// - the native pyproject `project.dependencies` array or, if a feature is /// specified, the native `project.optional-dependencies` table +/// /// - pixi `pypi-dependencies` tables of the default feature or, if a feature is /// specified, a named feature #[derive(Debug, Default, Parser)] diff --git a/src/cli/run.rs b/src/cli/run.rs index e721770853..eaf3344c6d 100644 --- a/src/cli/run.rs +++ b/src/cli/run.rs @@ -30,7 +30,13 @@ use crate::{ Workspace, WorkspaceLocator, }; -/// Runs task in project. +/// Runs task in the pixi environment. +/// +/// This command is used to run tasks in the pixi environment. +/// It will activate the environment and run the task in the environment. +/// It is using the deno_task_shell to run the task. +/// +/// `pixi run` will also update the lockfile and install the environment if it is required. #[derive(Parser, Debug, Default)] #[clap(trailing_var_arg = true, disable_help_flag = true)] pub struct Args { diff --git a/src/cli/self_update.rs b/src/cli/self_update.rs index e40f052faa..82fb87eb7e 100644 --- a/src/cli/self_update.rs +++ b/src/cli/self_update.rs @@ -17,7 +17,7 @@ use std::str::FromStr; /// Update pixi to the latest version or a specific version. #[derive(Debug, clap::Parser)] pub struct Args { - /// The desired version (to downgrade or upgrade to). Update to the latest version if not specified. + /// The desired version (to downgrade or upgrade to). #[clap(long)] version: Option, } diff --git a/src/cli/shell.rs b/src/cli/shell.rs index 2247ed0cbe..0b862b622f 100644 --- a/src/cli/shell.rs +++ b/src/cli/shell.rs @@ -22,7 +22,7 @@ use pixi_pty::unix::PtySession; #[cfg(target_family = "unix")] use crate::prefix::Prefix; -/// Start a shell in the pixi environment of the project +/// Start a shell in a pixi environment, run `exit` to leave the shell. #[derive(Parser, Debug)] pub struct Args { #[clap(flatten)] diff --git a/src/cli/task.rs b/src/cli/task.rs index 4664f11715..001a85724b 100644 --- a/src/cli/task.rs +++ b/src/cli/task.rs @@ -224,7 +224,7 @@ impl From for Task { } } -/// Interact with tasks in the project +/// Interact with tasks in the workspace #[derive(Parser, Debug)] #[clap(trailing_var_arg = true, arg_required_else_help = true)] pub struct Args { diff --git a/src/cli/update.rs b/src/cli/update.rs index fd2ff44cb6..5e1dc01272 100644 --- a/src/cli/update.rs +++ b/src/cli/update.rs @@ -19,7 +19,9 @@ use pixi_manifest::EnvironmentName; use rattler_conda_types::Platform; use rattler_lock::{LockFile, LockedPackageRef}; -/// Update dependencies as recorded in the local lock file +/// The `update` command checks if there are newer versions of the dependencies and updates the `pixi.lock` file and environments accordingly. +/// +/// It will only update the lock file if the dependencies in the manifest file are still compatible with the new versions. #[derive(Parser, Debug, Default)] pub struct Args { #[clap(flatten)] @@ -47,7 +49,8 @@ pub struct Args { #[derive(Parser, Debug, Default)] pub struct UpdateSpecsArgs { - /// The packages to update + /// The packages to update, space separated. + /// If no packages are provided, all packages will be updated. pub packages: Option>, /// The environments to update. If none is specified, all environments are diff --git a/src/cli/upgrade.rs b/src/cli/upgrade.rs index f02fca121c..c12807be7f 100644 --- a/src/cli/upgrade.rs +++ b/src/cli/upgrade.rs @@ -18,8 +18,9 @@ use crate::{ WorkspaceLocator, }; -/// Update the version of packages to the latest possible version, disregarding -/// the manifest version constraints +/// Checks if there are newer versions of the dependencies and upgrades them in the lockfile and manifest file. +/// +/// `pixi upgrade` loosens the requirements for the given packages, updates the lock file and the adapts the manifest accordingly. #[derive(Parser, Debug, Default)] pub struct Args { #[clap(flatten)] diff --git a/src/cli/upload.rs b/src/cli/upload.rs index ca7a7e5d8f..0259382891 100644 --- a/src/cli/upload.rs +++ b/src/cli/upload.rs @@ -21,8 +21,7 @@ use pixi_progress; /// Upload a conda package /// /// With this command, you can upload a conda package to a channel. -/// Example: -/// pixi upload https://prefix.dev/api/v1/upload/my_channel my_package.conda +/// Example: `pixi upload https://prefix.dev/api/v1/upload/my_channel my_package.conda` /// /// Use `pixi auth login` to authenticate with the server. #[derive(Parser, Debug)]