Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,114 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

### [0.46.0] - 2025-04-22
#### ⚠️ Breaking Change

`arg` names in `tasks` can no longer contain dashes (`-`).
This restriction is due to the integration of `Minijinja` for rendering tasks, where dashes could be misinterpreted as a subtraction operator.

#### ✨ Highlights
This release comes with another set of features for the `tasks`!
- The command of a task is now able to use `minijinja` for rendering the command.
```toml
[tasks]
# The arg `text`, converted to uppercase, will be printed.
task1 = { cmd = "echo {{ text | upper }}", args = ["text"] }
# If arg `text` contains 'hoi', it will be converted to lowercase. The result will be printed.
task2 = { cmd = "echo {{ text | lower if 'hoi' in text }}", args = [
{ arg = "text", default = "" },
] }
# With `a` and `b` being strings, they will be appended and then printed.
task3 = { cmd = "echo {{ a + b }}", args = ["a", { arg = "b", default = "!" }] }
# `names` will be split by whitespace and then every name will be printed separately
task4 = { cmd = "{% for name in names | split %} echo {{ name }};{% endfor %}", args = [
"names",
] }
```
- Shortened composition of tasks with `depends-on` key.
```toml
[tasks]
test-all = [{ task = "test", args = ["all"] }]
# Equivalent to: test-all = { depends-on = [{task = "test", args = ["all"] }]}
```
- The `depends-on` key can now include the environment that the task should run in.
```toml
[tasks]
# Using the shortened composition of tasks
test-all = [
{ task = "test", environment = "py311" },
{ task = "test", environment = "py312" },
]
```
Comment on lines +31 to +46

@Hofer-Julian Hofer-Julian Apr 22, 2025

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github suggestions fails me, but I am proposing the following instead of this section:

[tasks]
test-all = { depends-on = [
  { task = "test", environment = "py311" },
  { task = "test", environment = "py312" },
] }

We also introduced a shorter version of tasks that only contain task dependencies.
Therefore, the example above can also be written like this:

[tasks]
test-all = [
  { task = "test", environment = "py311" },
  { task = "test", environment = "py312" },
]

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good one changed it!


#### Added

