Skip to content

Commit 23835d4

Browse files
authored
Merge branch 'main' into add_dry-run_cap_to_pixi_global_update
2 parents e021ec9 + 2bba845 commit 23835d4

File tree

333 files changed

+15807
-5934
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

333 files changed

+15807
-5934
lines changed

.github/workflows/ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ jobs:
273273
name: "build binary | linux x86_64"
274274
steps:
275275
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
276-
- uses: rui314/setup-mold@85c79d00377f0d32cdbae595a46de6f7c2fa6599 # v1
276+
- uses: rui314/setup-mold@702b1908b5edf30d71a8d1666b724e0f0c6fa035 # v1
277277
- name: "Setup musl"
278278
run: |
279279
sudo apt-get install musl-tools
@@ -291,7 +291,7 @@ jobs:
291291
with:
292292
name: pixi-linux-x86_64-${{ github.sha }}
293293
path: ./target/x86_64-unknown-linux-musl/${{ env.CARGO_BUILD_PROFILE }}/pixi
294-
retention-days: 1
294+
retention-days: 14
295295

296296
build-binary-macos-aarch64:
297297
needs: determine_changes
@@ -300,7 +300,7 @@ jobs:
300300
name: "build binary | macos aarch64"
301301
steps:
302302
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
303-
- uses: rui314/setup-mold@85c79d00377f0d32cdbae595a46de6f7c2fa6599 # v1
303+
- uses: rui314/setup-mold@702b1908b5edf30d71a8d1666b724e0f0c6fa035 # v1
304304
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
305305
- name: "Build"
306306
run: >
@@ -313,7 +313,7 @@ jobs:
313313
with:
314314
name: pixi-macos-aarch64-${{ github.sha }}
315315
path: ./target/${{ env.CARGO_BUILD_PROFILE }}/pixi
316-
retention-days: 1
316+
retention-days: 14
317317

318318
build-binary-macos-x86_64:
319319
needs: determine_changes
@@ -322,7 +322,7 @@ jobs:
322322
name: "build binary | macos x86_64"
323323
steps:
324324
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
325-
- uses: rui314/setup-mold@85c79d00377f0d32cdbae595a46de6f7c2fa6599 # v1
325+
- uses: rui314/setup-mold@702b1908b5edf30d71a8d1666b724e0f0c6fa035 # v1
326326
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
327327
- name: "Build"
328328
run: >
@@ -335,7 +335,7 @@ jobs:
335335
with:
336336
name: pixi-macos-x86_64-${{ github.sha }}
337337
path: ./target/${{ env.CARGO_BUILD_PROFILE }}/pixi
338-
retention-days: 1
338+
retention-days: 14
339339

340340
build-binary-windows-x86_64:
341341
needs: determine_changes
@@ -364,7 +364,7 @@ jobs:
364364
with:
365365
name: pixi-windows-x86_64-${{ github.sha }}
366366
path: ${{ env.PIXI_WORKSPACE }}/target/${{ env.CARGO_BUILD_PROFILE }}/pixi.exe
367-
retention-days: 1
367+
retention-days: 14
368368

369369
build-binary-windows-aarch64:
370370
needs: determine_changes
@@ -397,7 +397,7 @@ jobs:
397397
with:
398398
name: pixi-windows-aarch64-${{ github.sha }}
399399
path: ${{ env.PIXI_WORKSPACE }}/target/aarch64-pc-windows-msvc/${{ env.CARGO_BUILD_PROFILE }}/pixi.exe
400-
retention-days: 1
400+
retention-days: 14
401401

402402
#
403403
# Run integration tests on important platforms

.github/workflows/release.yml

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,21 @@ jobs:
7373
- name: Install cargo-dist from git
7474
uses: baptiste0928/cargo-install@e38323ef017552d7f7af73a3f4db467f278310ed # v3
7575
with:
76-
crate: cargo-dist
77-
git: https://github.com/ruben-arts/cargo-dist
78-
branch: feature/allow_binaries_in_root_of_tar
76+
crate: dist
77+
git: https://github.com/ruben-arts/cargo-dist.git
78+
rev: 6f945d0efcaeabb0fc3e3472330bb7a294f80d29
79+
80+
- uses: prefix-dev/setup-pixi@main
81+
with:
82+
environments: dist
83+
activate-environment: true
7984

