Skip to content

BLD/DEV/CI: add and use Pixi package definitions - #202

Open
lucascolley wants to merge 18 commits into
scipy:mainfrom
lucascolley:package
Open

BLD/DEV/CI: add and use Pixi package definitions#202
lucascolley wants to merge 18 commits into
scipy:mainfrom
lucascolley:package

Conversation

@lucascolley

@lucascolley lucascolley commented Jun 19, 2026

Copy link
Copy Markdown
Member

towards gh-24

The rough idea:

  • the various build tasks in our workspace become proper Pixi package definitions which produce an xsf package which can be depended on in a Pixi workspace
  • for variants of xsf for which we build the tests, we now install the tests in the package under share/xsf/tests/ rather than leaving them in the build directory
  • the top-level workspace definition then just needs to hold non-building tasks, and environment definitions which use these variants of xsf

Next step:

@github-actions github-actions Bot added the Build issues Issues with building from source, including different choices of architecture, compilers and OS label Jun 19, 2026
@lucascolley
lucascolley force-pushed the package branch 3 times, most recently from d4f4749 to 4fc6056 Compare July 29, 2026 21:29
Comment thread tests/CMakeLists.txt

add_library(xsf INTERFACE)
target_include_directories(xsf INTERFACE ${CMAKE_SOURCE_DIR}/include)

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.

moved to the file in the repo root

@lucascolley lucascolley changed the title BLD: add Pixi package definition BLD/DEV: add and use Pixi package definitions Jul 30, 2026
@lucascolley lucascolley added the DX Everything related to making the experience of working on XSF more pleasant. label Jul 30, 2026
@lucascolley
lucascolley force-pushed the package branch 2 times, most recently from 494ab42 to d8d2cae Compare July 30, 2026 20:10
@lucascolley lucascolley reopened this Jul 30, 2026
@lucascolley lucascolley reopened this Jul 31, 2026
Comment thread pixi.toml
@lucascolley

Copy link
Copy Markdown
Member Author

The cache miss is due to mtime:

  DEBUG source-build{package=xsf host_platform=linux-aarch64}: pixi_command_dispatcher::keys::source_build: artifact cache miss, rebuilding package=xsf key=jPjUa4XPohY reason=input file modified: /home/runner/work/xsf/xsf/CMakeLists.txt (mtime at build time 2026-08-10 16:08:45.721528754 UTC, now 2026-08-10 16:45:22.533354230 UTC)

@lucascolley
lucascolley force-pushed the package branch 3 times, most recently from 1475f9d to 41f4b67 Compare August 24, 2026 00:26
Comment thread pixi.toml Outdated
Comment thread pixi.toml Outdated
Comment thread pixi.toml
@lucascolley lucascolley changed the title BLD/DEV: add and use Pixi package definitions BLD/DEV/CI: add and use Pixi package definitions Aug 24, 2026
@lucascolley lucascolley added the CI Items related to the CI tools such as CircleCI, GitHub Actions or Azure label Aug 24, 2026
@lucascolley
lucascolley marked this pull request as ready for review August 24, 2026 10:24
@lucascolley

Copy link
Copy Markdown
Member Author

@scipy/xsf-team I would greatly appreciate your input! The diff is a bit intimidating at the moment, but I'm mainly interested for now in whether this causes any problems for your current developer workflows. If you could check out this branch and try making some changes and running some tests, that would be great.

The main change is that there are no configure or build tasks any more — that is all handled automatically by Pixi. The intention is for rebuilds to happen only when needed and with good caching.

The workspace is significantly simplified, with just the following tasks:

pixi task list
Task              Description
coverage          Generate HTML coverage report.
format            Format tracked C++ source and header files in place.
format-dry-error  Check C++ formatting and fail if any file needs changes.
open-coverage     Open HTML coverage report.
test-cupy         Run CuPy integration tests.
tests             Run test suite.

@lucascolley

Copy link
Copy Markdown
Member Author

I would also be keen to know if this breaks anything that someone has set up in their IDE. That might be true if the IDE features require the build dir to be contained in the root dir.

@dschmitz89

dschmitz89 commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

@lucascolley Thanks for working on this infra, highly appreciated. One thing that would really improve the DX for me personally would be the possibility to invoke individual tests via pixi. How complex would that be to implement?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Build issues Issues with building from source, including different choices of architecture, compilers and OS CI Items related to the CI tools such as CircleCI, GitHub Actions or Azure DX Everything related to making the experience of working on XSF more pleasant.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants