Skip to content

Commit d8e7c2a

Browse files
committed
splash theme, geometry tweaks, addressed sanitizer and testing retry meson tests in the workflows
1 parent 18d686c commit d8e7c2a

2 files changed

Lines changed: 50 additions & 6 deletions

File tree

ci/build.sh

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,27 @@ undefined_preload_tests=(
8585
test_gstreamer_csv_verbose
8686
)
8787

88+
function run_meson_test_with_retry {
89+
local label="$1"
90+
shift
91+
92+
for attempt in 1 2; do
93+
echo " > Running ${label} (attempt ${attempt}/2):" "$@" | tee -a "$test_log"
94+
"$@" >> "$test_log"
95+
local status=$?
96+
97+
if [ $status -eq 0 ]; then
98+
return 0
99+
fi
100+
101+
if [ $attempt -eq 2 ]; then
102+
return $status
103+
fi
104+
105+
echo " > ${label} failed; retrying once" | tee -a "$test_log"
106+
done
107+
}
108+
88109

89110
meson_args=( "${test_options[@]}" )
90111

@@ -99,9 +120,7 @@ case "$1" in
99120
esac
100121

101122
: > "$test_log"
102-
echo " > Running meson test with options:" "${meson_args[@]}" | tee -a "$test_log"
103-
meson test "${meson_args[@]}" >> "$test_log"
104-
if [ $? -ne 0 ]; then
123+
if ! run_meson_test_with_retry "meson test" meson test "${meson_args[@]}"; then
105124
echo " > Meson Tests failed. Log: "
106125
cat $test_log
107126
exit 1
@@ -115,9 +134,8 @@ if [ "$1" = "undefined" ]; then
115134
# UBSan on Linux can exhaust static TLS before GEMC's runtime dlopen() loads
116135
# this plugin. Preloading it makes the dynamic loader reserve TLS at process
117136
# startup while keeping the workaround scoped to the affected sanitizer test.
118-
echo " > Running undefined sanitizer preload tests with LD_PRELOAD=$gstreamer_csv_plugin" | tee -a "$test_log"
119-
LD_PRELOAD="$gstreamer_csv_plugin" meson test "${test_options[@]}" -v "${undefined_preload_tests[@]}" >> "$test_log"
120-
if [ $? -ne 0 ]; then
137+
if ! run_meson_test_with_retry "undefined sanitizer preload tests" \
138+
env LD_PRELOAD="$gstreamer_csv_plugin" meson test "${test_options[@]}" -v "${undefined_preload_tests[@]}"; then
121139
echo " > Meson Tests failed. Log: "
122140
cat $test_log
123141
exit 1

releases/0.3.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,16 @@ This version includes:
7777
correctly.
7878
- Cleared the digitization-routines map at the start of `loadDigitizationPlugins()` so that
7979
`emplace()` cannot silently reuse stale plugin objects from a prior load.
80+
- Cleared accumulated GUI visualization event drawings on setup-tab geometry
81+
reloads so hits and trajectories from a previous run are not redrawn with the
82+
newly loaded system.
83+
- Made the setup-tab experiment/system column resize after initial population,
84+
matching the readable sizing already applied after user selections.
85+
- Made the GUI follow the active Qt palette more consistently, including
86+
theme-aware setup tables, log/search widgets, geometry-tree color controls,
87+
navigation SVG buttons, and splash-screen rendering.
88+
- Added theme-specific rasterized splash images for the built-in GEMC
89+
architecture splash and a configurable scale plus palette-aware border.
8090
- Removed the need for GEMC-specific environment variables in Python example
8191
workflows: the API runs through the `pygemc` module, and users only need the
8292
executable in `PATH`.
@@ -115,6 +125,8 @@ This version includes:
115125
- Removed redundant `dev` prefixes from deploy and sanitizer matrix job names.
116126
- Updated CodeQL to use `build-mode: none` for all analyzed languages and
117127
removed the manual Geant4 container build from the analysis workflow.
128+
- Made installed examples database generation skip cleanly when sanitizer
129+
builds intentionally skip installing the Python environment.
118130
- Added analyzer coverage in `pygemc` for y-vs-x plotting and CLI image output.
119131

120132
<br/>
@@ -201,6 +213,20 @@ Both x86_64 and ARM64 platforms are supported.
201213
- Kept GUI reload system selections descriptor-only and cloned fresh systems for
202214
each Geant4 construction, avoiding duplicate `root` volumes when running after
203215
a setup-tab reload.
216+
- Reset Geant4 visualization accumulation before setup-tab geometry reloads and
217+
before the pre-run geometry handoff; after reload the GUI redraws geometry
218+
only, then re-adds hit and trajectory models immediately before `BeamOn`.
219+
- Added a deferred setup-tab column resize after the initial Qt event-loop pass
220+
so startup column widths match post-selection widths.
221+
- Updated GUI widgets that previously used fixed light colors or static SVG
222+
rendering so they resolve colors from the current Qt palette.
223+
- Added light and dark PNG variants for the GEMC architecture splash and select
224+
the resource from the current application palette to avoid Qt SVG CSS
225+
rendering differences.
226+
- Skipped installed examples database generation when
227+
`GEMC_SKIP_PYTHON_ENV_INSTALL=1` or the installed `python_env` interpreter is
228+
absent, fixing sanitizer installs that intentionally omit the Python
229+
environment.
204230
- Better generator statistics for some examples
205231
- Api and analyzer moved to pygemc module
206232
- Examples and tests adapted to use pygemc

0 commit comments

Comments
 (0)