8085
- name: Cache dist
8186
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
8287
with:
8388
name: cargo-dist-cache
8489
# TODO: revert after switching back to released dist
85-
path: ~/.cargo-install/cargo-dist/bin/dist
90+
path: ~/.cargo-install/dist/bin/dist
8691
# sure would be cool if github gave us proper conditionals...
8792
# so here's a doubly-nested ternary-via-truthiness to try to provide the best possible
8893
# functionality based on whether this is a pull_request, and whether it's from a fork.
@@ -141,13 +146,28 @@ jobs:
141146
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
142147
with:
143148
submodules: recursive
144-
# Install fork of dist to allow for binaries in the root of the tarball
149+
150+
# Use fork of dist to allow for binaries in the root of the tarball
145151
- name: Install cargo-dist from git
146152
uses: baptiste0928/cargo-install@e38323ef017552d7f7af73a3f4db467f278310ed # v3
147153
with:
148-
crate: cargo-dist
149-
git: https://github.com/ruben-arts/cargo-dist
150-
branch: feature/allow_binaries_in_root_of_tar
154+
crate: dist
155+
git: https://github.com/ruben-arts/cargo-dist.git
156+
rev: 6f945d0efcaeabb0fc3e3472330bb7a294f80d29
157+
158+
- name: Install cargo-zigbuild
159+
# Only install on non windows platforms
160+
if: ${{ contains(matrix.runner, 'windows') == false }}
161+
uses: baptiste0928/cargo-install@e38323ef017552d7f7af73a3f4db467f278310ed # v3
162+
with:
163+
crate: cargo-zigbuild
164+
version: "0.20.1"
165+
166+
- uses: prefix-dev/setup-pixi@main
167+
with:
168+
environments: dist
169+
activate-environment: true
170+
151171
# Get the dist-manifest
152172
- name: Fetch local artifacts
153173
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4

.github/workflows/trampoline.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ jobs:
3838
target: riscv64gc-unknown-linux-gnu
3939
os: ubuntu-latest
4040

41+
- name: "Linux-loong64"
42+
target: loongarch64-unknown-linux-gnu
43+
os: ubuntu-latest
44+
4145
- name: "macOS-x86"
4246
target: x86_64-apple-darwin
4347
os: macos-13

