Skip to content

fix: only strip the solve-group clause in the DiracX CI workaround - #8843

Merged
fstagni merged 2 commits into
DIRACGrid:integrationfrom
fstagni:fix/diracx-ci-gubbins-solve-group-sed
Oct 22, 2026
Merged

fstagni merged 2 commits into
DIRACGrid:integrationfrom
fstagni:fix/diracx-ci-gubbins-solve-group-sed

Conversation

@fstagni

@fstagni fstagni commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Description

The DiracX Unit Tests job currently fails for all PRs with:

× task 'pytest-gubbins-all-one-by-one' depends on task 'pytest-gubbins-core' in environment 'gubbins-core', which is not defined

The "Apply workarounds" step (introduced in 537fd13) uses the following sed to break the gubbins environments out of their shared solve group:

sed -i.bak '/solve-group = "gubbins"/d' pixi.toml

However, in diracx's pixi.toml every gubbins environment is defined as a single-line inline table ending with , solve-group = "gubbins"}:

gubbins-core = {features = ["task-gubbins-core", "diracx-core", "gubbins-core"], solve-group = "gubbins"}

The sed therefore deletes the entire environment definition instead of only the solve-group clause. All gubbins environments (gubbins-core, gubbins-api, ...) disappear from the manifest, while the root meta-task pytest-gubbins-all-one-by-one still declares depends-on entries pointing at tasks in those now-undefined environments. Recent pixi versions validate cross-environment task dependencies strictly and fail the pixi add call in the workaround step.

This PR strips only the , solve-group = "gubbins" clause, keeping every environment defined while still decoupling it from the shared solve group:

sed -i.bak 's@, solve-group = "gubbins"@@g' pixi.toml

Verified locally against diracx main (pixi.toml from the current master commit): with the broken sed pixi warns that all gubbins features are unused (environments deleted); with this fix the manifest parses cleanly and all pytest-gubbins-* environments and tasks are present.

The failure is unrelated to the changes of any individual PR — it is pre-existing on integration since 537fd13.

The 'Apply workarounds' step of the DiracX Unit Tests job used
'/solve-group = "gubbins"/d' to break the gubbins environments out of
their shared solve group. In diracx's pixi.toml every gubbins
environment is defined as a single-line inline table ending with
', solve-group = "gubbins"}', so the sed deleted the whole environment
definitions. The pytest-gubbins-* meta-task then depended on tasks in
now-undefined environments, which newer pixi versions reject with:

  task 'pytest-gubbins-all-one-by-one' depends on task
  'pytest-gubbins-core' in environment 'gubbins-core', which is not
  defined

Strip only the ', solve-group = "gubbins"' clause instead, keeping all
environments defined while still decoupling them from the shared group.
@fstagni
fstagni requested a review from atsareg as a code owner October 21, 2026 15:15
@aldbr

aldbr commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

The workaround hasn't changed since May, but from what I can see locally, the last passing runs used 0.82.0 and the failing ones use 0.82.1, so I assume pixi is becoming stricter.
The workaround is deleting the gubbins environment but [tasks.pytest-gubbins-all-one-by-one] in diracx's pixi.toml still refers to them, that's what is raising the error.

Gubbins environment was intentionally removed, because the CI is only running pytest-diracx-all-one-by-one (gubbins is not needed in this context, and it's tested in the diracx CI).
So I assume the right fix would be:

# Drop the gubbins environments entirely: this job doesn't use them, and the
# `pixi add --feature diracx-core` calls below would otherwise re-solve them too
sed -i.bak '/solve-group = "gubbins"/d' pixi.toml
rm pixi.toml.bak
# The gubbins environments are removed above; drop the task that references them
awk '/^\[tasks\.pytest-gubbins-all-one-by-one\]/{skip=1;next} skip&&/^\[/{skip=0} !skip' pixi.toml > pixi.toml.new
mv pixi.toml.new pixi.toml

pixi 0.82.1 errors on tasks that depend on undefined environments
(prefix-dev/pixi#7284). The workaround intentionally deletes the gubbins
environments (unused by this job), so also delete the
pytest-gubbins-all-one-by-one task that still references them.

Assisted-by: Claude:claude-opus-5-5
@fstagni
fstagni merged commit fec06c7 into DIRACGrid:integration Oct 22, 2026
25 checks passed
@DIRACGridBot DIRACGridBot added the sweep:ignore Prevent sweeping from being ran for this PR label Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sweep:ignore Prevent sweeping from being ran for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants