Skip to content

feat: podio +arrow - #389

Open
wdconinc wants to merge 16 commits into
masterfrom
podio-arrow
Open

feat: podio +arrow#389
wdconinc wants to merge 16 commits into
masterfrom
podio-arrow

Conversation

@wdconinc

@wdconinc wdconinc commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Briefly, what does this PR introduce? Please link to any relevant presentations or discussions.

This pull request updates the podio package configuration and its related package management scripts to add support for the Arrow backend and improve version handling. The most important changes are summarized below:

podio package enhancements:

  • The podio package is now required at a specific git commit (32b44e8fb400cf1919a8a55caadcb6481a52c07d) from the master branch, ensuring a precise version is used.
  • The +arrow variant is enabled for podio, adding Arrow backend support in addition to the existing +datasource and +rntuple variants.

spack-packages.sh updates:

  • Two new cherry-picked commits are added to the tracked list: one for adding the Arrow variant to podio, and another for improving url_for_version handling for both podio and sio.
  • The cherry-pick comments are updated to reflect these new additions: podio: add arrow variant and podio,sio: url_for_version for main version.

What is the urgency of this PR?

  • High (please describe reason below)
  • Medium
  • Low

What kind of change does this PR introduce?

  • Bug fix (issue #__)
  • New feature (issue: :odio Arrow support)
  • Optimization (issue #__)
  • Updated documentation
  • other: __

Please check if any of the following apply

  • This PR introduces breaking changes. Please describe changes users need to make below.
  • This PR changes default behavior. Please describe changes below.
  • AI was used in preparing this PR. Please describe usage below.

AI for PR description.

Copilot AI lite review requested due to automatic review settings August 11, 2026 19:44
@wdconinc wdconinc changed the title Podio arrow feat: podio +arrow Aug 11, 2026

Copilot AI 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.

Pull request overview

This PR updates the Spack environment configuration to build podio from a pinned git commit and enables the +arrow variant, alongside adding the corresponding upstream spack-packages cherry-pick reference needed to support that variant.

Changes:

  • Pin podio to a specific git SHA in spack-environment/packages.yaml and enable +arrow.
  • Add the spack-packages cherry-pick commit that introduces the podio arrow variant.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
spack-packages.sh Adds the upstream cherry-pick hash and description for podio: add arrow variant.
spack-environment/packages.yaml Pins podio to a specific git commit and enables the arrow variant.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread spack-environment/packages.yaml Outdated
Copilot AI review requested due to automatic review settings August 11, 2026 21:08

This comment was marked as resolved.

@wdconinc

Copy link
Copy Markdown
Contributor Author

Copilot AI review requested due to automatic review settings August 13, 2026 15:10

This comment was marked as duplicate.

@wdconinc
wdconinc enabled auto-merge (squash) August 13, 2026 15:47
Comment thread spack-environment/packages.yaml Outdated
@wdconinc

wdconinc commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

Needs:

Copilot AI review requested due to automatic review settings August 14, 2026 02:53

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (1)

spack-environment/packages.yaml:442

  • PR description says podio is pinned to git commit 32b44e8fb400cf1919a8a55caadcb6481a52c07d, but this change pins a different commit (808bfbb9e460c3e1c0ef1e2457ae447b67f4af23). Please align either the description or the pinned commit so reviewers/users can reliably reproduce the intended podio version.
    - '@git.808bfbb9e460c3e1c0ef1e2457ae447b67f4af23=master'

Copilot AI review requested due to automatic review settings August 14, 2026 14:14

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Suppressed comments (1)

spack-environment/packages.yaml:444

  • The PR description says podio is pinned to commit 32b44e8fb400cf1919a8a55caadcb6481a52c07d, but the code pins 808bfbb9e460c3e1c0ef1e2457ae447b67f4af23. Please align the code and PR description so reviewers/users know which exact upstream snapshot is being built.
  podio:
    require:
    - '@git.808bfbb9e460c3e1c0ef1e2457ae447b67f4af23=master'
    - cxxstd=20
    - +arrow +datasource +rntuple

Comment thread spack-environment/packages.yaml
@github-actions

github-actions Bot commented Aug 14, 2026

Copy link
Copy Markdown

Capybara summary for PR 389

Copilot AI review requested due to automatic review settings August 16, 2026 00:22

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Suppressed comments (3)

spack-environment/packages.yaml:446

  • This adds a fork override (package_attributes.git) for podio, but the PR description only mentions pinning a commit from the master branch (without mentioning a forked repo). If the fork is required for +arrow, please call it out in the PR description; otherwise consider removing this override to keep using the upstream podio source configured by the Spack package.
    package_attributes:
      git: https://github.com/wdconinc/podio.git

spack-environment/packages.yaml:154

  • This PR also changes edm4hep from a version constraint ('@1.1') to a specific git SHA while still labeling it as '=1.1'. Since the PR description scopes changes to podio/sio, please either justify this edm4hep pin in the PR description (why tag/URL resolution isn't sufficient) or revert it to avoid an unrelated behavior change.
    - '@git.f87de123bb1a56dfab7cdcb7f3cfb9dd51fc9313=1.1'

spack-environment/packages.yaml:442

  • PR description says podio is pinned to git commit 32b44e8fb400cf1919a8a55caadcb6481a52c07d, but this requirement pins 4700f4fc497c6e40832e9a0fe574730e4e6acf89 instead. Please align the pinned SHA with the stated intended revision (or update the PR description if 4700f4f… is the correct one).

This issue also appears on line 445 of the same file.

    - '@git.4700f4fc497c6e40832e9a0fe574730e4e6acf89=master'

Copilot AI review requested due to automatic review settings August 16, 2026 14:48

Copilot AI 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.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Suppressed comments (4)

.github/workflows/build-push.yml:974

  • If eicrecon fails (or the step is cancelled), the script exits immediately and leaves the background npsim process and FIFO behind. That can cause hung jobs or noisy cleanup in the container. Add an EXIT/INT/TERM trap to always remove the FIFO and terminate/wait for npsim.
        # Create named pipe for arrow streaming
        FIFO_NAME="sim_streaming_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.arrow"
        mkfifo "$FIFO_NAME"

spack-environment/packages.yaml:444

  • The PR description says podio is pinned to git commit 32b44e8fb400cf1919a8a55caadcb6481a52c07d, but packages.yaml currently pins a different commit (d9068f663c01483eb0b58aa505c088883cfd39e8). This makes it unclear which upstream revision is intended and may lead to building the wrong podio version.
    - '@git.d9068f663c01483eb0b58aa505c088883cfd39e8=master'

spack-environment/packages.yaml:140

  • This PR description focuses on podio/Arrow changes, but this hunk also switches dd4hep from a released version constraint to a pinned git commit and adds a custom git URL. That’s a materially broader change in package resolution than described; please update the PR description (or split the PR) so reviewers understand dd4hep is now sourced from this git ref/remote.
    - '@git.8f0d2193956e0000029e8cad477473a6a2fa31ff=master'
    - +ddg4 +ddcad +edm4hep +g4hepem +hepmc3 +xercesc
    - any_of: [+ddeve +utilityapps, -ddeve -utilityapps] # FIXME ^root +x +opengl when +utilityapps
    package_attributes:
      git: https://github.com/wdconinc/DD4hep.git

spack-packages.sh:40

  • The PR description says there are two new spack-packages cherry-picks, but this change adds three new cherry-pick SHAs. Please reconcile the PR description with the actual change set (or drop the extra cherry-pick if it’s not intended) to avoid confusion when tracking why spack-packages diverges from the tagged release.
e2a49ec27bbe7a64f1388d296d139754af5f79f4
5d79a44c68046e528f78b3f5e4b42754c1e05c93
818143ef3d6c7f52474e8ff22472247b94ace049

Copilot AI review requested due to automatic review settings August 19, 2026 18:32

Copilot AI 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.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Suppressed comments (2)

spack-environment/packages.yaml:444

  • PR description says podio is pinned to commit 32b44e8fb400cf1919a8a55caadcb6481a52c07d, but the code pins podio to @git.d9068f663c01483eb0b58aa505c088883cfd39e8=master. Please align the PR description and the pinned commit (either update the description or change the pinned SHA), so reviewers/users know exactly which podio revision is being consumed.
    - '@git.d9068f663c01483eb0b58aa505c088883cfd39e8=master'

.github/workflows/build-push.yml:973

  • Because the job runs with -e, if eicrecon fails the script exits before wait/rm, leaving the background npsim process running and the FIFO present. Add an EXIT trap that always removes the FIFO and terminates npsim to prevent hung/unstable CI jobs.
        # Create named pipe for arrow streaming
        FIFO_NAME="sim_streaming_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.arrow"
        mkfifo "$FIFO_NAME"

Copilot AI review requested due to automatic review settings August 20, 2026 03:38

Copilot AI 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.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Suppressed comments (4)

.github/workflows/build-push.yml:975

  • This streaming test can leave the FIFO and the background npsim process behind if eicrecon fails (the step runs with -e), which can cause hung jobs or noisy cleanup. Add an EXIT trap to always remove the FIFO and terminate the background producer on failure.
        # Create named pipe for arrow streaming
        FIFO_NAME="sim_streaming_${{ matrix.particle }}_1GeV_20GeV_${{ matrix.detector_config }}.arrow"
        mkfifo "$FIFO_NAME"

        # Start npsim in background, writing to the pipe

spack-environment/packages.yaml:445

  • PR description says podio is pinned to commit 32b44e8f..., but the package requirement here pins a different commit (d9068f66...). Please align the PR description with the actual pin (or update the pin if the description is the intended one) so reviewers/users know exactly what podio version is being built.
    require:
    - '@git.d9068f663c01483eb0b58aa505c088883cfd39e8=master'
    - cxxstd=20

spack-packages.sh:40

  • The PR description says "two" new spack-packages cherry-picks were added, but this change adds three new commits to the cherry-pick list (including a dd4hep-related commit). Please update the PR description (or drop the extra cherry-pick) so the scope is accurately communicated.
e2a49ec27bbe7a64f1388d296d139754af5f79f4
5d79a44c68046e528f78b3f5e4b42754c1e05c93
818143ef3d6c7f52474e8ff22472247b94ace049

spack-environment/packages.yaml:140

  • This PR introduces additional package pins (dd4hep/edm4eic/edm4hep/eicrecon) and also overrides dd4hep's git URL to a fork. None of that scope is mentioned in the PR description, but it can materially change what gets built. Please either document these additional pins/URL override in the PR description or split them into a separate PR for clearer review/auditability.
  dd4hep:
    require:
    - '@git.fd72fb6b0e736e31123941936751ff7100af544d=master'
    - +ddg4 +ddcad +edm4hep +g4hepem +hepmc3 +xercesc
    - any_of: [+ddeve +utilityapps, -ddeve -utilityapps] # FIXME ^root +x +opengl when +utilityapps
    package_attributes:
      git: https://github.com/wdconinc/DD4hep.git

wdconinc and others added 16 commits August 29, 2026 12:50
Add new GitHub Actions job to test arrow streaming from npsim directly
to eicrecon using a named pipe (FIFO). This tests zero-copy streaming
between simulation and reconstruction without intermediate file storage.

- Job name: npsim-eicrecon-gun-streaming
- Tests pi particles with epic_craterlake detector
- Runs on both amd64 and arm64 architectures
- Uses descriptive FIFO name matching output conventions
- Uploads reconstruction artifact for validation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 29, 2026 17:51
@wdconinc
wdconinc removed the request for review from Copilot August 29, 2026 17:51
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