Skip to content

Replace Makefile with pixi tasks#432

Draft
mbrobbel wants to merge 18 commits intosirius-db:devfrom
mbrobbel:refactor/pixi-tasks
Draft

Replace Makefile with pixi tasks#432
mbrobbel wants to merge 18 commits intosirius-db:devfrom
mbrobbel:refactor/pixi-tasks

Conversation

@mbrobbel
Copy link
Copy Markdown
Member

@mbrobbel mbrobbel commented Mar 10, 2026

Summary

  • Replace Makefile with pixi tasks in pixi.toml for all build/test/run operations
  • Add new pixi tasks: duckdb (launch CLI), sql-test (SQL logic tests), unittest (C++ unit tests)
  • All run tasks auto-rebuild when sources change via depends-on and inputs
  • Update all documentation (CLAUDE.md, docs/README.md, test READMEs) to use pixi task commands
  • Update all Claude Code skill files to use pixi run build instead of make
  • Remove docker/ directory (no longer supported, pixi replaces it)
  • Remove template leftover docs (NEXT_README.md, UPDATING.md)
  • Simplify requirements: drop Ubuntu-specific and vCPU recommendations
  • Fix pixi build task inputs: broaden header globs (src/**/*.hpp), add test/**/*.hpp

Pixi tasks

Task Usage Description
build pixi run build [preset] Build Sirius (default: release)
duckdb pixi run duckdb [preset] Launch DuckDB CLI with Sirius
sql-test pixi run sql-test [preset] [filter] Run SQL logic tests
unittest pixi run unittest [preset] [filter] Run C++ unit tests
test pixi run test [preset] Run ctest
clean pixi run clean [preset] Remove build directory
configure pixi run configure [preset] Configure CMake (usually implicit via build)

Test plan

  • pixi run build builds successfully
  • pixi run duckdb launches DuckDB with Sirius
  • pixi run sql-test runs SQL logic tests
  • pixi run unittest runs C++ unit tests
  • CI workflows pass

🤖 Generated with Claude Code

- Move cmake/CMakePresets.json to project root
- Add parameterized pixi tasks: configure, build, test, clean
- Delete Makefile (pixi tasks replace all Make targets)
- Update CI workflows to use `pixi run build` instead of `make`
- Rewrite pixi_activate.sh for new CMakePresets location
- Add clangxx dependency for C++ compiler
- Change .gitmodules duckdb ignore from dirty to untracked

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mbrobbel added a commit to mbrobbel/sirius that referenced this pull request Mar 10, 2026
Revert fmt/spdlog compat (sirius-db#430), pre-commit autofix (sirius-db#431), and pixi
tasks refactor (sirius-db#432) from this branch so the vcpkg PR only contains
vcpkg build support changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mbrobbel and others added 4 commits March 10, 2026 20:35
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The `environments` parameter alone installs but doesn't activate the
env into the shell, so tools like unzip/wget from pixi deps are not
available in subsequent run steps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mbrobbel mbrobbel marked this pull request as draft March 11, 2026 09:43
mbrobbel and others added 3 commits March 11, 2026 10:45
…kills

- Update CLAUDE.md, docs/README.md, test READMEs to use `pixi run build/test/clean`
- Update all .claude/skills/ files to use pixi task commands
- Remove docker/ directory (no longer supported, pixi replaces it)
- Remove docs/NEXT_README.md and docs/UPDATING.md (DuckDB extension template leftovers)
- Simplify docs/README.md: clearer requirements, build presets, one-step dataset setup
- Fix pixi.toml build task inputs: broaden header globs, add missing test/**/*.hpp

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add `pixi run duckdb` to launch DuckDB CLI with Sirius (auto-rebuilds)
- Add `pixi run sql-test [filter]` for SQL logic tests
- Add `pixi run unittest [filter]` for C++ unit tests
- Remove unused `filter` arg from `test` task
- Remove Ubuntu requirement from docs (any Linux works with pixi)
- Remove vCPU recommendation from docs
- Update all docs to reference new task names

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mbrobbel mbrobbel marked this pull request as ready for review March 11, 2026 12:54
Copy link
Copy Markdown
Collaborator

@joosthooz joosthooz left a comment

Choose a reason for hiding this comment

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

This is really great, I just have 2 small questions, happy to approve but this might need a green light from @bwyogatama

Comment thread pixi.toml
"test/sql/**/*",
]

[tasks.test]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Am I mistaken or is this command missing in the documentation? What does it do?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

It's there: test pixi run test [preset] Run ctest

Comment thread pixi.toml
[feature.cuda12.activation.env]
# GPU architectures: Turing through Hopper (75, 80, 86, 90a)
CUDAARCHS = "75-real;80-real;86-real;90a-real"
[feature.cuda12]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We state cuda > 13 as a requirement, do we still want to keep 12 support?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

We used this to support older drivers, I think there is no harm in keeping it. Once we have a better runner setup we can add a cuda 12 job.

mbrobbel and others added 5 commits March 20, 2026 16:13
# Conflicts:
#	docs/README.md
#	pixi.lock
#	pixi.toml
…oval

Update documentation to use `pixi run build`, `pixi run duckdb`,
`pixi run unittest`, and `pixi run sql-test` instead of `make` and
raw binary paths, consistent with the pixi task refactor.

Files updated:
- docs/gpu_execution.md
- docs/gpu_processing.md
- docs/DEVELOPMENT.md (CMakePresets.json path)
- test/tpch_performance/CLAUDE.md
- test/tpch_performance/run.md
- .claude/skills/config-optimizer/SKILL.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@mbrobbel mbrobbel force-pushed the refactor/pixi-tasks branch from 792ebbc to da99b4a Compare April 7, 2026 19:21
Resolve conflicts:
- check.yml: adopt upstream's CI matrix (nightly, compiler/build-type)
  with pixi tasks instead of make
- pixi.toml: keep pixi tasks, add upstream's cuda feature deps,
  move libcudf to feature deps, relax libabseil pin
- pixi.lock: regenerated with clangxx addition

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@mbrobbel mbrobbel force-pushed the refactor/pixi-tasks branch from 7382c0b to 8e19927 Compare April 9, 2026 09:43
mbrobbel and others added 4 commits April 9, 2026 14:15
Three issues in generate_nightly_env.sh:
- Channel sed pattern had trailing space preventing rapidsai-nightly swap
- Single-line deletion of [feature.nightly-runner] left orphaned `pixi = "*"`
  that broke TOML parsing; use range-based deletion instead
- Add `cwd = "../.."` to generated tasks so cmake runs from repo root
  (pixi sets cwd to manifest parent, which is envs/nightly/)

Also fix pixi_activate.sh to resolve repo root via BASH_SOURCE instead of
PIXI_PROJECT_ROOT, which points to envs/nightly/ for the nightly env.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- .claude/commands/test.md: pixi run make → pixi run build/sql-test/unittest
- .claude/skills: EXTRA_CMAKE_FLAGS env var doesn't work with pixi tasks;
  use pixi shell + manual cmake for sanitizer builds instead
- docs/gpu_processing.md: pixi run build would re-configure without the
  legacy flag; use pixi shell + manual cmake
- profile_tpch_nsys.sh: stale make reference in error message

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@mbrobbel mbrobbel marked this pull request as draft April 14, 2026 20:23
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