CHANGELOG.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,94 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
### [0.50.2] - 2025-07-28
9+
#### Documentation
10+
11+
- Update setup-pixi docs by @pavelzw in [#4207](https://github.com/prefix-dev/pixi/pull/4207)
12+
- Update cli welcome in README by @pauljurczak in [#4211](https://github.com/prefix-dev/pixi/pull/4211)
13+
14+
15+
#### Fixed
16+
17+
- Print build log if build fails by @Hofer-Julian in [#4205](https://github.com/prefix-dev/pixi/pull/4205)
18+
- Increase retention of pixi artifacts by @Hofer-Julian in [#4215](https://github.com/prefix-dev/pixi/pull/4215)
19+
- Network authentication pixi global by @ruben-arts in [#4222](https://github.com/prefix-dev/pixi/pull/4222)
20+
- Netrc issue and hash mismatch by @baszalmstra in [#4218](https://github.com/prefix-dev/pixi/pull/4218)
21+
22+
23+
24+
#### New Contributors
25+
* @pauljurczak made their first contribution in [#4211](https://github.com/prefix-dev/pixi/pull/4211)
26+
27+
### [0.50.1] - 2025-07-25
28+
#### ✨ Highlights
29+
30+
Use `pixi import` to import `environment.yml` files into your Pixi manifest.
31+
32+
#### Added
33+
34+
- Add build profiles to not build in editable mode in `pixi build` by @baszalmstra in [#4202](https://github.com/prefix-dev/pixi/pull/4202)
35+
36+
#### Changed
37+
38+
- Implement `pixi import` for `environment.yml` by @lucascolley in [#4096](https://github.com/prefix-dev/pixi/pull/4096)
39+
40+
#### Fixed
41+
42+
- Global progress by @tdejager in [#4190](https://github.com/prefix-dev/pixi/pull/4190)
43+
- Update rattler and add test for variable expansion by @Hofer-Julian in [#4199](https://github.com/prefix-dev/pixi/pull/4199)
44+
45+
### [0.50.0] - 2025-07-22
46+
#### ✨ Highlights
47+
This release contains loads of bug fixes and refactors, primarily to make `pixi build` more stable and feature rich in the near future.
48+
49+
#### Added
50+
51+
- Add `pypi-option.no-binary` by @thomas-maschler in [#4008](https://github.com/prefix-dev/pixi/pull/4008)
52+
- Add explicit workspace inheritance syntax by @baszalmstra in [#4078](https://github.com/prefix-dev/pixi/pull/4078)
53+
- Add `conda/outputs` and `conda/build_v2` backend protocol by @baszalmstra in [#4118](https://github.com/prefix-dev/pixi/pull/4118)
54+
- Add cyclic dependency support by @baszalmstra in [#4143](https://github.com/prefix-dev/pixi/pull/4143)
55+
- Rebuild source package if a build dependency changed by @baszalmstra in [#4171](https://github.com/prefix-dev/pixi/pull/4171)
56+
- Add `pypi-options.dependency-overrides` to override pypi dependencies by @HernandoR in [#3948](https://github.com/prefix-dev/pixi/pull/3948)
57+
58+
#### Changed
59+
60+
- Add `pixi init` as a suggestion in the error message, when `pyproject.toml` is without the `tool.pixi` section by @mrswastik-robot in [#3943](https://github.com/prefix-dev/pixi/pull/3943)
61+
- Improve error messages when a python interpreter is needed by @tdejager in [#4075](https://github.com/prefix-dev/pixi/pull/4075)
62+
- Manual validation of frozen and locked CLI arguments by @gshiba in [#4044](https://github.com/prefix-dev/pixi/pull/4044)
63+
- Better error for unexpected packages from build backend by @baszalmstra in [#4098](https://github.com/prefix-dev/pixi/pull/4098)
64+
- Implement stable hash for ProjectModelV1 to improve cache consistency by @baszalmstra in [#4094](https://github.com/prefix-dev/pixi/pull/4094)
65+
- Upgrade to uv 0.7.20 by @tdejager in [#4091](https://github.com/prefix-dev/pixi/pull/4091)[#4115](https://github.com/prefix-dev/pixi/pull/4115)
66+
- Use command dispatcher for `pixi global install` by @tdejager in [#4126](https://github.com/prefix-dev/pixi/pull/4126)
67+
- Notify which conda packages may have influenced the conflict by @tdejager in [#4135](https://github.com/prefix-dev/pixi/pull/4135)
68+
- Refactor spec implementation handling in global by @tdejager in [#4138](https://github.com/prefix-dev/pixi/pull/4138)
69+
- Use command dispatcher for pixi build by @baszalmstra in [#4156](https://github.com/prefix-dev/pixi/pull/4156)
70+
71+
#### Documentation
72+
73+
- Add `site_description` by @lucascolley in [#4088](https://github.com/prefix-dev/pixi/pull/4088)
74+
- Improve the `system-requirements` documentation by @ruben-arts in [#4068](https://github.com/prefix-dev/pixi/pull/4068)
75+
- Enable `content.code.select` by @lucascolley in [#4092](https://github.com/prefix-dev/pixi/pull/4092)
76+
- Add `conda-deny` documentation by @PaulKMueller in [#4090](https://github.com/prefix-dev/pixi/pull/4090) [#4124](https://github.com/prefix-dev/pixi/pull/4124)
77+
- Update `setup-pixi` docs for pixi-url-bearer-token by @ytausch in [#4127](https://github.com/prefix-dev/pixi/pull/4127)
78+
- Update the python tutorial to use the workspace command by @rongou in [#4128](https://github.com/prefix-dev/pixi/pull/4128)
79+
- Update `setup-pixi` docs for 0.8.13 by @ytausch in [#4175](https://github.com/prefix-dev/pixi/pull/4175)
80+
- Add `geovista` to community.md by @bjlittle in [#4183](https://github.com/prefix-dev/pixi/pull/4183)
81+
82+
#### Fixed
83+
84+
- Only print release notes on new version with `self-update` by @lucascolley in [#4054](https://github.com/prefix-dev/pixi/pull/4054)
85+
- Add an early check, before creating directories for `<non-existent-env>` while uninstalling them by @mrswastik-robot in [#4049](https://github.com/prefix-dev/pixi/pull/4049)
86+
- Update template variable for extra index URLs in init file by @noamgot in [#4072](https://github.com/prefix-dev/pixi/pull/4072)
87+
- Allow to set `pypi-config.allow-insecure-host` by @zen-xu in [#4107](https://github.com/prefix-dev/pixi/pull/4107)
88+
89+
#### New Contributors
90+
* @rongou made their first contribution in [#4128](https://github.com/prefix-dev/pixi/pull/4128)
91+
* @PaulKMueller made their first contribution in [#4124](https://github.com/prefix-dev/pixi/pull/4124)
92+
* @gshiba made their first contribution in [#4044](https://github.com/prefix-dev/pixi/pull/4044)
93+
* @thomas-maschler made their first contribution in [#4008](https://github.com/prefix-dev/pixi/pull/4008)
94+
* @bjlittle made their first contribution in [#4183](https://github.com/prefix-dev/pixi/pull/4183)
95+
896
### [0.49.0] - 2025-06-30
997
#### ✨ Highlights
1098
This release enables `pixi` to pick up extensions that are installed as `pixi-`.

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ authors:
3030
- given-names: Julian
3131
family-names: Hofer
3232
33-
repository-code: 'https://github.com/prefix-dev/pixi/releases/tag/v0.49.0'
34-
url: 'https://pixi.sh/v0.49.0'
33+
repository-code: 'https://github.com/prefix-dev/pixi/releases/tag/v0.50.2'
34+
url: 'https://pixi.sh/v0.50.2'
3535
abstract: >-
3636
A cross-platform, language agnostic, package/project
3737
management tool for development in virtual environments.

CONTRIBUTING.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,57 @@ pub enum SortBy {
123123
Kind,
124124
}
125125
```
126+
127+
## Tests
128+
129+
To run all tests, use:
130+
```bash
131+
pixi run test
132+
```
133+
But if you have modified recipe data under the tests/data/channels directory, you need to update the test channel before running tests:
134+
```bash
135+
pixi run update-test-channel <channel_name>
136+
```
137+
> [!NOTE]
138+
> This task currently only works on unix systems. If you are on Windows, it is recommended to use [WSL](https://learn.microsoft.com/en-us/windows/wsl/install).
139+
140+
For example, if you modified data for dummy_channel_1:
141+
```bash
142+
pixi run update-test-channel dummy_channel_1
143+
```
144+
After updating the test channel, run the tests again:
145+
```
146+
pixi run test
147+
```
148+
149+
## CLI documentation
150+
The CLI reference is automatically generated from the code documentation of CLI commands under `src/cli`.
151+
152+
If you need to update this documentation, be sure to edit the docs under `src/cli`
153+
instead of modifying the automatically generated Markdown files under `docs/reference/cli`.
154+
155+
Then, you can run `pixi run generate-cli-docs` to update the generated files,
156+
and `pixi run -e docs mkdocs serve` to check out the web docs locally.
157+
158+
You must commit the generated files as well as part of your PR.
159+
160+
The `*_extender` files under `docs/reference/cli` are meant as extensions of the autogenerated documentation.
161+
Those are meant to be updated manually.
162+
163+
## Python test snapshots
164+
165+
Snapshots can be included in Python tests using `inline-snapshot`, following the pattern in
166+
https://github.com/prefix-dev/pixi/blob/main/tests/integration_python/test_import.py.
167+
168+
1. To add a new snapshot, you first write `assert value == snapshot()`, where `value` is the
169+
string you are testing.
170+
2. You can then run your tests with `pixi run test-specific-test your_test_name`. The test should
171+
error (this is expected), but also create a snapshot inline (inside the parentheses which follow
172+
`snapshot`), unless the test fails for another reason before hitting the `snapshot()` line.
173+
If the test fails for another reason, fix that reason and run the tests again.
174+
3. Running tests in the future will prompt you whenever actual values do not match the snapshots.
175+
If you want to fix all snapshots and review the diff afterwards, you can use `pixi run snapshot-update your_test_name`.
176+
4. You may wish to redact parts of snapshots. This will be necessary when values are dependent on
177+
the machine running the tests, e.g. manifests created with `pixi init`. This can be done using
178+
`dirty-equals`: see documentation at https://15r10nk.github.io/inline-snapshot/0.23/eq_snapshot/#dirty-equals
179+
and examples in https://github.com/prefix-dev/pixi/blob/main/tests/integration_python/test_import.py.

0 commit comments

Comments
 (0)