Skip to content

Commit 06d31b3

Browse files
KemingHegithub-actions[bot]
authored andcommitted
docs(src/assets/): update pixi official documentation
1 parent 0da8519 commit 06d31b3

File tree

11 files changed

+134
-20
lines changed

11 files changed

+134
-20
lines changed

src/assets/pixi/_metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"source_repo": "prefix-dev/pixi",
33
"docs_path": "docs",
4-
"updated_at": "2025-11-18T22:05:48Z",
5-
"commit_sha": "4aa99b2f59bb07b24c51a24909a99064f6c6ad75"
4+
"updated_at": "2025-11-25T22:05:53Z",
5+
"commit_sha": "6638d0a3b70ab87c3968adc4b31ab796b9a3c0c1"
66
}

src/assets/pixi/advanced/channel_logic.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ flowchart TD
4646
B --> C{Loop Over Channels}
4747
C --> D{Package in This Channel?}
4848
D -->|No| C
49-
D -->|Yes| E{"This the first channel
49+
D -->|Yes| E{"Is this the first channel
5050
for this package?"}
5151
E -->|Yes| F[Include Package in Candidates]
5252
E -->|No| G[Exclude Package from Candidates]

src/assets/pixi/concepts/conda_pypi.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Here is a non-exhaustive comparison of the features of conda and PyPI ecosystems
3030
| Package index | [`conda-forge`](https://prefix.dev/channels/conda-forge), [`bioconda`](https://prefix.dev/channels/bioconda), and more | [pypi.org](https://pypi.org) |
3131

3232
## `uv` by Astral
33-
Pixi uses the [`uv`](https:://github.com/astral-sh/uv) library to handle PyPI packages.
33+
Pixi uses the [`uv`](https://github.com/astral-sh/uv) library to handle PyPI packages.
3434
Pixi doesn't install `uv` (the tool) itself: because both tools are built in Rust, it is used as a library.
3535

3636
We're extremely grateful to the [Astral](https://astral.sh) team for their work on `uv`, which is a great library that allows us to handle PyPI packages in a much better way than before.
@@ -44,7 +44,7 @@ Initially, next to `pixi` we were building a library called `rip` which had the
4444
Because Pixi supports both ecosystems, it currently needs two different solvers to handle the dependencies.
4545

4646
- The [`resolvo`](https://github.com/prefix-dev/resolvo) library is used to solve the conda dependencies. Implemented in [`rattler`](https://github.com/conda/rattler).
47-
- The [`PubGrub`](https://github.com/pubgrub-rs/pubgrub) library is used to solve the PyPI dependencies. Implemented in [`uv`](https:://github.com/astral-sh/uv).
47+
- The [`PubGrub`](https://github.com/pubgrub-rs/pubgrub) library is used to solve the PyPI dependencies. Implemented in [`uv`](https://github.com/astral-sh/uv).
4848

4949
!!! Note
5050
The holy grail of Pixi is to have a single solver that can handle both ecosystems.

src/assets/pixi/first_workspace.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ version = "0.1.0"
3939
```
4040

4141
??? tip "Do you want autocompletion of the manifest file?"
42-
As `pixi.toml` has a JSON schema, it is possible to use IDE’s like VSCode to edit the field with autocompletion.
42+
As `pixi.toml` has a JSON schema, it is possible to use IDEs like VSCode to edit the field with autocompletion.
4343
Install the [Even Better TOML VSCode extension](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) to get the best experience.
4444
Or use the integrated schema support in PyCharm.
4545

src/assets/pixi/getting_started.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Basic usage of Pixi
22

3-
Pixi can do alot of things, but it is designed to be simple to use.
3+
Pixi can do a lot of things, but it is designed to be simple to use.
44
Let's go through the basic usage of Pixi.
55

66
## Managing workspaces
@@ -68,7 +68,7 @@ This can be a predefined task or any normal executable.
6868
- [`pixi task add`](./reference/cli/pixi/task/add.md) - Add a new task to the manifest
6969

7070
Tasks can have other tasks as dependencies.
71-
Here is an example of a more complex task usecase
71+
Here is an example of a more complex task use case
7272
```toml title="pixi.toml"
7373
[tasks]
7474
build = "make build"

src/assets/pixi/installation.md

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ To install `pixi` you can run the following command in your terminal:
2222
Or run:
2323

2424
```powershell
25-
powershell -ExecutionPolicy ByPass -c "irm -useb https://pixi.sh/install.ps1 | iex"
25+
powershell -ExecutionPolicy Bypass -c "irm -useb https://pixi.sh/install.ps1 | iex"
2626
```
2727

2828
??? note "What does this do?"
@@ -111,7 +111,7 @@ cargo build
111111
cargo test
112112
```
113113

114-
If you have any issues building because of the dependency on `rattler` checkout
114+
If you have any issues building because of the dependency on `rattler` check out
115115
its [compile steps](https://github.com/conda/rattler/tree/main#give-it-a-try).
116116

117117

@@ -124,9 +124,12 @@ its [compile steps](https://github.com/conda/rattler/tree/main#give-it-a-try).
124124
| Variable | Description | Default Value |
125125
|----------------------|------------------------------------------------------------------------------------|-----------------------|
126126
| `PIXI_VERSION` | The version of Pixi getting installed, can be used to up- or down-grade. | `latest` |
127-
| `PIXI_HOME` | The location of the binary folder. | `$HOME/.pixi` |
127+
| `PIXI_HOME` | The location of the pixi home folder containing global environments and configs. | `$HOME/.pixi` |
128+
| `PIXI_BIN_DIR` | The location where the standalone pixi binary should be installed. | `$PIXI_HOME/bin` |
128129
| `PIXI_ARCH` | The architecture the Pixi version was built for. | `uname -m` |
129130
| `PIXI_NO_PATH_UPDATE`| If set the `$PATH` will not be updated to add `pixi` to it. | |
131+
| `PIXI_DOWNLOAD_URL` | Overrides the download URL for the Pixi binary (useful for mirrors or custom builds). | GitHub releases, e.g. [linux-64](https://github.com/prefix-dev/pixi/releases/latest/download/pixi-x86_64-unknown-linux-musl.tar.gz) |
132+
| `NETRC` | Path to a custom `.netrc` file for authentication with private repositories. | |
130133
| `TMP_DIR` | The temporary directory the script uses to download to and unpack the binary from. | `/tmp` |
131134

132135
For example, on Apple Silicon, you can force the installation of the x86 version:
@@ -138,6 +141,40 @@ its [compile steps](https://github.com/conda/rattler/tree/main#give-it-a-try).
138141
curl -fsSL https://pixi.sh/install.sh | PIXI_VERSION=v0.18.0 bash
139142
```
140143

144+
To make a "drop-in" installation of pixi directly in the user `$PATH`:
145+
```shell
146+
curl -fsSL https://pixi.sh/install.sh | PIXI_BIN_DIR=/usr/local/bin PIXI_NO_PATH_UPDATE=1 bash
147+
```
148+
149+
#### Using `.netrc` for Authentication
150+
151+
If you need to download Pixi from a private repository that requires authentication, you can use a `.netrc` file instead of hardcoding credentials in the `PIXI_DOWNLOAD_URL`.
152+
153+
The install script automatically uses `.netrc` for authentication with `curl` and `wget`. By default, it looks for `~/.netrc`. You can specify a custom location using the `NETRC` environment variable:
154+
155+
```shell
156+
# Use the default ~/.netrc file
157+
curl -fsSL https://pixi.sh/install.sh | PIXI_DOWNLOAD_URL=https://private.example.com/pixi-latest.tar.gz bash
158+
```
159+
160+
```shell
161+
# Use a custom .netrc file
162+
curl -fsSL https://pixi.sh/install.sh | NETRC=/path/to/custom/.netrc PIXI_DOWNLOAD_URL=https://private.example.com/pixi-latest.tar.gz bash
163+
```
164+
165+
Your `.netrc` file should contain credentials in the following format:
166+
```
167+
machine private.example.com
168+
login your-username
169+
password your-token-or-password
170+
```
171+
172+
!!! tip "Security Recommendation"
173+
Using `.netrc` is more secure than embedding credentials directly in the `PIXI_DOWNLOAD_URL` (e.g., `https://user:[email protected]/file`), as it keeps credentials separate from the URL and prevents them from appearing in logs or process listings.
174+
175+
!!! tip "Security Note"
176+
The install script automatically masks any credentials embedded in the download URL when displaying messages, replacing them with `***:***@` to prevent credentials from appearing in logs or console output.
177+
141178
=== "Windows"
142179

143180
The installation script has several options that can be manipulated through environment variables.
@@ -147,12 +184,24 @@ its [compile steps](https://github.com/conda/rattler/tree/main#give-it-a-try).
147184
| `PIXI_VERSION` | The version of Pixi getting installed, can be used to up- or down-grade. | `latest` |
148185
| `PIXI_HOME` | The location of the installation. | `$Env:USERPROFILE\.pixi` |
149186
| `PIXI_NO_PATH_UPDATE`| If set, the `$PATH` will not be updated to add `pixi` to it. | `false` |
187+
| `PIXI_DOWNLOAD_URL` | Overrides the download URL for the Pixi binary (useful for mirrors or custom builds). | GitHub releases, e.g. [win-64](https://github.com/prefix-dev/pixi/releases/latest/download/pixi-x86_64-pc-windows-msvc.zip) |
150188

151189
For example, set the version:
152190
```powershell
153191
$env:PIXI_VERSION='v0.18.0'; powershell -ExecutionPolicy Bypass -Command "iwr -useb https://pixi.sh/install.ps1 | iex"
154192
```
155193

194+
#### Authentication for Private Repositories
195+
196+
If you need to download Pixi from a private repository that requires authentication, you can embed credentials in the `PIXI_DOWNLOAD_URL`. The install script will automatically mask credentials in its output for security.
197+
198+
```powershell
199+
$env:PIXI_DOWNLOAD_URL='https://username:[email protected]/pixi-latest.zip'; powershell -ExecutionPolicy Bypass -Command "iwr -useb https://pixi.sh/install.ps1 | iex"
200+
```
201+
202+
!!! tip "Security Note"
203+
The PowerShell install script automatically masks any credentials embedded in the download URL when displaying messages, replacing them with `***:***@` to prevent credentials from appearing in logs or console output.
204+
156205
## Autocompletion
157206

158207
To get autocompletion follow the instructions for your shell.
@@ -214,7 +263,7 @@ Before un-installation you might want to delete any previous files pixi has inst
214263
```shell
215264
cd path/to/workspace && pixi clean
216265
```
217-
3. Remove the `pixi` and it's global environments
266+
3. Remove the `pixi` and its global environments
218267
```shell
219268
rm -r ~/.pixi
220269
```

src/assets/pixi/misc/FAQ.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## What is the difference with `conda`, `mamba`, `poetry`, `pip`
22

3-
| Tool | Installs python | Builds packages | Runs predefined tasks | Has lock files builtin | Fast | Use without python |
3+
| Tool | Installs Python | Builds packages | Runs predefined tasks | Has lock files builtin | Fast | Use without python |
44
|--------|-----------------|-----------------|-----------------------|-----------------------|------|------------------------------------------------------------------------|
55
| Conda |||||||
66
| Mamba |||||| [](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html) |

src/assets/pixi/reference/pixi_configuration.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,23 @@ workspace manifest.
9393

9494
### `tls-no-verify`
9595

96-
When set to true, the TLS certificates are not verified.
96+
When set to true, TLS certificate verification is disabled for all network connections, including both conda channels and PyPI registries.
97+
You can override this from the CLI with `--tls-no-verify`.
9798

9899
!!! warning
99100

100101
This is a security risk and should only be used for testing purposes or internal networks.
101102

102-
You can override this from the CLI with `--tls-no-verify`.
103+
This is a global setting that affects all connections.
104+
If you only need to bypass TLS verification for specific PyPI hosts, consider using [`pypi-config.allow-insecure-host`](#pypi-config) instead for more granular control.
105+
106+
!!! note "Implementation detail and limitations"
107+
108+
For PyPI operations, since uv does not support a global TLS verification disable flag, pixi automatically adds all configured PyPI index hosts to the trusted hosts list when `tls-no-verify` is enabled.
109+
For the main PyPI index, `files.pythonhosted.org` (the download host) is also automatically added.
110+
**Important limitation:** If your custom PyPI index redirects package downloads to a different host (e.g., a separate CDN or artifact server), that download host will not be automatically trusted, even with `tls-no-verify` set.
111+
In these cases, you *must* manually add the download host to [`pypi-config.allow-insecure-host`](#pypi-config).
112+
103113

104114
```toml title="config.toml"
105115
--8<-- "docs/source_files/pixi_config_tomls/main_config.toml:tls-no-verify"
@@ -233,7 +243,7 @@ To setup a certain number of defaults for the usage of PyPI registries. You can
233243
`pixi init`.
234244
- `keyring-provider`: Allows the use of the [keyring](https://pypi.org/project/keyring/) python package to store and
235245
retrieve credentials.
236-
- `allow-insecure-host`: Allow insecure connections to host.
246+
- `allow-insecure-host`: A list of host names (without protocol or port) for which TLS certificate verification should be disabled when accessing PyPI registries. This is useful when working with internal PyPI mirrors that use self-signed certificates. For disabling TLS verification globally for all connections, use [`tls-no-verify`](#tls-no-verify) instead.
237247

238248
```toml title="config.toml"
239249
--8<-- "docs/source_files/pixi_config_tomls/main_config.toml:pypi-config"

src/assets/pixi/reference/pixi_manifest.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,17 @@ Example:
173173
If `conda-forge` is not present in `conda-pypi-map` `pixi` will use `prefix.dev` mapping for it.
174174

175175
```toml
176-
conda-pypi-map = { "conda-forge" = "https://example.com/mapping", "https://repo.prefix.dev/robostack" = "local/robostack_mapping.json"}
176+
conda-pypi-map = { conda-forge = "https://example.com/mapping", "https://repo.prefix.dev/robostack" = "local/robostack_mapping.json"}
177+
```
178+
179+
It is also possible to disable fetching external mpping by adding an empty map to the list
180+
181+
```toml
182+
conda-pypi-map = { conda-forge = "map.json" }
183+
```
184+
185+
```json title="map.json"
186+
{}
177187
```
178188

179189
### `channel-priority` (optional)
@@ -235,7 +245,7 @@ solve-strategy = "lowest"
235245
[feature.one]
236246
solve-strategy = "lowest"
237247
[feature.two]
238-
solve-strategy = "lowest-direct"
248+
solve-strategy = "lowest-direct"
239249
[environments]
240250
combined = ["two", "one"] # <- The solve strategy from feature `two` is used
241251
```

src/assets/pixi/switching_from/conda.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ bat pixi.toml
6262
!!! warn "Never install `pip` with `pixi global`"
6363
Installations with `pixi global` get their own isolated environment.
6464
Installing `pip` with `pixi global` will create a new isolated environment with its own `pip` binary.
65-
Using that `pip` binary will install packages in the `pip` environment, making it unreachable form anywhere as you can't activate it.
65+
Using that `pip` binary will install packages in the `pip` environment, making it unreachable from anywhere as you can't activate it.
6666

6767

6868
## Automated switching
@@ -80,7 +80,7 @@ You can import `environment.yml` files into a Pixi workspace — see our [import
8080

8181
Encountering issues? Here are solutions to some common problems when being used to the `conda` workflow:
8282

83-
- Dependency `is excluded because due to strict channel priority not using this option from: 'https://conda.anaconda.org/conda-forge/'`
83+
- Dependency `is excluded due to strict channel priority not using this option from: 'https://conda.anaconda.org/conda-forge/'`
8484
This error occurs when the package is in multiple channels. `pixi` uses a strict channel priority. See [channel priority](../advanced/channel_logic.md) for more information.
8585
- `pixi global install pip`, pip doesn't work.
8686
`pip` is installed in the global isolated environment. Use `pixi add pip` in a workspace to install `pip` in the workspace environment and use that workspace.

0 commit comments

Comments
 (0)