Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
0f3fb2e
feat: refactor new parser crate that uses stage0 and stage1 recipe types
wolfv Oct 14, 2025
cead65f
refactor: more changes to the parser, and adding variant_config crate…
wolfv Oct 14, 2025
18d31df
chore: refactored parser serialization improvements (#1939)
wolfv Oct 14, 2025
72875dd
refactor: extract used variables from functions properly in new parse…
wolfv Oct 14, 2025
b0e1e1d
refactor: add rattler-build-types crate (#1941)
wolfv Oct 15, 2025
91426e0
refactor: split out Jinja-related things into its own crate (#1942)
wolfv Oct 16, 2025
4270a32
refactor: first integration of entire refactor (#1944)
wolfv Oct 16, 2025
9f3a7af
refactor: move source cache into a separate crate (#1860)
wolfv Oct 17, 2025
9349d0b
refactor: integrate refactor with recipe execution (#1946)
wolfv Oct 27, 2025
b0027bf
fix: inheritance improvements for staging outputs in refactor (#1961)
wolfv Oct 28, 2025
699be97
fix tests
wolfv Oct 29, 2025
b6a32f6
fix all the clippy issues
wolfv Oct 29, 2025
3a5a9bd
Py rattler build refactor (#1966)
wolfv Nov 4, 2025
8542811
Add marimo notebooks
Hofer-Julian Nov 4, 2025
92a54f7
Extend marimo
Hofer-Julian Nov 4, 2025
f7d179f
Upgrade Python syntax with ruff
Hofer-Julian Nov 4, 2025
6082e8b
Format
Hofer-Julian Nov 4, 2025
77f9ea5
Reorganize imports
Hofer-Julian Nov 4, 2025
f81234e
Move CLI wrappers in own module
Hofer-Julian Nov 4, 2025
45c98bf
Remove fallback
Hofer-Julian Nov 4, 2025
e61b82a
Keep the fallback for now
Hofer-Julian Nov 4, 2025
293309d
Extend default environment
Hofer-Julian Nov 4, 2025
cbb3508
Remove commented out code
Hofer-Julian Nov 4, 2025
837e4a2
Move rust bindings to cli_api module
Hofer-Julian Nov 4, 2025
8902779
Format exploration notebook
Hofer-Julian Nov 5, 2025
e5b067d
Add three example marimo notebooks
Hofer-Julian Nov 5, 2025
d41d240
Remove old notebooks
Hofer-Julian Nov 6, 2025
9533289
Move version function to `__init__.py`
Hofer-Julian Nov 6, 2025
36a2e47
Revert "Move rust bindings to cli_api module"
Hofer-Julian Nov 6, 2025
dbec202
Update lock file
Hofer-Julian Nov 6, 2025
178a414
Add extra input globs so it recompiles if `rattler-build` itself changes
Hofer-Julian Nov 6, 2025
0bca6b3
Make simpler build script
Hofer-Julian Nov 6, 2025
18e15ec
Improve recipe rendering notebook
Hofer-Julian Nov 6, 2025
20c191d
Simplify notebook
Hofer-Julian Nov 6, 2025
4523710
Simplify notebook
Hofer-Julian Nov 6, 2025
a6759bf
Remove mutable API
Hofer-Julian Nov 7, 2025
14f4cf7
Remove dead code for callbacks
Hofer-Julian Nov 7, 2025
013fa2e
Simplify progress API
Hofer-Julian Nov 7, 2025
00c9d4a
Update snapshots
Hofer-Julian Nov 7, 2025
3463ee4
Remove unused classes
Hofer-Julian Nov 7, 2025
ff00250
Remove build_types
Hofer-Julian Nov 7, 2025
86949c0
Remove more setters
Hofer-Julian Nov 7, 2025
76cfb71
Remove typechecking code
Hofer-Julian Nov 7, 2025
b6ec34d
Remove mutable API
Hofer-Julian Nov 7, 2025
22367ed
More mutable API
Hofer-Julian Nov 7, 2025
1e5369d
Improve RenderConfig
Hofer-Julian Nov 7, 2025
ec562fe
Simplify PyVariantConfig
Hofer-Julian Nov 7, 2025
0d602b7
Move to more robust project structure
Hofer-Julian Nov 7, 2025
2a0f76e
Adapt module name
Hofer-Julian Nov 7, 2025
c06353c
Move to absolute imports
Hofer-Julian Nov 7, 2025
f8d3258
Remove unused test
Hofer-Julian Nov 7, 2025
d001028
Improve stage0
Hofer-Julian Nov 7, 2025
18252df
Improve stage1
Hofer-Julian Nov 7, 2025
3dc04a8
Improve tool_config
Hofer-Julian Nov 7, 2025
b5678e8
Improve render.py
Hofer-Julian Nov 7, 2025
30d42fe
Create `_from_inner` function for HashInfo
Hofer-Julian Nov 7, 2025
fee1603
Move `__all__` to top
Hofer-Julian Nov 10, 2025
b559869
Simplify rencer_recipe
Hofer-Julian Nov 10, 2025
d10fa5e
Simplify VariantConfig
Hofer-Julian Nov 10, 2025
0e338e6
Improve build script
Hofer-Julian Nov 10, 2025
3b98d65
Simplify stage0 recipe
Hofer-Julian Nov 10, 2025
48843ed
Simplify build example
Hofer-Julian Nov 10, 2025
b42e354
Simplify `render_recipe`
Hofer-Julian Nov 10, 2025
cf8f06d
Simplify rendering of recipes
Hofer-Julian Nov 10, 2025
fcf9a99
Adapt type hint
Hofer-Julian Nov 10, 2025
adbe862
Move render method to stage0.Recipe
Hofer-Julian Nov 10, 2025
cfaa808
Move `run_build` to `Recipe`
Hofer-Julian Nov 10, 2025
519932d
Extend type hints
Hofer-Julian Nov 10, 2025
255e13e
Remove unused recipe.py
Hofer-Julian Nov 10, 2025
6f80227
Unify run_build function
Hofer-Julian Nov 18, 2025
ef24cc0
Remove unneeded test
Hofer-Julian Nov 18, 2025
cc09fcf
Make sure there's only one implementation of run_build
Hofer-Julian Nov 18, 2025
59c3b26
Improve build_result
Hofer-Julian Nov 18, 2025
7fc53a5
Add PlatfromConfig
Hofer-Julian Nov 19, 2025
e4856d0
Use proper error for Platform exceptions
Hofer-Julian Nov 19, 2025
8854967
Fix notebook
Hofer-Julian Nov 19, 2025
3b8cee5
Fix notebook
Hofer-Julian Nov 19, 2025
f435331
Catch build log
Hofer-Julian Nov 19, 2025
ef86a12
get more tests to pass from upstream conda-forge recipe parsing
wolfv Nov 24, 2025
30bd21a
Clean up tests
Hofer-Julian Dec 1, 2025
6d8fe7f
Simplify notebook
Hofer-Julian Dec 2, 2025
77e10c0
Improve notebooks
Hofer-Julian Dec 2, 2025
8a8d061
Simplify multi output example
Hofer-Julian Dec 2, 2025
813d34e
Simplify notebook
Hofer-Julian Dec 2, 2025
ee5397a
Finalize multi output notebook
Hofer-Julian Dec 2, 2025
9e3ced7
Test notebooks in CI
Hofer-Julian Dec 2, 2025
079024f
Fix compilation error
Hofer-Julian Dec 2, 2025
bb26c68
Fix recipe render
Hofer-Julian Dec 3, 2025
f5eb610
Fix test invocations
Hofer-Julian Dec 3, 2025
1ba476c
Run test on all targets
Hofer-Julian Dec 3, 2025
124e9a7
Enforce experimental for staging
Hofer-Julian Dec 3, 2025
42238d4
Format
Hofer-Julian Dec 3, 2025
02df378
Expose `Package` in Python bindings and add notebook
Hofer-Julian Dec 3, 2025
b485553
move always included vars to a single variable
wolfv Dec 2, 2025
6569173
improve rendering compatibility of the new parser
wolfv Dec 3, 2025
f92e5eb
fix clippy and friends
wolfv Dec 3, 2025
0d5b394
Add script to run all notebooks
Hofer-Julian Dec 3, 2025
9f79146
Set `os_env_var_keys` to a default value
Hofer-Julian Dec 3, 2025
c8ba572
Avoid annyoing pytest warning by renaming object
Hofer-Julian Dec 3, 2025
a417dc0
fix pin subpackage in test requirements and improve our code a bit
wolfv Dec 3, 2025
33e41c2
Fix type hints
Hofer-Julian Dec 4, 2025
d1c6bb8
Add experimental to staging tests
Hofer-Julian Dec 4, 2025
6a73282
Format
Hofer-Julian Dec 4, 2025
bae6894
Update ruff
Hofer-Julian Dec 4, 2025
66f8ea0
merge main
wolfv Dec 3, 2025
f3bf1bd
fix ruff lint
wolfv Dec 3, 2025
068464b
fix patch generation tests
wolfv Dec 4, 2025
7e87eac
fix lint
wolfv Dec 4, 2025
a8fcd59
Merge origin/main into refactor
wolfv Dec 4, 2025
1efcc06
update diffy
wolfv Dec 4, 2025
008248f
make tests compile
wolfv Dec 4, 2025
bf44aaf
Fix typos
Hofer-Julian Dec 4, 2025
0a557f6
Fix clippy lints
Hofer-Julian Dec 4, 2025
04ad751
Fix compilation errors in Python bindings
Hofer-Julian Dec 4, 2025
08a531f
Create CLAUDE.md
Hofer-Julian Dec 4, 2025
d9dbf0b
fix end-to-end-tests broken after merge
wolfv Dec 4, 2025
2d27a47
improve variable tracking and fix rust tests
wolfv Dec 4, 2025
d3edbe4
Significantly simplify run_build
Hofer-Julian Dec 4, 2025
097f7f4
Improve type hints
Hofer-Julian Dec 4, 2025
e5e2a2f
Fix lints
Hofer-Julian Dec 4, 2025
b5f5771
set referer(false) to allow sourceforge downloads
wolfv Dec 4, 2025
79e5662
Move functions to cli_api.rs
Hofer-Julian Dec 4, 2025
931f6e1
Move functions in own build module
Hofer-Julian Dec 4, 2025
8f067fa
Improve package test notebook
Hofer-Julian Dec 4, 2025
4dd0c0d
Format
Hofer-Julian Dec 5, 2025
fad478b
Export exceptions from Python API
Hofer-Julian Dec 5, 2025
a46849e
Rename recipe types
Hofer-Julian Dec 5, 2025
84752fd
Reorganize imports in py-rattler-build to simplify and centralize
Hofer-Julian Dec 5, 2025
51a03da
Rename recipe generation functions to be more descriptive
Hofer-Julian Dec 5, 2025
fc9d0c1
Improve recipe generation tests
Hofer-Julian Dec 5, 2025
a9751cd
fix lint
wolfv Dec 4, 2025
30b338c
add rattler_package_builder
wolfv Dec 5, 2025
973fc96
add rattler-build-package to cargo.toml
wolfv Dec 5, 2025
54055cb
fix compilation
wolfv Dec 5, 2025
ccef5b7
remove unused code
wolfv Dec 5, 2025
a4580ea
Move upload into own module and add warning to cli_api
Hofer-Julian Dec 5, 2025
8aea59e
Remove `__all__` declarations from Python modules
Hofer-Julian Dec 5, 2025
60d129c
Fix error message
Hofer-Julian Dec 5, 2025
f6e9bcd
Update pytest command to show test durations
Hofer-Julian Dec 5, 2025
b08624a
Remove deprecated build_recipes test function
Hofer-Julian Dec 5, 2025
4851377
Remove overly complex test cases for recipe parsing
Hofer-Julian Dec 5, 2025
23b876d
Remove redundant test cases and update invalid platform test
Hofer-Julian Dec 5, 2025
ba552f3
Move from marimo to jupyter and add them to the docs
Hofer-Julian Dec 8, 2025
2b022aa
improve error with undefined values in Jinja
wolfv Dec 8, 2025
5253c8a
solve clippy issues in rattler_build_package
wolfv Dec 8, 2025
1e2b5c0
fix all lint in rattler_build_package
wolfv Dec 8, 2025
3dce34e
fix compilation issue
wolfv Dec 8, 2025
6ebb977
Add lefthook to ensure jupyter notebooks have no output
Hofer-Julian Dec 8, 2025
1b85e4f
Remove TUI documentation
Hofer-Julian Dec 8, 2025
34c72c2
Remove commented out nav section
Hofer-Julian Dec 8, 2025
1931ef1
Ignore checkouts directory in .gitignore
Hofer-Julian Dec 8, 2025
6391c5b
Remove outdated API from docs
Hofer-Julian Dec 8, 2025
f0ca48a
Add references
Hofer-Julian Dec 8, 2025
54f2c0b
Add closing tags
Hofer-Julian Dec 8, 2025
8d3b183
Remove emojis in notebooks
Hofer-Julian Dec 9, 2025
abf1336
Revert "Add closing tags"
Hofer-Julian Dec 9, 2025
11c9207
Revert "Add references"
Hofer-Julian Dec 9, 2025
4e64bb6
Update `python_min` syntax
Hofer-Julian Dec 9, 2025
97bf635
Move from jupyter to markdown
Hofer-Julian Dec 9, 2025
d9fb1e6
Improve tutorial
Hofer-Julian Dec 9, 2025
52f8fcc
Replace "notebook" with "tutorial" in documentation
Hofer-Julian Dec 9, 2025
7139f6e
Add reference
Hofer-Julian Dec 9, 2025
1908f72
Use mkdoc-exec from conda-forge
Hofer-Julian Dec 9, 2025
210bb7f
Expose PackageAssembler in Python
Hofer-Julian Dec 10, 2025
129c3a4
Use rust-analyzer from pixi env
Hofer-Julian Dec 11, 2025
1dc7290
Use a simple Pixi task to convert notebooks to tutorials
Hofer-Julian Dec 11, 2025
f5d91a1
Also add zed settings for main workspace
Hofer-Julian Dec 11, 2025
3017dcd
Add rebuilding of packages
Hofer-Julian Dec 11, 2025
c24d4b7
Use `*` to enforce kwargs
Hofer-Julian Dec 12, 2025
0bd29ce
Use match syntax for package
Hofer-Julian Dec 12, 2025
253efeb
Update tests
Hofer-Julian Dec 12, 2025
c6f268d
Fix rust-analyzer path in zed settings
Hofer-Julian Dec 12, 2025
993fa43
Fix clippy
Hofer-Julian Dec 12, 2025
3d07510
Add more properties
Hofer-Julian Dec 12, 2025
6853726
Add type hints for several string literals
Hofer-Julian Dec 12, 2025
dd5a247
Use datetime for assemble_package
Hofer-Julian Dec 12, 2025
68b502f
Refactor HashInfo constructor to simplify initialization
Hofer-Julian Dec 12, 2025
3db7b7f
Merge branch 'main' into refactor
Hofer-Julian Dec 15, 2025
27cd98f
Fix py-rattler-build tests
Hofer-Julian Dec 15, 2025
6d51058
Fix clippy
Hofer-Julian Dec 15, 2025
bcf6c06
restore json snapshot from main
wolfv Dec 15, 2025
d844e37
ignore patch newline issue on windows
wolfv Dec 15, 2025
7840319
allow conditions in list of tests/sources and python_version
wolfv Dec 15, 2025
8f4a2ed
Adapt lint task
Hofer-Julian Dec 15, 2025
f37867f
Format
Hofer-Julian Dec 15, 2025
5427d76
Format
Hofer-Julian Dec 15, 2025
0e4c648
Don't run python format on Python bindings. Already done in main
Hofer-Julian Dec 15, 2025
13cd9cf
Format
Hofer-Julian Dec 15, 2025
56e9c4f
Only check Rust fmt for python bindings
Hofer-Julian Dec 15, 2025
e8e7d75
use Value<bool> in more places
wolfv Dec 15, 2025
976f30f
add test recipes
wolfv Dec 15, 2025
78994f4
allow nested conditionals
wolfv Dec 15, 2025
51ec45f
allow empty jinja to evaluate to default boolean value
wolfv Dec 15, 2025
76c36dd
add missing file
wolfv Dec 16, 2025
6b3429e
remove unused dependencies, move to lzma_rust2 implementation
wolfv Dec 16, 2025
b02f22b
test relativize symlinks only on unix
wolfv Dec 16, 2025
c74ca5c
Move linting to lefthook and prettier
Hofer-Julian Dec 16, 2025
2755307
Move lefthook to own environment
Hofer-Julian Dec 16, 2025
02a5788
Update snapshots
Hofer-Julian Dec 16, 2025
9b75e81
remove some files
wolfv Dec 16, 2025
645520e
remove rattler-build-diffy in favor of standalone fork `flickzeug`
wolfv Dec 17, 2025
c2ec78c
update all Cargo.lock files
wolfv Dec 17, 2025
6b17c87
format
wolfv Dec 17, 2025
018fd96
fix: `rattler-build build --render-only` creates output directory (#2…
Hofer-Julian Dec 18, 2025
07acadc
merge main
wolfv Dec 19, 2025
3bc42db
Update Python bindings
Hofer-Julian Jan 7, 2026
5318d8e
More fixes
Hofer-Julian Jan 7, 2026
03e8790
fix test
wolfv Dec 20, 2025
c22c485
solve merge conflicts
wolfv Jan 7, 2026
5a1d0ae
fix lint
wolfv Jan 8, 2026
6c6283f
discover new variants after evaluation (e.g. with openmpi)
wolfv Jan 8, 2026
a53c8d0
fix build prefix, evaluate extras
wolfv Jan 8, 2026
56eee83
track context variables properly
wolfv Jan 9, 2026
3b7fb6f
fix formatting
wolfv Jan 9, 2026
875511c
Stop restricting backend version
Hofer-Julian Jan 21, 2026
3421dd1
Merge remote-tracking branch 'upstream/main' into refactor
Hofer-Julian Jan 21, 2026
0482963
Fix compilation
Hofer-Julian Jan 21, 2026
a4476a1
Convert caching docs to use staging outputs
Hofer-Julian Jan 22, 2026
c6b8932
more fixes for refactor
wolfv Jan 23, 2026
8ba533a
fix merge conflicts
wolfv Jan 23, 2026
08321ac
improve license parse error
wolfv Jan 23, 2026
b06ba6e
better topological sort
wolfv Jan 23, 2026
3f65b04
fix topo sort
wolfv Jan 23, 2026
2ca9bca
fix some tests
wolfv Jan 23, 2026
e243ad6
remove println
wolfv Jan 23, 2026
372ca2c
use conditional list for post process
wolfv Jan 23, 2026
78d27c6
keep being strict about undefined variables
wolfv Jan 23, 2026
0a5f389
fix build number override
wolfv Jan 23, 2026
f60f54d
one variant per exact pin
wolfv Jan 23, 2026
40f8b7f
improve ordering
wolfv Jan 24, 2026
9365c8f
fix context variable issues
wolfv Jan 24, 2026
57340e9
make context variant tracking better
wolfv Jan 25, 2026
5d72d2c
fix variant from context
wolfv Jan 25, 2026
57fb23d
fix license file inheritance override
wolfv Jan 26, 2026
444e99c
fix test compilation
wolfv Jan 26, 2026
8117686
Merge origin/main into refactor
wolfv Jan 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 0 additions & 11 deletions .dprint.jsonc

This file was deleted.

12 changes: 9 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,13 @@ jobs:
- name: Set up pixi
uses: prefix-dev/[email protected]
with:
environments: lint
environments: pre-commit lint
cache: true
- name: lint (if this step fails, please 'pixi run lint' locally and push the changes)
run: pixi run lint
- name: lint (if this step fails, please 'pixi run -e pre-commit lint' locally and push the changes)
run: pixi run -e pre-commit lint
- name: Check for uncommitted changes
run: |
if ! git diff --exit-code; then
echo "::error::Formatting changes detected! Run 'pixi run -e pre-commit lint' locally and commit the changes."
exit 1
fi
8 changes: 0 additions & 8 deletions .github/workflows/python-bindings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,10 @@ jobs:
with:
manifest-path: py-rattler-build/pixi.toml
cache: true
- name: Check formatting
working-directory: py-rattler-build
run: |
pixi run fmt-check
- name: Check Cargo.lock
working-directory: py-rattler-build
run: |
pixi run check-cargo-lock
- name: Lint
working-directory: py-rattler-build
run: |
pixi run lint
- name: Run tests
working-directory: py-rattler-build
run: |
Expand Down
11 changes: 5 additions & 6 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
if: ${{ matrix.os == 'macos-latest' }}
run: pixi global install patchelf
- name: Run tests
run: cargo test --all --features=tui,recipe-generation --verbose -- --nocapture
run: cargo test --workspace --all-targets --features=tui,recipe-generation --verbose -- --nocapture
- name: Run patch apply tests
# https://github.com/orgs/community/discussions/26261#discussioncomment-3251039
if: ${{ contains(github.event.pull_request.labels.*.name, 'need-patch-apply-tests') }}
Expand Down Expand Up @@ -180,11 +180,10 @@ jobs:
- name: Extract version
shell: bash
id: metadata
run:
| # also call this step outside of $(...) to make sure the status code is propagated
${{ startsWith(matrix.os, 'windows') && 'choco install yq' || '' }}
yq '.package.version' Cargo.toml
echo "project-version=$(yq '.package.version' Cargo.toml)" >> $GITHUB_OUTPUT
run: | # also call this step outside of $(...) to make sure the status code is propagated
${{ startsWith(matrix.os, 'windows') && 'choco install yq' || '' }}
yq '.package.version' Cargo.toml
echo "project-version=$(yq '.package.version' Cargo.toml)" >> $GITHUB_OUTPUT

- name: Assert version in release
if: startsWith(github.ref, 'refs/tags/v')
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ target/
__pycache__/
.pytest_cache/
.DS_STORE
checkouts

# mkdocs
.cache
Expand All @@ -14,3 +15,9 @@ site
.pixi
target-pixi
*.conda

# python
.ipynb_checkpoints

# generated tutorial markdown (from notebooks)
docs/py-rattler-build/tutorials/
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Test data directories - may contain intentionally malformed or specific formatting
test-data/
**/test-data/

# conda_build_config files have duplicate keys with selectors, which prettier doesn't support
**/conda_build_config/
7 changes: 7 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"printWidth": 100,
"bracketSpacing": false,
"tabWidth": 2,
"singleQuote": false,
"proseWrap": "preserve"
}
Loading
Loading