Skip to content
Merged
Show file tree
Hide file tree
Changes from 36 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
af15722
feat: add minijinja dependency and integrate into task module
prsabahrami Apr 9, 2025
0492a3f
feat: continue adding minijinja integration
prsabahrami Apr 11, 2025
ee3439b
Merge remote-tracking branch 'origin/main' into feat_minijinja
prsabahrami Apr 11, 2025
a581ac3
fix error type:
prsabahrami Apr 11, 2025
da6200f
update cli docs
prsabahrami Apr 11, 2025
8735188
fix the tests
prsabahrami Apr 12, 2025
97108a1
TaskNode Display improvement
Hofer-Julian Apr 14, 2025
f5cd54c
Small improvement
Hofer-Julian Apr 14, 2025
f42fa2d
Small step in the right direction
Hofer-Julian Apr 14, 2025
3765f33
Refactor task argument handling and error types
prsabahrami Apr 15, 2025
d2f1e6c
finish the desing
prsabahrami Apr 15, 2025
352029f
fix tests
prsabahrami Apr 15, 2025
d1ea78c
fix pre-commit
prsabahrami Apr 15, 2025
eb5c70b
Enhance TaskArg deserialization to reject strings containing hyphens
prsabahrami Apr 16, 2025
07ab61b
Small improvements
Hofer-Julian Apr 16, 2025
774a569
Update snapshots
Hofer-Julian Apr 16, 2025
ce65725
Merge branch 'main' into feat_minijinja
Hofer-Julian Apr 16, 2025
2acb78a
Merge branch 'main' into feat_minijinja
Hofer-Julian Apr 16, 2025
ed419ae
Update snapshots
Hofer-Julian Apr 16, 2025
acab268
Improve error handling
Hofer-Julian Apr 16, 2025
679d3b7
Adapt error message
Hofer-Julian Apr 16, 2025
ca8bc52
Fix another test failure
Hofer-Julian Apr 16, 2025
35b2db3
Use the correct error type
Hofer-Julian Apr 16, 2025
0e444f1
Push broken error modification
Hofer-Julian Apr 16, 2025
92270e9
Enable builtins
Hofer-Julian Apr 16, 2025
c08f61b
Refactor error handling
prsabahrami Apr 16, 2025
20d4424
minor improvement
prsabahrami Apr 16, 2025
dee2252
Refactor TaskString rendering logic to use HashMap for argument seria…
prsabahrami Apr 16, 2025
220c220
Update error message in CLI test for undefined arguments
prsabahrami Apr 17, 2025
c3f6d56
add a test using minijinja filters
prsabahrami Apr 17, 2025
6292d74
update docs
prsabahrami Apr 17, 2025
504b39d
Merge branch 'main' into feat_minijinja
prsabahrami Apr 17, 2025
6a5d4e9
Small cleanup
Hofer-Julian Apr 17, 2025
62002e9
Small simplification
Hofer-Julian Apr 17, 2025
7e18489
Adapt docs
Hofer-Julian Apr 17, 2025
ba6c715
Update lock file
Hofer-Julian Apr 17, 2025
4e07320
Update docs/workspace/advanced_tasks.md
Hofer-Julian Apr 17, 2025
a2ccb99
Extend test
Hofer-Julian Apr 17, 2025
7f15b9e
Update schema and test functions
Hofer-Julian Apr 17, 2025
9440221
Extend tests
Hofer-Julian Apr 17, 2025
6950791
Update example and snapshot
Hofer-Julian Apr 17, 2025
d941c6d
Fix up error type
Hofer-Julian Apr 17, 2025
c348920
Merge branch 'main' into feat_minijinja
Hofer-Julian Apr 17, 2025
6dea750
Add platforms
Hofer-Julian Apr 17, 2025
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
2 changes: 2 additions & 0 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions crates/pixi_consts/src/consts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ pub const CLAP_GLOBAL_OPTIONS: &str = "Global Options";
pub const CLAP_UPDATE_OPTIONS: &str = "Update Options";

