Skip to content

Put Julia directly in the Pixi environment - #1017

Merged
SouthEndMusic merged 3 commits into
masterfrom
julia-forge
Jul 28, 2026
Merged

Put Julia directly in the Pixi environment#1017
SouthEndMusic merged 3 commits into
masterfrom
julia-forge

Conversation

@visr

@visr visr commented Jul 27, 2026

Copy link
Copy Markdown
Member

We had juliaup from conda-forge in our Pixi workspace. That did not directly install the julia version we needed in the environment, it just installed juliaup, and we had to remember to run pixi run install-julia which installed the right julia version and set the Wflow directory as a juliaup override. This is easy to forget and feels a bit two-staged.

https://prefix.dev/ has the julia-forge channel, which contains the same julia binaries that juliaup serves: https://prefix.dev/channels/julia-forge/packages/julia. If we use this, we directly have the right julia in our pixi environment. The Julia dependency is explicitly pinned to the julia-forge channel, so future lockfile updates cannot select Julia from another configured channel.

So I did essentially this:

pixi rm juliaup
pixi workspace channel add https://prefix.dev/julia-forge
pixi add "https://prefix.dev/julia-forge::julia==1.12.6"

Then I could remove pixi run install-julia from the CI jobs, since it is no longer needed. At first I thought I'd remove install-julia completely, but kept it for now. Because if developers are used to running julia instead of pixi run julia, or activating their pixi environment, then they may get the wrong version. We can always remove it later on as well.

Prevent future lockfile updates from selecting a Julia package from another configured channel.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@SouthEndMusic SouthEndMusic left a comment

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.

LGTM!

@SouthEndMusic
SouthEndMusic merged commit eb264ad into master Jul 28, 2026
12 checks passed
@SouthEndMusic
SouthEndMusic deleted the julia-forge branch July 28, 2026 08:37
SouthEndMusic pushed a commit to Deltares/Ribasim that referenced this pull request Jul 28, 2026
## Summary

- install Julia 1.12.6 directly from the `julia-forge` Pixi channel on
all supported platforms
- explicitly pin Julia to `julia-forge` so future solves cannot select
another channel
- remove redundant JuliaUp preparation from CI workflows
- let VS Code use Julia from the activated Pixi environment

This follows the approach from Deltares/Wflow.jl#1017.

Linux ARM64 packages were enabled upstream in
wolfv/julia-forge#7, allowing Ribasim to use one
Julia dependency across all four platforms without a JuliaUp fallback.

## Validation

- `pixi search julia -c https://prefix.dev/julia-forge --platform
linux-aarch64`
- `pixi lock` across all four supported platforms
- `pixi run --locked julia --version` (`1.12.6`)
- verified every locked Julia package comes from `julia-forge`
- `pixi run prek run --files pixi.toml pixi.lock`
- `git diff --check`

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants