Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
build/
build-*/
install/
.local-deps/
.cache/
.pixi/
__pycache__/
Expand Down
12 changes: 0 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,6 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-as-needed")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-as-needed")

# Emit DT_RUNPATH instead of DT_RPATH (the conda toolchain defaults to the
# latter, which overrides LD_LIBRARY_PATH). The activation script puts the
# .local-deps data-model overlay on LD_LIBRARY_PATH, which must win over the
# released shipdatamodel in the conda env.
set(CMAKE_SHARED_LINKER_FLAGS
"${CMAKE_SHARED_LINKER_FLAGS} -Wl,--enable-new-dtags"
)
set(CMAKE_MODULE_LINKER_FLAGS
"${CMAKE_MODULE_LINKER_FLAGS} -Wl,--enable-new-dtags"
)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--enable-new-dtags")

# Dependencies
find_package(SHiPDataModel REQUIRED)
find_path(Random123_INCLUDE_DIR Random123/philox.h REQUIRED)
Expand Down
2 changes: 0 additions & 2 deletions activate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,3 @@ export LD_LIBRARY_PATH="$PIXI_PROJECT_ROOT/build${LD_LIBRARY_PATH:+:$LD_LIBRARY_
# shipgeometry installs geometry DBs under $CONDA_PREFIX/share/geometry/.
# geometry_geomodel_provider resolves bare db_file names via this variable.
export SHIPGEOMETRY_ROOT="${SHIPGEOMETRY_ROOT:-$CONDA_PREFIX}"

export LD_LIBRARY_PATH="$PIXI_PROJECT_ROOT/.local-deps/data-model/lib:$LD_LIBRARY_PATH"
21 changes: 11 additions & 10 deletions pixi.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 2 additions & 25 deletions pixi.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ platforms = ["linux-64"]

[dependencies]
# SHiP/HEP packages (prefix.dev/ship + conda-forge)
shipdatamodel="*"
shipdatamodel = ">=0.3"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== files =="
git ls-files | rg '(^|/)pixi\.(toml|lock)$|CMakeLists\.txt$|CMake' || true

echo "== pixi.toml =="
if [ -f pixi.toml ]; then cat -n pixi.toml; fi

echo "== relevant pixi.lock snippets =="
if [ -f pixi.lock ]; then
  rg -n -C 4 'shipdatamodel|shipdatamodel-|ship-data|ShipDataModel|SHiPDataModel' pixi.lock || true
fi

echo "== CMake references =="
rg -n -C 4 'SHiPDataModel|shipdatamodel|find_package|CONDA_PREFIX|pixi run|conda activate' . --glob '!pixi.lock' --glob '!node_modules' --glob '!dist' --glob '!build' || true

Repository: ShipSoft/Shannon

Length of output: 13866


Keep the manifest constraint aligned with the resolved compatibility range.

pixi.toml accepts any future shipdatamodel >=0.3, but the package exports the narrower shipdatamodel >=0.3.0,<0.4.0a0 compatibility range. If 0.4 is not supported by this project, encode that upper bound in the manifest so lockfile re-solves cannot select an incompatible release.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pixi.toml` at line 12, Update the shipdatamodel dependency constraint in the
manifest to match the package’s supported range, requiring at least 0.3.0 and
excluding 0.4.0a0 and later releases.

shipgeometryservice = "*"
phlex = ">=0.3.0"
root = ">=6.36"
Expand All @@ -33,39 +33,16 @@ cxx-compiler = "*"

[activation]
scripts = ["activate.sh"]
env = {
LD_LIBRARY_PATH = "$PIXI_PROJECT_ROOT/.local-deps/data-model/lib:$LD_LIBRARY_PATH",
}

[tasks]

# Shannon needs the digitised-hit headers from data-model PR #5 (RecHit and
# per-detector hits), which no shipdatamodel release provides yet. Build the PR
# head from a sibling checkout (cloned on demand, e.g. in CI) and overlay it
# via .local-deps; drop the pull/5/head pin once the PR is merged and released.
fetch-datamodel = """
test -d ../data-model || (git clone --depth 1 https://github.com/ShipSoft/data-model ../data-model \
&& git -C ../data-model fetch --depth 1 origin pull/5/head \
&& git -C ../data-model checkout --detach FETCH_HEAD)
"""
configure-datamodel = { cmd = """
cmake -S ../data-model -B build-datamodel -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$PIXI_PROJECT_ROOT/.local-deps/data-model \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX
""", depends-on = ["fetch-datamodel"] }
build-datamodel = { cmd = "cmake --build build-datamodel -j8", depends-on = ["configure-datamodel"] }
install-datamodel = { cmd = "cmake --install build-datamodel", depends-on = ["build-datamodel"] }

configure = { cmd = """
cmake -S . -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \
-DCMAKE_INSTALL_LIBDIR=lib \
-DSHiPDataModel_DIR=$PIXI_PROJECT_ROOT/.local-deps/data-model/lib/cmake/SHiPDataModel \
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX
""", depends-on = ["install-datamodel"] }
""" }

build = { cmd = "cmake --build build -j8", depends-on = ["configure"] }
install = { cmd = "cmake --install build", depends-on = ["build"] }
Expand Down
Loading