pub static TASK_STYLE: LazyLock<Style> = LazyLock::new(|| Style::new().blue());
pub static TASK_ERROR_STYLE: LazyLock<Style> = LazyLock::new(|| Style::new().red());
pub static PLATFORM_STYLE: LazyLock<Style> = LazyLock::new(|| Style::new().yellow());
pub static ENVIRONMENT_STYLE: LazyLock<Style> = LazyLock::new(|| Style::new().magenta());
pub static EXPOSED_NAME_STYLE: LazyLock<Style> = LazyLock::new(|| Style::new().yellow());
Expand Down
4 changes: 3 additions & 1 deletion crates/pixi_manifest/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,11 @@ rattler_virtual_packages = { workspace = true }
rattler_lock = { workspace = true, optional = true }
rattler_solve = { workspace = true, optional = true }

# TODO: Remove these dependencies

console = { workspace = true }
miette = { workspace = true, features = ["fancy-no-backtrace"] }
minijinja = { workspace = true, features = ["builtins"] }
once_cell.workspace = true

[dev-dependencies]
assert_matches = { workspace = true }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
source: crates/pixi_manifest/src/manifests/workspace.rs
expression: "manifest.default_feature().targets.iter().flat_map(|(target, selector)|\n{\n let selector_name =\n selector.map_or_else(|| String::from(\"default\"), ToString::to_string);\n target.tasks.iter().filter_map(move |(name, task)|\n {\n Some(format!(\"{}/{} = {}\", &selector_name, name.as_str(),\n task.as_single_command()?))\n })\n}).join(\"\\n\")"
expression: "manifest.default_feature().targets.iter().flat_map(|(target, selector)|\n{\n let selector_name =\n selector.map_or_else(|| String::from(\"default\"), ToString::to_string);\n target.tasks.iter().map(move |(name, task)|\n {\n format!(\"{}/{} = {:?}\", &selector_name, name.as_str(),\n task.as_single_command().ok())\n })\n}).join(\"\\n\")"
---
default/test = test multi
win-64/test = test win
linux-64/test = test linux
default/test = Some("test multi")
win-64/test = Some("test win")
linux-64/test = Some("test linux")
24 changes: 14 additions & 10 deletions crates/pixi_manifest/src/manifests/workspace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1214,13 +1214,16 @@ start = "python -m flask run --port=5050"
.flat_map(|(target, selector)| {
let selector_name =
selector.map_or_else(|| String::from("default"), ToString::to_string);
target.tasks.iter().filter_map(move |(name, task)| {
Some(format!(
"{}/{} = {}",
target.tasks.iter().map(move |(name, task)| {
format!(
"{}/{} = {:?}",
&selector_name,
name.as_str(),
task.as_single_command()?
))
task.as_single_command(None)
.ok()
.flatten()
.map(|c| c.to_string())
)
})
})
.join("\n"));
Expand Down Expand Up @@ -2399,7 +2402,8 @@ platforms = ["linux-64", "win-64"]
.tasks
.get(&"warmup".into())
.unwrap()
.as_single_command()
.as_single_command(None)
.unwrap()
.unwrap(),
"python warmup.py"
);
Expand Down Expand Up @@ -2445,31 +2449,31 @@ test = "test initial"
manifest
.add_task(
"default".into(),
Task::Plain("echo default".to_string()),
Task::Plain("echo default".into()),
None,
&FeatureName::DEFAULT,
)
.unwrap();
manifest
.add_task(
"target_linux".into(),
Task::Plain("echo target_linux".to_string()),
Task::Plain("echo target_linux".into()),
Some(Platform::Linux64),
&FeatureName::DEFAULT,
)
.unwrap();
manifest
.add_task(
"feature_test".into(),
Task::Plain("echo feature_test".to_string()),
Task::Plain("echo feature_test".into()),
None,
&FeatureName::from("test"),
)
.unwrap();
manifest
.add_task(
"feature_test_target_linux".into(),
Task::Plain("echo feature_test_target_linux".to_string()),
Task::Plain("echo feature_test_target_linux".into()),
Some(Platform::Linux64),
&FeatureName::from("test"),
)
Expand Down
Loading