- Integrate minijinja for tasks' command's rendering by @prsabahrami in [#3579](https://github.com/prefix-dev/pixi/pull/3579)
- Support for riscv64 linux by @Hofer-Julian in [#3606](https://github.com/prefix-dev/pixi/pull/3606)
- Task Environment Selection by @prsabahrami in [#3501](https://github.com/prefix-dev/pixi/pull/3501)
- Shortened task composition with `depends-on` key by @@prsabahrami in [#3450](https://github.com/prefix-dev/pixi/pull/3540)
Comment thread
ruben-arts marked this conversation as resolved.
Outdated


#### Changed

- Format shell script with shfmt by @gzm55 in [#3552](https://github.com/prefix-dev/pixi/pull/3552)
- Improve error message at missing pixi section by @joyanedel in [#3516](https://github.com/prefix-dev/pixi/pull/3516)
- Install.sh supports installing without tar and unzip commands by @gzm55 in [#3551](https://github.com/prefix-dev/pixi/pull/3551)


#### Documentation

- Community: add `xsf` by @lucascolley in [#3515](https://github.com/prefix-dev/pixi/pull/3515)
- Mention installation with `wget` instead of `curl` by @paugier in [#3547](https://github.com/prefix-dev/pixi/pull/3547)
- Fix typo in `advanced_tasks.md` by @AH-Merii in [#3555](https://github.com/prefix-dev/pixi/pull/3555)
- Update to call pixi task "start" in Index.md by @philipreese in [#3487](https://github.com/prefix-dev/pixi/pull/3487)
- Migrate ros2.md example to use robostack-humble channel by @traversaro in [#3520](https://github.com/prefix-dev/pixi/pull/3520)
- Provide guidance on using `direnv` by @phreed in [#3513](https://github.com/prefix-dev/pixi/pull/3513)
- Remove unused ordered list in system_requirements.md by @kemingy in [#3590](https://github.com/prefix-dev/pixi/pull/3590)
- Update `authentication.md` to fix typo in package name by @PanTheDev in [#3615](https://github.com/prefix-dev/pixi/pull/3615)
- Replace `project` with `workspace` by @munechika-koyo in [#3623](https://github.com/prefix-dev/pixi/pull/3623) and in [#3620](https://github.com/prefix-dev/pixi/pull/3620)
- Rename `pixi build` examples by @Hofer-Julian in [#3632](https://github.com/prefix-dev/pixi/pull/3632)


#### Fixed

- Updating windows `installation.md` to correspond to `installation.ps1` by @Ahschreyer in [#3507](https://github.com/prefix-dev/pixi/pull/3507)
- Fix panic for `pixi task list` for platform specific tasks by @synapticarbors in [#3510](https://github.com/prefix-dev/pixi/pull/3510)
- Improve error message if build backend crashes by @baszalmstra in [#3543](https://github.com/prefix-dev/pixi/pull/3543)
- Check unzip command on msys and add ITs for install.sh by @gzm55 in [#3458](https://github.com/prefix-dev/pixi/pull/3458)
- Shell-hook `--no-completion` by @Hofer-Julian in [#3553](https://github.com/prefix-dev/pixi/pull/3553)
- Fixed a typo in init.rs by @noamgot in [#3561](https://github.com/prefix-dev/pixi/pull/3561)
- Pixi-shell: bump timeout to 3 secs, fix docs link by @wolfv in [#3528](https://github.com/prefix-dev/pixi/pull/3528)
- Invalidate lock-file if a pypi dependency is requested by @baszalmstra in [#3562](https://github.com/prefix-dev/pixi/pull/3562)
- Build backend missing executable by @baszalmstra in [#3527](https://github.com/prefix-dev/pixi/pull/3527)
- Community page link in README by @elonzh in [#3595](https://github.com/prefix-dev/pixi/pull/3595)
- Mark `add_tests::add_pypi_git` as an online test by @mgorny in [#3586](https://github.com/prefix-dev/pixi/pull/3586)
- Update `git-cliff` by @Hofer-Julian in [#3614](https://github.com/prefix-dev/pixi/pull/3614)
- Pypi local directory satisfiability by @tdejager in [#3631](https://github.com/prefix-dev/pixi/pull/3631)
- Don't keep reinstalling local pypi archives by @tdejager in [#3618](https://github.com/prefix-dev/pixi/pull/3618)
- Don't resolve for previously locked platforms by @baszalmstra in [#3635](https://github.com/prefix-dev/pixi/pull/3635)


#### Refactor

- Reduce difference between default and named feature by @baszalmstra in [#3545](https://github.com/prefix-dev/pixi/pull/3545)
- Update `pixi.toml` to use args by @prsabahrami in [#3531](https://github.com/prefix-dev/pixi/pull/3531)
- Refactor of pypi installer type by @tdejager in [#3563](https://github.com/prefix-dev/pixi/pull/3563)


#### New Contributors
* @renovate[bot] made their first contribution in [#3626](https://github.com/prefix-dev/pixi/pull/3626)
* @munechika-koyo made their first contribution in [#3623](https://github.com/prefix-dev/pixi/pull/3623)
* @elonzh made their first contribution in [#3595](https://github.com/prefix-dev/pixi/pull/3595)
* @Ahschreyer made their first contribution in [#3507](https://github.com/prefix-dev/pixi/pull/3507)
* @kemingy made their first contribution in [#3590](https://github.com/prefix-dev/pixi/pull/3590)
* @joyanedel made their first contribution in [#3516](https://github.com/prefix-dev/pixi/pull/3516)
* @phreed made their first contribution in [#3513](https://github.com/prefix-dev/pixi/pull/3513)
* @AH-Merii made their first contribution in [#3555](https://github.com/prefix-dev/pixi/pull/3555)
* @paugier made their first contribution in [#3547](https://github.com/prefix-dev/pixi/pull/3547)
* @mwiebe made their first contribution in [#3519](https://github.com/prefix-dev/pixi/pull/3519)


### [0.45.0] - 2025-04-07
#### ✨ Highlights

Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ authors:
- given-names: Julian
family-names: Hofer
email: julian.hofer@protonmail.com
repository-code: 'https://github.com/prefix-dev/pixi/releases/tag/v0.45.0'
url: 'https://pixi.sh/v0.45.0'
repository-code: 'https://github.com/prefix-dev/pixi/releases/tag/v0.46.0'
url: 'https://pixi.sh/v0.46.0'
abstract: >-
A cross-platform, language agnostic, package/project
management tool for development in virtual environments.
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ license.workspace = true
name = "pixi"
readme.workspace = true
repository.workspace = true
version = "0.45.0"
version = "0.46.0"

[features]
default = ["online_tests", "rustls-tls"]
Expand Down
2 changes: 1 addition & 1 deletion cliff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ body = """
{% for commit in commits %}
{%- if commit.remote.pr_labels is not containing("skip-release-notes") -%}
- {{ commit.message | upper_first | trim }}\
{% if commit.remote.username %} by @{{ commit.remote.username }}{%- endif -%}
{% if commit.remote.username %} by @{{ commit.remote.username }} {% endif %}
{%- if commit.remote.pr_number -%} in [#{{ commit.remote.pr_number }}]\
(https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}/pull/{{ commit.remote.pr_number }})
{%- endif -%}
Expand Down
2 changes: 1 addition & 1 deletion crates/pixi_consts/src/consts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pub const PYPROJECT_MANIFEST: &str = "pyproject.toml";
pub const CONFIG_FILE: &str = "config.toml";
pub const PIXI_VERSION: &str = match option_env!("PIXI_VERSION") {
Some(v) => v,
None => "0.45.0",
None => "0.46.0",
};
pub const PREFIX_FILE_NAME: &str = "pixi_env_prefix";
pub const ENVIRONMENTS_DIR: &str = "envs";
Expand Down
2 changes: 1 addition & 1 deletion docs/integration/ci/github_actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ We created [prefix-dev/setup-pixi](https://github.com/prefix-dev/setup-pixi) to
```yaml
- uses: prefix-dev/setup-pixi@v0.8.3
with:
pixi-version: v0.45.0
pixi-version: v0.46.0
cache: true
auth-host: prefix.dev
auth-token: ${{ secrets.PREFIX_DEV_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion docs/integration/editor/vscode.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Then, create the following two files in the `.devcontainer` directory:
```dockerfile title=".devcontainer/Dockerfile"
FROM mcr.microsoft.com/devcontainers/base:jammy

ARG PIXI_VERSION=v0.45.0
ARG PIXI_VERSION=v0.46.0

RUN curl -L -o /usr/local/bin/pixi -fsSL --compressed "https://github.com/prefix-dev/pixi/releases/download/${PIXI_VERSION}/pixi-$(uname -m)-unknown-linux-musl" \
&& chmod +x /usr/local/bin/pixi \
Expand Down
2 changes: 1 addition & 1 deletion install/install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
.LINK
https://github.com/prefix-dev/pixi
.NOTES
Version: v0.45.0
Version: v0.46.0
#>
param (
[string] $PixiVersion = 'latest',
Expand Down
2 changes: 1 addition & 1 deletion install/install.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/sh
set -eu
# Version: v0.45.0
# Version: v0.46.0

__wrap__() {

Expand Down
2 changes: 1 addition & 1 deletion pixi_docs/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions schema/schema.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://pixi.sh/v0.45.0/schema/manifest/schema.json",
"$id": "https://pixi.sh/v0.46.0/schema/manifest/schema.json",
"title": "`pixi.toml` manifest file",
"description": "The configuration for a [`pixi`](https://pixi.sh) project.",
"type": "object",
Expand All @@ -10,7 +10,7 @@
"title": "Schema",
"description": "The schema identifier for the project's configuration",
"type": "string",
"default": "https://pixi.sh/v0.45.0/schema/manifest/schema.json",
"default": "https://pixi.sh/v0.46.0/schema/manifest/schema.json",
"format": "uri-reference"
},
"activation": {
Expand Down
2 changes: 1 addition & 1 deletion tbump.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
github_url = "https://github.com/prefix-dev/pixi"

[version]
current = "0.45.0"
current = "0.46.0"

# Example of a semver regexp.
# Make sure this matches current_version before
Expand Down
2 changes: 1 addition & 1 deletion tests/integration_python/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

from rattler import Platform

PIXI_VERSION = "0.45.0"
PIXI_VERSION = "0.46.0"


ALL_PLATFORMS = '["linux-64", "osx-64", "osx-arm64", "win-64", "linux-ppc64le", "linux-aarch64"]'
Expand Down